Add mark action and reducer

This commit is contained in:
Shin'ya Ueoka 2018-10-11 15:00:50 +09:00
parent bf8cfbcb35
commit bf283c732e
5 changed files with 129 additions and 0 deletions

View file

@ -22,4 +22,10 @@ export default {
// Find
FIND_SET_KEYWORD: 'find.set.keyword',
// Mark
MARK_START_SET: 'mark.start.set',
MARK_START_JUMP: 'mark.start.jump',
MARK_CANCEL: 'mark.cancel',
MARK_SET_LOCAL: 'mark.set.local',
};

View file

@ -0,0 +1,25 @@
import actions from 'content/actions';
const startSet = () => {
return { type: actions.MARK_START_SET };
};
const startJump = () => {
return { type: actions.MARK_START_JUMP };
};
const cancel = () => {
return { type: actions.MARK_CANCEL };
};
const setLocal = (key, y) => {
return {
type: actions.MARK_SET_LOCAL,
key,
y,
};
};
export {
startSet, startJump, cancel, setLocal,
};

View file

@ -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;
}
}