diff options
Diffstat (limited to 'web/src/js')
-rw-r--r-- | web/src/js/ducks/flows.js | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/web/src/js/ducks/flows.js b/web/src/js/ducks/flows.js index 69bb2812..53d12248 100644 --- a/web/src/js/ducks/flows.js +++ b/web/src/js/ducks/flows.js @@ -24,7 +24,7 @@ export default function reduce(state = defaultState, action) { return { ...state, filter: action.filter, - list: reduceList(state.list, listActions.updateFilter(action.filter ? Filt.parse(action.filter) : () => true)), + list: reduceList(state.list, listActions.updateFilter(makeFilterFun(action.filter))), } case UPDATE_HIGHLIGHT: @@ -34,21 +34,10 @@ export default function reduce(state = defaultState, action) { } case UPDATE_SORTER: - const { column, desc, sortKeyFun } = action return { ...state, - sorter: { column, desc }, - list: reduceList(state.list, listActions.updateSorter((a, b) => { - const ka = sortKeyFun(a) - const kb = sortKeyFun(b) - if (ka > kb) { - return desc ? -1 : 1 - } - if (ka < kb) { - return desc ? 1 : -1 - } - return 0 - })), + sorter: { column: action.column, desc: action.desc }, + list: reduceList(state.list, listActions.updateSorter(makeSortFun(action.sortKeyFun, action.desc))), } case SELECT: @@ -68,6 +57,24 @@ export default function reduce(state = defaultState, action) { } } +function makeFilterFun(filter) { + return filter ? Filt.parse(filter) : () => true +} + +function makeSortFun(sortKeyFun, desc) { + return (a, b) => { + const ka = sortKeyFun(a) + const kb = sortKeyFun(b) + if (ka > kb) { + return desc ? -1 : 1 + } + if (ka < kb) { + return desc ? 1 : -1 + } + return 0 + } +} + /** * @public */ |