diff options
Diffstat (limited to 'app/javascript/mastodon/reducers/settings.js')
-rw-r--r-- | app/javascript/mastodon/reducers/settings.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/app/javascript/mastodon/reducers/settings.js b/app/javascript/mastodon/reducers/settings.js new file mode 100644 index 000000000..b255aabc4 --- /dev/null +++ b/app/javascript/mastodon/reducers/settings.js @@ -0,0 +1,52 @@ +import { SETTING_CHANGE } from '../actions/settings'; +import { STORE_HYDRATE } from '../actions/store'; +import Immutable from 'immutable'; + +const initialState = Immutable.Map({ + onboarded: false, + + home: Immutable.Map({ + shows: Immutable.Map({ + reblog: true, + reply: true + }), + + regex: Immutable.Map({ + body: '' + }) + }), + + notifications: Immutable.Map({ + alerts: Immutable.Map({ + follow: true, + favourite: true, + reblog: true, + mention: true + }), + + shows: Immutable.Map({ + follow: true, + favourite: true, + reblog: true, + mention: true + }), + + sounds: Immutable.Map({ + follow: true, + favourite: true, + reblog: true, + mention: true + }) + }) +}); + +export default function settings(state = initialState, action) { + switch(action.type) { + case STORE_HYDRATE: + return state.mergeDeep(action.state.get('settings')); + case SETTING_CHANGE: + return state.setIn(action.key, action.value); + default: + return state; + } +}; |