aboutsummaryrefslogtreecommitdiff
path: root/src/reducers
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2017-10-02 22:06:44 +0900
committerShin'ya Ueoka <ueokande@i-beam.org>2017-10-02 22:06:44 +0900
commitb5e52a75d760c23d2ac7257056f9ba592ad17b34 (patch)
tree12d67e2840e5c1f27bc402fc47bc2aef760c5454 /src/reducers
parent6f857e2c81b2d31a86d39c02b010345d3ff23a38 (diff)
parentfc36195e79d5d7e59df3a507e05860ae6ca1495a (diff)
Merge branch 'more-redux'
Diffstat (limited to 'src/reducers')
-rw-r--r--src/reducers/follow.js31
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;
+ }
+}