From b52f88082602de161ba8cee2c8fc9911525efc57 Mon Sep 17 00:00:00 2001 From: Gheric Speiginer Date: Fri, 17 May 2024 11:54:49 -0700 Subject: [PATCH] Fix syncStateWithLocalStorage (#10182) --- packages/hyperflux/functions/StateFunctions.ts | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/packages/hyperflux/functions/StateFunctions.ts b/packages/hyperflux/functions/StateFunctions.ts index b7285493c7f..e2744cafce8 100644 --- a/packages/hyperflux/functions/StateFunctions.ts +++ b/packages/hyperflux/functions/StateFunctions.ts @@ -142,15 +142,12 @@ export function syncStateWithLocalStorage( if (storedValue !== null && storedValue !== 'undefined') state[key].set(JSON.parse(storedValue)) } }, - onSet: (state, desc, rootState) => { - for (const key of keys) { - if (rootState[key].value === undefined) - localStorage.removeItem(`${stateNamespaceKey}.${rootState.identifier}.${key}`) - else - localStorage.setItem( - `${stateNamespaceKey}.${rootState.identifier}.${key}`, - JSON.stringify(rootState[key].get({ noproxy: true })) - ) + onSet: (state, desc) => { + const key = '' + desc.path[0] + if (keys.includes(key)) { + const storageKey = `${stateNamespaceKey}.${state.identifier}.${key}` + if (!state[key] || !state[key].get(NO_PROXY)) localStorage.removeItem(storageKey) + else localStorage.setItem(storageKey, JSON.stringify(state[key].get(NO_PROXY))) } } }