diff options
author | Shin'ya Ueoka <ueokande@i-beam.org> | 2017-10-02 21:35:52 +0900 |
---|---|---|
committer | Shin'ya Ueoka <ueokande@i-beam.org> | 2017-10-02 21:38:23 +0900 |
commit | 0a7ae631cd72100abdc26b84b06006bb5b166cba (patch) | |
tree | 3bef6ca26a12e3b3cbedb3d1dbb9d0a39a7fd466 /src/reducers | |
parent | 6f857e2c81b2d31a86d39c02b010345d3ff23a38 (diff) |
follow as redux
Diffstat (limited to 'src/reducers')
-rw-r--r-- | src/reducers/follow.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/reducers/follow.js b/src/reducers/follow.js new file mode 100644 index 0000000..136b367 --- /dev/null +++ b/src/reducers/follow.js @@ -0,0 +1,31 @@ +import actions from '../actions'; + +const defaultState = { + enabled: false, + newTab: false, + keys: [], +}; + +export default function reducer(state = defaultState, action = {}) { + switch (action.type) { + case actions.FOLLOW_ENABLE: + return Object.assign({}, state, { + enabled: true, + newTab: action.newTab, + }); + case actions.FOLLOW_DISABLE: + return Object.assign({}, state, { + enabled: false, + }); + case actions.FOLLOW_KEY_PRESS: + return Object.assign({}, state, { + keys: state.keys.concat([action.key]), + }); + case actions.FOLLOW_BACKSPACE: + return Object.assign({}, state, { + keys: state.keys.slice(0, -1), + }); + default: + return state; + } +} |