diff --git a/frontend/patches/redux-deep-persist+1.0.6.patch b/frontend/patches/redux-deep-persist+1.0.6.patch new file mode 100644 index 0000000000..47a62e6aac --- /dev/null +++ b/frontend/patches/redux-deep-persist+1.0.6.patch @@ -0,0 +1,24 @@ +diff --git a/node_modules/redux-deep-persist/lib/types.d.ts b/node_modules/redux-deep-persist/lib/types.d.ts +index b67b8c2..7fc0fa1 100644 +--- a/node_modules/redux-deep-persist/lib/types.d.ts ++++ b/node_modules/redux-deep-persist/lib/types.d.ts +@@ -35,6 +35,7 @@ export interface PersistConfig<S, RS = any, HSS = any, ESS = any> { + whitelist?: Array<string>; + transforms?: Array<Transform<HSS, ESS, S, RS>>; + throttle?: number; ++ debounce?: number; + migrate?: PersistMigrate; + stateReconciler?: false | StateReconciler<S>; + getStoredState?: (config: PersistConfig<S, RS, HSS, ESS>) => Promise<PersistedState>; +diff --git a/node_modules/redux-deep-persist/src/types.ts b/node_modules/redux-deep-persist/src/types.ts +index 398ac19..cbc5663 100644 +--- a/node_modules/redux-deep-persist/src/types.ts ++++ b/node_modules/redux-deep-persist/src/types.ts +@@ -91,6 +91,7 @@ export interface PersistConfig<S, RS = any, HSS = any, ESS = any> { + whitelist?: Array<string>; + transforms?: Array<Transform<HSS, ESS, S, RS>>; + throttle?: number; ++ debounce?: number; + migrate?: PersistMigrate; + stateReconciler?: false | StateReconciler<S>; + /** diff --git a/frontend/patches/redux-persist+6.0.0.patch b/frontend/patches/redux-persist+6.0.0.patch new file mode 100644 index 0000000000..7ae1493d46 --- /dev/null +++ b/frontend/patches/redux-persist+6.0.0.patch @@ -0,0 +1,86 @@ +diff --git a/node_modules/redux-persist/es/createPersistoid.js b/node_modules/redux-persist/es/createPersistoid.js +index 8b43b9a..316d975 100644 +--- a/node_modules/redux-persist/es/createPersistoid.js ++++ b/node_modules/redux-persist/es/createPersistoid.js +@@ -6,6 +6,7 @@ export default function createPersistoid(config) { + var whitelist = config.whitelist || null; + var transforms = config.transforms || []; + var throttle = config.throttle || 0; ++ var debounce = config.debounce || 0; + var storageKey = "".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key); + var storage = config.storage; + var serialize; +@@ -28,7 +29,15 @@ export default function createPersistoid(config) { + var timeIterator = null; + var writePromise = null; + +- var update = function update(state) { ++ function debounce(func, timeout){ ++ let timer; ++ return (...args) => { ++ clearTimeout(timer); ++ timer = setTimeout(() => { func.apply(this, args); }, timeout); ++ }; ++ } ++ ++ var update = debounce(function update(state) { + // add any changed keys to the queue + Object.keys(state).forEach(function (key) { + if (!passWhitelistBlacklist(key)) return; // is keyspace ignored? noop +@@ -52,7 +61,7 @@ export default function createPersistoid(config) { + } + + lastState = state; +- }; ++ }, debounce); + + function processNextKey() { + if (keysToProcess.length === 0) { +diff --git a/node_modules/redux-persist/es/types.js.flow b/node_modules/redux-persist/es/types.js.flow +index c50d3cd..39d8be2 100644 +--- a/node_modules/redux-persist/es/types.js.flow ++++ b/node_modules/redux-persist/es/types.js.flow +@@ -19,6 +19,7 @@ export type PersistConfig = { + whitelist?: Array<string>, + transforms?: Array<Transform>, + throttle?: number, ++ debounce?: number, + migrate?: (PersistedState, number) => Promise<PersistedState>, + stateReconciler?: false | Function, + getStoredState?: PersistConfig => Promise<PersistedState>, // used for migrations +diff --git a/node_modules/redux-persist/lib/types.js.flow b/node_modules/redux-persist/lib/types.js.flow +index c50d3cd..39d8be2 100644 +--- a/node_modules/redux-persist/lib/types.js.flow ++++ b/node_modules/redux-persist/lib/types.js.flow +@@ -19,6 +19,7 @@ export type PersistConfig = { + whitelist?: Array<string>, + transforms?: Array<Transform>, + throttle?: number, ++ debounce?: number, + migrate?: (PersistedState, number) => Promise<PersistedState>, + stateReconciler?: false | Function, + getStoredState?: PersistConfig => Promise<PersistedState>, // used for migrations +diff --git a/node_modules/redux-persist/src/types.js b/node_modules/redux-persist/src/types.js +index c50d3cd..39d8be2 100644 +--- a/node_modules/redux-persist/src/types.js ++++ b/node_modules/redux-persist/src/types.js +@@ -19,6 +19,7 @@ export type PersistConfig = { + whitelist?: Array<string>, + transforms?: Array<Transform>, + throttle?: number, ++ debounce?: number, + migrate?: (PersistedState, number) => Promise<PersistedState>, + stateReconciler?: false | Function, + getStoredState?: PersistConfig => Promise<PersistedState>, // used for migrations +diff --git a/node_modules/redux-persist/types/types.d.ts b/node_modules/redux-persist/types/types.d.ts +index b3733bc..2a1696c 100644 +--- a/node_modules/redux-persist/types/types.d.ts ++++ b/node_modules/redux-persist/types/types.d.ts +@@ -35,6 +35,7 @@ declare module "redux-persist/es/types" { + whitelist?: Array<string>; + transforms?: Array<Transform<HSS, ESS, S, RS>>; + throttle?: number; ++ debounce?: number; + migrate?: PersistMigrate; + stateReconciler?: false | StateReconciler<S>; + /**