diff --git a/packages/web/src/designer/Designer.js b/packages/web/src/designer/Designer.js index d13ac371a..6d5dad3bf 100644 --- a/packages/web/src/designer/Designer.js +++ b/packages/web/src/designer/Designer.js @@ -38,12 +38,13 @@ export default function Designer({ value, onChange }) { const changeTable = React.useCallback( (table) => { - onChange((current) => ({ - ...current, - tables: (current.tables || []).map((x) => (x.designerId == table.designerId ? table : x)), - })); + const newValue = { + ...value, + tables: (value.tables || []).map((x) => (x.designerId == table.designerId ? table : x)), + }; + onChange(newValue); }, - [onChange] + [onChange, value] ); const bringToFront = React.useCallback( diff --git a/packages/web/src/utility/useEditorData.js b/packages/web/src/utility/useEditorData.js index e582b9c71..3c51a43fe 100644 --- a/packages/web/src/utility/useEditorData.js +++ b/packages/web/src/utility/useEditorData.js @@ -49,13 +49,12 @@ export default function useEditorData({ tabid, reloadToken = 0, loadFromArgs = n } else { const initFallback = getParsedLocalStorage(localStorageKey); if (initFallback != null) { - const init = JSON.parse(initFallback); - setValue(init); - valueRef.current = init; + setValue(initFallback); + valueRef.current = initFallback; // move to local forage - await localforage.setItem(localStorageKey, init); + await localforage.setItem(localStorageKey, initFallback); localStorage.removeItem(localStorageKey); - initialDataRef.current = init; + initialDataRef.current = initFallback; } else { const init = await localforage.getItem(localStorageKey); if (init) {