From 00b4abfe8362748c197a32f7150d8b38a37e3739 Mon Sep 17 00:00:00 2001 From: Clemens Date: Wed, 15 Jun 2016 00:19:33 +0200 Subject: add previous state to dispatch function --- web/src/js/ducks/flows.js | 9 ++++++--- web/src/js/ducks/utils/view.js | 2 +- web/src/js/ducks/view.js | 11 ++++++++--- 3 files changed, 15 insertions(+), 7 deletions(-) (limited to 'web/src/js/ducks') diff --git a/web/src/js/ducks/flows.js b/web/src/js/ducks/flows.js index f7a5538a..b877d3e4 100644 --- a/web/src/js/ducks/flows.js +++ b/web/src/js/ducks/flows.js @@ -101,9 +101,12 @@ export function setSort(sort){ } } export function selectFlow(flowId) { - return { - type: SELECT_FLOW, - flowId + return (dispatch, getState) => { + dispatch({ + type: SELECT_FLOW, + currentSelection: getState().flows.selected[0], + flowId + }) } } diff --git a/web/src/js/ducks/utils/view.js b/web/src/js/ducks/utils/view.js index 2d23a39c..01d57b17 100644 --- a/web/src/js/ducks/utils/view.js +++ b/web/src/js/ducks/utils/view.js @@ -124,7 +124,7 @@ export function updateViewFilter(list, filterFn = defaultFilterFn, sortFn = defa } export function updateViewSort(list, sortFn = defaultSortFn) { - let sorted = list.slice(0) + let sorted = [...list] if (sortFn) { sorted.sort(makeCompareFn(sortFn)) } diff --git a/web/src/js/ducks/view.js b/web/src/js/ducks/view.js index 2b6fe67d..b56561d0 100644 --- a/web/src/js/ducks/view.js +++ b/web/src/js/ducks/view.js @@ -1,3 +1,5 @@ +import ReduxThunk from 'redux-thunk' + import { SELECT_FLOW } from './flows' const ACTIVE_MENU = 'ACTIVE_MENU' @@ -13,10 +15,13 @@ export default function reducer(state = defaultState, action) { active_menu: action.active_menu } case SELECT_FLOW: - return{ - ...state, - active_menu: action.flowId ? 'Flow' : 'Start' + if (!action.currentSelection != !action.flowId){ + return{ + ...state, + active_menu: action.flowId ? 'Flow' : (state.active_menu == 'Flow' ? 'Start' : state.active_menu) + } } + return state default: return state } -- cgit v1.2.3