diff --git a/extension/src/app/stores/enhancerStore.ts b/extension/src/app/stores/enhancerStore.ts index 578f0f1c..532cfccb 100644 --- a/extension/src/app/stores/enhancerStore.ts +++ b/extension/src/app/stores/enhancerStore.ts @@ -1,6 +1,6 @@ import { Action, compose, Reducer, StoreEnhancerStoreCreator } from 'redux'; import { instrument } from '@redux-devtools/instrument'; -import persistState from './persistState'; +import { persistState } from '@redux-devtools/core'; import { ConfigWithExpandedMaxAge } from '../../browser/extension/inject/pageScript'; export function getUrlParam(key: string) { diff --git a/extension/src/app/stores/persistState.ts b/extension/src/app/stores/persistState.ts deleted file mode 100644 index 2a73babc..00000000 --- a/extension/src/app/stores/persistState.ts +++ /dev/null @@ -1,83 +0,0 @@ -import mapValues from 'lodash/mapValues'; -import identity from 'lodash/identity'; -import { Action, PreloadedState, Reducer, StoreEnhancer } from 'redux'; -import { LiftedState } from '@redux-devtools/instrument'; - -export default function persistState< - S, - A extends Action, - MonitorState ->( - sessionId?: string | null, - deserializeState: (state: S) => S = identity, - deserializeAction: (action: A) => A = identity -): StoreEnhancer { - if (!sessionId) { - return (next) => - (...args) => - next(...args); - } - - function deserialize( - state: LiftedState - ): LiftedState { - return { - ...state, - actionsById: mapValues(state.actionsById, (liftedAction) => ({ - ...liftedAction, - action: deserializeAction(liftedAction.action), - })), - committedState: deserializeState(state.committedState), - computedStates: state.computedStates.map((computedState) => ({ - ...computedState, - state: deserializeState(computedState.state), - })), - }; - } - - return (next) => - >( - reducer: Reducer, - initialState?: PreloadedState - ) => { - const key = `redux-dev-session-${sessionId}`; - - let finalInitialState; - try { - const json = localStorage.getItem(key); - if (json) { - finalInitialState = - deserialize(JSON.parse(json) as LiftedState) || - initialState; - next(reducer, initialState); - } - } catch (e) { - console.warn('Could not read debug session from localStorage:', e); // eslint-disable-line no-console - try { - localStorage.removeItem(key); - } finally { - finalInitialState = undefined; - } - } - - const store = next( - reducer, - finalInitialState as PreloadedState | undefined - ); - - return { - ...store, - dispatch(action: T) { - store.dispatch(action); - - try { - localStorage.setItem(key, JSON.stringify(store.getState())); - } catch (e) { - console.warn('Could not write debug session to localStorage:', e); // eslint-disable-line no-console - } - - return action; - }, - }; - }; -}