aboutsummaryrefslogtreecommitdiff
path: root/src/content/reducers/mark.js
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2018-10-11 15:00:50 +0900
committerShin'ya Ueoka <ueokande@i-beam.org>2018-10-11 15:00:50 +0900
commitbf283c732ef9424d365ca1b09ce8b174f61c336c (patch)
tree3b6ffba5e3a9d2dda059a61fddd2f2b52baf0608 /src/content/reducers/mark.js
parentbf8cfbcb35365f83c94851a78bb0ea797e9d9ae2 (diff)
Add mark action and reducer
Diffstat (limited to 'src/content/reducers/mark.js')
-rw-r--r--src/content/reducers/mark.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/content/reducers/mark.js b/src/content/reducers/mark.js
new file mode 100644
index 0000000..b6a071f
--- /dev/null
+++ b/src/content/reducers/mark.js
@@ -0,0 +1,25 @@
+import actions from 'content/actions';
+
+const defaultState = {
+ set: false,
+ jump: false,
+ marks: {},
+};
+
+export default function reducer(state = defaultState, action = {}) {
+ switch (action.type) {
+ case actions.MARK_START_SET:
+ return { ...state, set: true };
+ case actions.MARK_START_JUMP:
+ return { ...state, jump: true };
+ case actions.MARK_CANCEL:
+ return { ...state, set: false, jump: false };
+ case actions.MARK_SET_LOCAL: {
+ let marks = { ...state.marks };
+ marks[action.key] = { y: action.y };
+ return { ...state, marks };
+ }
+ default:
+ return state;
+ }
+}