aboutsummaryrefslogtreecommitdiffstats
path: root/web/src/js/ducks/views
diff options
context:
space:
mode:
authorJason <jason.daurus@gmail.com>2016-07-04 12:59:11 -0400
committerJason <jason.daurus@gmail.com>2016-07-05 11:12:07 +0800
commit9bfde2a3ae7fada86911dc96f1ed35a21aae40c3 (patch)
treecede8b5d9aab144e24775d0f6d2d926f5103bb23 /web/src/js/ducks/views
parent8f73dc79c073a5fc955b5d13d9eb421f38868bf9 (diff)
downloadmitmproxy-9bfde2a3ae7fada86911dc96f1ed35a21aae40c3.tar.gz
mitmproxy-9bfde2a3ae7fada86911dc96f1ed35a21aae40c3.tar.bz2
mitmproxy-9bfde2a3ae7fada86911dc96f1ed35a21aae40c3.zip
[web] change ducks/ui
Diffstat (limited to 'web/src/js/ducks/views')
-rwxr-xr-xweb/src/js/ducks/views/main.js31
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) {