Move UnsavedChangesRef into common hook and clean syncing useEffect

This commit is contained in:
Trevor Buckner
2026-09-12 12:30:21 -04:00
parent e2cec264a6
commit b26d81ca08
4 changed files with 7 additions and 19 deletions
@@ -24,11 +24,13 @@ export default function useCommonEditPageFunctions(dependencies) {
trySave = ()=>{},
sandbox,
saveGoogle = false,
unsavedChangesRef,
unsavedChanges,
setUnsavedChanges,
lastSavedBrew
} = dependencies;
const unsavedChangesRef = useRef(unsavedChanges); // onBeforeUnload lives outside React and needs ref to unsavedChanges
//==--------- Page setup ----------==//
useEffect(()=>{
const autoSavePref = !sandbox && JSON.parse(localStorage.getItem(AUTOSAVE_KEY) ?? true);
@@ -63,6 +65,7 @@ export default function useCommonEditPageFunctions(dependencies) {
useEffect(()=>{
const hasChange = !_.isEqual(currentBrew, lastSavedBrew.current);
setUnsavedChanges(hasChange);
unsavedChangesRef.current = hasChange;
if(autoSaveEnabled) trySave(false, hasChange, saveGoogle);
}, [currentBrew]);