export default handleActions( () => ({ [challenges.challengeUpdated]: () => { console.log('updating step ui'); return initialState; }, [types.goToStep]: (state, { payload: { step = 0, isUnlocked }}) => ({ ...state, currentIndex: step, previousIndex: state.currentIndex, isActionCompleted: isUnlocked }), [types.completeAction]: state => ({ ...state, isActionCompleted: true }), [types.updateUnlockedSteps]: (state, { payload }) => ({ ...state, unlockedSteps: payload }), [types.clickOnImage]: state => ({ ...state, isLightBoxOpen: true }), [types.closeLightBoxImage]: state => ({ ...state, isLightBoxOpen: false }) }), initialState, ns );
export const correctSelector = state => getNS(state).correct; export default handleActions( () => ({ [types.nextQuestion]: state => ({ ...state, currentIndex: state.currentIndex + 1 }), [types.selectChoice]: (state, {payload}) => ({ ...state, selectedChoice: payload.selectedChoice }), [types.incrementCorrect]: state => ({ ...state, correct: state.correct + 1 }), [types.resetQuiz]: state => ({ ...state, currentIndex: 0, correct: 0, selectedChoice: null }), [types.resetChoice]: state => ({ ...state, selectedChoice: null }) }), initialState, ns );
handleActions( () => ({ [map.fetchMapUi.complete]: (state, { payload: { entities } }) => merge({}, state, entities), [types.addPortfolioItem]: (state, { payload: username }) => ({ ...state, user: { ...state.user, [username]: { ...state.user[username], portfolio: [ ...state.user[username].portfolio, emptyPortfolio() ] } } }), [types.optoUpdatePortfolio]: ( state, { payload: { username, portfolio }} ) => { const currentPortfolio = state.user[username].portfolio.slice(0); const pIndex = findIndex(currentPortfolio, p => p.id === portfolio.id); const updatedPortfolio = currentPortfolio; updatedPortfolio[pIndex] = portfolio; return { ...state, user: { ...state.user, [username]: { ...state.user[username], portfolio: updatedPortfolio } } }; }, [types.regresPortfolio]: (state, { payload: { username, id } }) => ({ ...state, user: { ...state.user, [username]: { ...state.user[username], portfolio: state.user[username].portfolio.filter(p => p.id !== id) } } }), [types.updateMultipleUserFlags]: ( state, { payload: { username, flags }} ) => ({ ...state, user: { ...state.user, [username]: { ...state.user[username], ...flags } } }), [types.updateUserFlag]: (state, { payload: { username, flag } }) => ({ ...state, user: { ...state.user, [username]: { ...state.user[username], [flag]: !state.user[username][flag] } } }), [types.updateUserEmail]: (state, { payload: { username, email } }) => ({ ...state, user: { ...state.user, [username]: { ...state.user[username], email } } }), [types.updateUserLang]: ( state, { payload: { username, languageTag } } ) => ({ ...state, user: { ...state.user, [username]: { ...state.user[username], languageTag } } }), [types.updateLocalProfileUI]: ( state, { payload: { username, profileUI } } ) => ({ ...state, user: { ...state.user, [username]: { ...state.user[username], profileUI: { ...state.user[username].profileUI, ...profileUI } } } }) }), defaultState )