Files
freeCodeCamp/common/app/redux/reducer.js

57 lines
1.2 KiB
JavaScript
Raw Normal View History

2016-01-27 11:34:44 -08:00
import { handleActions } from 'redux-actions';
import types from './types';
const initialState = {
title: 'Learn To Code | freeCodeCamp',
2016-10-28 22:14:39 -07:00
isSignInAttempted: false,
user: '',
lang: '',
csrfToken: '',
theme: 'default'
};
2016-01-27 11:34:44 -08:00
export default handleActions(
{
[types.updateTitle]: (state, { payload = 'Learn To Code' }) => ({
...state,
title: payload + ' | freeCodeCamp'
2016-01-27 11:34:44 -08:00
}),
[types.updateThisUser]: (state, { payload: user }) => ({
2016-06-07 20:41:42 -07:00
...state,
user,
2016-10-28 22:14:39 -07:00
isSignInAttempted: true
2016-06-07 20:41:42 -07:00
}),
[types.updateAppLang]: (state, { payload = 'en' }) =>({
...state,
lang: payload
}),
[types.updateTheme]: (state, { payload = 'default' }) => ({
...state,
theme: payload
}),
[types.showSignIn]: state => ({
2016-01-27 11:34:44 -08:00
...state,
2016-10-28 22:14:39 -07:00
isSignInAttempted: true
2016-01-27 11:34:44 -08:00
}),
[types.challengeSaved]: (state, { payload: { points = 0 } }) => ({
2016-01-27 11:34:44 -08:00
...state,
points
2016-03-05 21:06:04 -08:00
}),
2016-06-09 16:02:51 -07:00
[types.delayedRedirect]: (state, { payload }) => ({
...state,
delayedRedirect: payload
2017-01-02 23:04:07 -08:00
}),
[types.openDropdown]: state => ({
...state,
isNavDropdownOpen: true
}),
[types.closeDropdown]: state => ({
...state,
isNavDropdownOpen: false
2016-01-27 11:34:44 -08:00
})
},
initialState
2016-01-27 11:34:44 -08:00
);