diff options
| author | Jason <jason.daurus@gmail.com> | 2016-07-04 12:59:11 -0400 |
|---|---|---|
| committer | Jason <jason.daurus@gmail.com> | 2016-07-05 11:12:07 +0800 |
| commit | 9bfde2a3ae7fada86911dc96f1ed35a21aae40c3 (patch) | |
| tree | cede8b5d9aab144e24775d0f6d2d926f5103bb23 /web/src/js/ducks/views | |
| parent | 8f73dc79c073a5fc955b5d13d9eb421f38868bf9 (diff) | |
| download | mitmproxy-9bfde2a3ae7fada86911dc96f1ed35a21aae40c3.tar.gz mitmproxy-9bfde2a3ae7fada86911dc96f1ed35a21aae40c3.tar.bz2 mitmproxy-9bfde2a3ae7fada86911dc96f1ed35a21aae40c3.zip | |
[web] change ducks/ui
Diffstat (limited to 'web/src/js/ducks/views')
| -rwxr-xr-x | web/src/js/ducks/views/main.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/web/src/js/ducks/views/main.js b/web/src/js/ducks/views/main.js index f4968de4..db9de619 100755 --- a/web/src/js/ducks/views/main.js +++ b/web/src/js/ducks/views/main.js @@ -7,6 +7,7 @@ export const UPDATE_FILTER = 'FLOW_VIEWS_MAIN_UPDATE_FILTER' export const UPDATE_SORT = 'FLOW_VIEWS_MAIN_UPDATE_SORT' export const UPDATE_HIGHLIGHT = 'FLOW_VIEWS_MAIN_UPDATE_HIGHLIGHT' export const SELECT = 'FLOW_VIEWS_MAIN_SELECT' +export const SELECT_RELATIVE = 'SELECT_RELATIVE' const sortKeyFuns = { @@ -52,6 +53,27 @@ export default function reduce(state = defaultState, action) { selected: [action.id] } + case SELECT_RELATIVE: + if(action.shift === null) { + return { + ...state, + selected: [] + } + } + let id = state.selected[0] + let index = 0 + if(!id && action.shift < 0) { + index = state.view.data.length - 1 + } else if(id) { + index = state.view.indexOf[id] + action.shift + index = index < 0 ? 0 : index + index = index > state.view.data.length - 1 ? state.view.data.length - 1 : index + } + return { + ...state, + selected: [state.view.data[index].id] + } + case UPDATE_FILTER: return { ...state, @@ -171,6 +193,15 @@ export function select(id) { } /** + * @public + */ +export function selectRelative(shift) { + return (dispatch, getState) => { + dispatch({ type: SELECT_RELATIVE, currentSelection: getState().flows.views.main.selected[0], shift }) + } +} + +/** * @private */ function makeFilter(filter) { |
