From 35eb0a31462e07754e61079fae3d1dffff04884c Mon Sep 17 00:00:00 2001 From: benomatis Date: Mon, 14 Feb 2022 15:25:57 +0100 Subject: [PATCH] feat: CLEAR_DATA to clear composite and queries as well --- src/reducers/crossSliceReducer.js | 7 +++++++ src/reducers/queriesReducer.js | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/src/reducers/crossSliceReducer.js b/src/reducers/crossSliceReducer.js index 3d0391f7..ee2db090 100644 --- a/src/reducers/crossSliceReducer.js +++ b/src/reducers/crossSliceReducer.js @@ -2,6 +2,7 @@ import produce from 'immer'; import { groupBy, merge, set, get } from 'lodash'; import { actionTypes } from '../constants'; +import { preserveValuesFromState } from '../utils/reducers'; /** * Reducer for crossSlice state @@ -34,6 +35,12 @@ export default function crossSliceReducer(state = {}, action) { }); return draft; + case actionTypes.CLEAR_DATA: + // support keeping data when logging out - #125 + if (action.preserve && action.preserve.ordered) { + return preserveValuesFromState(state, action.preserve.ordered, {}); + } + return {}; default: return state; } diff --git a/src/reducers/queriesReducer.js b/src/reducers/queriesReducer.js index a8db9f83..0130c550 100644 --- a/src/reducers/queriesReducer.js +++ b/src/reducers/queriesReducer.js @@ -1,6 +1,7 @@ import produce from 'immer'; import { set, get, unset } from 'lodash'; import { actionTypes } from '../constants'; +import { preserveValuesFromState } from '../utils/reducers'; import { getBaseQueryName } from '../utils/query'; /** @@ -49,6 +50,12 @@ export default function queriesReducer(state = {}, action) { case actionTypes.DELETE_SUCCESS: unset(draft, [key, 'data', action.meta.doc]); return draft; + case actionTypes.CLEAR_DATA: + // support keeping data when logging out - #125 + if (action.preserve && action.preserve.ordered) { + return preserveValuesFromState(state, action.preserve.ordered, {}); + } + return {}; default: return state; }