in initializer-page/src/components/reducer/App.js [61:122]
export function reducer(state, action) {
switch (action.type) {
case 'UPDATE': {
const newState = { ...state }
const keysContext = Object.keys(defaultAppContext)
const keys = Object.keys(get(action, 'payload', {}))
keys.map(key => {
if (keysContext.indexOf(key) === -1) {
throw Error('Error AppProvider, invalid paylaod field action')
}
const value = get(action, `payload.${key}`)
set(newState, key, value)
if (key === 'theme') {
localStorage.setItem('springtheme', value)
}
return key
})
return newState
}
case 'TOGGLE_GROUP': {
const id = get(action, 'payload.id')
let groupsOpened = [...state.groupsOpened]
if (groupsOpened.indexOf(id) > -1) {
groupsOpened = [...groupsOpened.filter(g => g !== id)]
} else {
groupsOpened = [...groupsOpened, id]
}
return { ...state, groupsOpened }
}
case 'UPDATE_DEPENDENCIES': {
const dependencies = reduceDependencies(
get(action, 'payload.boot'),
get(action, 'payload.dubboVersion'),
get(state, 'config.lists.dependencies')
)
return { ...state, dependencies }
}
case 'SHARE_UPDATE': {
const share = get(action, 'payload.open', false)
return { ...state, share }
}
case 'EXPLORE_UPDATE': {
const explore = get(action, 'payload.open', false)
return { ...state, explore }
}
case 'FETCH_UPDATE': {
const fetch = get(action, 'payload.open', false)
return { ...state, fetch }
}
case 'COMPLETE': {
const json = get(action, 'payload', {})
const dependencies = reduceDependencies(
get(json, 'defaultValues.boot'),
get(json, 'defaultValues.dubboVersion'),
get(json, 'lists.dependencies')
)
return { ...state, complete: true, config: json, dependencies }
}
default:
return state
}
}