From ce2406992a0aafc9970feb866c34010f51c222ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Sat, 25 Apr 2026 18:22:44 +0200 Subject: [PATCH 1/4] fix save on load --- client/homebrew/pages/editPage/editPage.jsx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx index b41f1bc74..f9afeea96 100644 --- a/client/homebrew/pages/editPage/editPage.jsx +++ b/client/homebrew/pages/editPage/editPage.jsx @@ -121,7 +121,15 @@ const EditPage = (props)=>{ if(autoSaveEnabled) trySave(false, hasChange); }, [currentBrew]); + const didMount = useRef(false); + useEffect(()=>{ + console.log('savegoogle has changed'); + if (!didMount.current) { + didMount.current = true; + return; + } + trySave(true); }, [saveGoogle]); From 59fc123f7d4b9cd14e3aec8e23eba39d318047e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Sat, 25 Apr 2026 18:25:41 +0200 Subject: [PATCH 2/4] remove log --- client/homebrew/pages/editPage/editPage.jsx | 1 - 1 file changed, 1 deletion(-) diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx index f9afeea96..0dad57855 100644 --- a/client/homebrew/pages/editPage/editPage.jsx +++ b/client/homebrew/pages/editPage/editPage.jsx @@ -124,7 +124,6 @@ const EditPage = (props)=>{ const didMount = useRef(false); useEffect(()=>{ - console.log('savegoogle has changed'); if (!didMount.current) { didMount.current = true; return; From adfb9a2128bcabcdee0ca90e91276bac54ecc8d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Sat, 25 Apr 2026 18:26:28 +0200 Subject: [PATCH 3/4] remove log on themes --- client/components/codeEditor/codeEditor.jsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/client/components/codeEditor/codeEditor.jsx b/client/components/codeEditor/codeEditor.jsx index 5f46fc3e4..87e76e2e7 100644 --- a/client/components/codeEditor/codeEditor.jsx +++ b/client/components/codeEditor/codeEditor.jsx @@ -38,8 +38,6 @@ const themes = { default: defaultCM5Theme, ...cm5Themes, darkbrewery }; const themeCompartment = new Compartment(); const highlightCompartment = new Compartment(); -console.log(themes); - import { generalKeymap, markdownKeymap } from './customKeyMaps.js'; import foldOnPages from './customFolding.js'; import { customHighlightStyle, tokenizeCustomMarkdown, tokenizeCustomCSS } from './customHighlight.js'; From 339d2844a79fd58b1f4e4eae95ee9cbcd058cab3 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Mon, 4 May 2026 16:01:39 -0400 Subject: [PATCH 4/4] Change logic to fire on button click, rather than on state change Ideally side effects (server calls, etc.) should happen outside of useEffect anyway for reasons like this; Putting the save in the button click keeps the logic in one place instead of spread across multiple functions and renders, (This change was already made in my local copy toward combining Edit/New/Home pages.) --- client/homebrew/pages/editPage/editPage.jsx | 23 +++++++-------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx index 0dad57855..1c5e54b5e 100644 --- a/client/homebrew/pages/editPage/editPage.jsx +++ b/client/homebrew/pages/editPage/editPage.jsx @@ -90,7 +90,7 @@ const EditPage = (props)=>{ const handleControlKeys = (e)=>{ if(!(e.ctrlKey || e.metaKey)) return; - if(e.keyCode === 83) trySaveRef.current(true); + if(e.keyCode === 83) trySaveRef.current(true, true, saveGoogle); if(e.keyCode === 80) printCurrentBrew(); if([83, 80].includes(e.keyCode)) { e.stopPropagation(); @@ -118,20 +118,9 @@ const EditPage = (props)=>{ const hasChange = !_.isEqual(currentBrew, lastSavedBrew.current); setUnsavedChanges(hasChange); - if(autoSaveEnabled) trySave(false, hasChange); + if(autoSaveEnabled) trySave(false, hasChange, saveGoogle); }, [currentBrew]); - const didMount = useRef(false); - - useEffect(()=>{ - if (!didMount.current) { - didMount.current = true; - return; - } - - trySave(true); - }, [saveGoogle]); - const handleSplitMove = ()=>{ editorRef.current?.update(); }; @@ -190,11 +179,13 @@ const EditPage = (props)=>{ }; const toggleGoogleStorage = ()=>{ + const newSaveGoogle = !saveGoogle; setSaveGoogle((prev)=>!prev); setError(null); + trySave(true, true, newSaveGoogle); }; - const trySave = (immediate = false, hasChanges = true)=>{ + const trySave = (immediate = false, hasChanges = true, saveToGoogle = false)=>{ clearTimeout(saveTimeout.current); if(isSaving) return; if(!hasChanges && !immediate) return; @@ -203,7 +194,7 @@ const EditPage = (props)=>{ saveTimeout.current = setTimeout(async ()=>{ setIsSaving(true); setError(null); - await save(currentBrew, saveGoogle) + await save(currentBrew, saveToGoogle) .catch((err)=>{ setError(err); }); @@ -321,7 +312,7 @@ const EditPage = (props)=>{ // #3 - Unsaved changes exist, click to save, show SAVE NOW if(unsavedChanges) - return trySave(true)} color='blue' icon='fas fa-save'>save now; + return trySave(true, true, saveGoogle)} color='blue' icon='fas fa-save'>save now; // #4 - No unsaved changes, autosave is ON, show AUTO-SAVED if(autoSaveEnabled)