aboutsummaryrefslogtreecommitdiff
path: root/src/content/reducers/follow-controller.js
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2017-11-02 11:41:11 +0000
committerGitHub <noreply@github.com>2017-11-02 11:41:11 +0000
commit9f1a18352fcac690ea714e84f6b1f6d6201ffd67 (patch)
treeeced7b1cc76935aea8e9de2a0cbf79649b032052 /src/content/reducers/follow-controller.js
parentc4996ef5d8d5d85f49732bb01b6da13b66ea81d5 (diff)
parent14241ca842b7dc92f26252a0ac7bb7e549d560c8 (diff)
Merge pull request #123 from ueokande/64-follow-area-tags
follow area tags
Diffstat (limited to 'src/content/reducers/follow-controller.js')
-rw-r--r--src/content/reducers/follow-controller.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/content/reducers/follow-controller.js b/src/content/reducers/follow-controller.js
new file mode 100644
index 0000000..2afb232
--- /dev/null
+++ b/src/content/reducers/follow-controller.js
@@ -0,0 +1,32 @@
+import actions from 'content/actions';
+
+const defaultState = {
+ enabled: false,
+ newTab: false,
+ keys: '',
+};
+
+export default function reducer(state = defaultState, action = {}) {
+ switch (action.type) {
+ case actions.FOLLOW_CONTROLLER_ENABLE:
+ return Object.assign({}, state, {
+ enabled: true,
+ newTab: action.newTab,
+ keys: '',
+ });
+ case actions.FOLLOW_CONTROLLER_DISABLE:
+ return Object.assign({}, state, {
+ enabled: false,
+ });
+ case actions.FOLLOW_CONTROLLER_KEY_PRESS:
+ return Object.assign({}, state, {
+ keys: state.keys + action.key,
+ });
+ case actions.FOLLOW_CONTROLLER_BACKSPACE:
+ return Object.assign({}, state, {
+ keys: state.keys.slice(0, -1),
+ });
+ default:
+ return state;
+ }
+}