From 82efff8ce52952d2d37fae2a3ad70e4386daebc6 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Wed, 9 Sep 2026 20:10:17 -0400 Subject: [PATCH] Move setup effects to common functions --- client/homebrew/pages/editPage/editPage.jsx | 30 ------------------- client/homebrew/pages/homePage/homePage.jsx | 30 ------------------- client/homebrew/pages/newPage/newPage.jsx | 30 ------------------- .../homebrew/utils/commonEditPageFunctions.js | 29 ++++++++++++++++++ 4 files changed, 29 insertions(+), 90 deletions(-) diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx index 5f369e7c5..f88b3877f 100644 --- a/client/homebrew/pages/editPage/editPage.jsx +++ b/client/homebrew/pages/editPage/editPage.jsx @@ -100,36 +100,6 @@ const EditPage = (props)=>{ hbfm }); - useEffect(()=>{ - const autoSavePref = !sandbox && JSON.parse(localStorage.getItem(AUTOSAVE_KEY) ?? true); - - setAutoSaveEnabled(autoSavePref); - setWarnUnsavedChanges(!autoSavePref); - setHTMLErrors(hbfm.validate(currentBrew.text)); - fetchThemeBundle(setError, setThemeBundle, currentBrew.renderer, currentBrew.theme); - - const handleControlKeys = (e)=>{ - if(!(e.ctrlKey || e.metaKey)) return; - if(e.keyCode === 83) trySaveRef.current(true, true, saveGoogle); - if(e.keyCode === 80) printCurrentBrew(); - if([83, 80].includes(e.keyCode)) { - e.stopPropagation(); - e.preventDefault(); - } - }; - - document.addEventListener('keydown', handleControlKeys); - window.onbeforeunload = ()=>{ - if(unsavedChangesRef.current) - return 'You have unsaved changes!'; - }; - - return ()=>{ - document.removeEventListener('keydown', handleControlKeys); - window.onbeforeunload = null; - }; - }, []); - useEffect(()=>{ trySaveRef.current = trySave; unsavedChangesRef.current = unsavedChanges; diff --git a/client/homebrew/pages/homePage/homePage.jsx b/client/homebrew/pages/homePage/homePage.jsx index 2e4137049..b15787d48 100644 --- a/client/homebrew/pages/homePage/homePage.jsx +++ b/client/homebrew/pages/homePage/homePage.jsx @@ -86,36 +86,6 @@ const HomePage =(props)=>{ hbfm }); - useEffect(()=>{ - const autoSavePref = !sandbox && JSON.parse(localStorage.getItem(AUTOSAVE_KEY) ?? true); - - setAutoSaveEnabled(autoSavePref); - setWarnUnsavedChanges(!autoSavePref); - setHTMLErrors(hbfm.validate(currentBrew.text)); - fetchThemeBundle(setError, setThemeBundle, currentBrew.renderer, currentBrew.theme); - - const handleControlKeys = (e)=>{ - if(!(e.ctrlKey || e.metaKey)) return; - if(e.keyCode === 83) trySaveRef.current(true); - if(e.keyCode === 80) printCurrentBrew(); - if([83, 80].includes(e.keyCode)) { - e.stopPropagation(); - e.preventDefault(); - } - }; - - document.addEventListener('keydown', handleControlKeys); - window.onbeforeunload = ()=>{ - if(unsavedChangesRef.current) - return 'You have unsaved changes!'; - }; - - return ()=>{ - document.removeEventListener('keydown', handleControlKeys); - window.onbeforeunload = null; - }; - }, []); - useEffect(()=>{ unsavedChangesRef.current = unsavedChanges; }, [unsavedChanges]); diff --git a/client/homebrew/pages/newPage/newPage.jsx b/client/homebrew/pages/newPage/newPage.jsx index f0c9ac323..2b3c9e4d3 100644 --- a/client/homebrew/pages/newPage/newPage.jsx +++ b/client/homebrew/pages/newPage/newPage.jsx @@ -91,36 +91,6 @@ const NewPage = (props)=>{ hbfm }); - useEffect(()=>{ - const autoSavePref = !sandbox && JSON.parse(localStorage.getItem(AUTOSAVE_KEY) ?? true); - - setAutoSaveEnabled(autoSavePref); - setWarnUnsavedChanges(!autoSavePref); - setHTMLErrors(hbfm.validate(currentBrew.text)); - fetchThemeBundle(setError, setThemeBundle, currentBrew.renderer, currentBrew.theme); - - const handleControlKeys = (e)=>{ - if(!(e.ctrlKey || e.metaKey)) return; - if(e.keyCode === 83) trySaveRef.current(true); - if(e.keyCode === 80) printCurrentBrew(); - if([83, 80].includes(e.keyCode)) { - e.stopPropagation(); - e.preventDefault(); - } - }; - - document.addEventListener('keydown', handleControlKeys); - window.onbeforeunload = ()=>{ - if(unsavedChangesRef.current) - return 'You have unsaved changes!'; - }; - - return ()=>{ - document.removeEventListener('keydown', handleControlKeys); - window.onbeforeunload = null; - }; - }, []); - const loadBrew = ()=>{ const brew = { ...currentBrew }; if(!brew.shareId && typeof window !== 'undefined') { //Load from localStorage if in client browser diff --git a/client/homebrew/utils/commonEditPageFunctions.js b/client/homebrew/utils/commonEditPageFunctions.js index bf397e334..4536cc1c5 100644 --- a/client/homebrew/utils/commonEditPageFunctions.js +++ b/client/homebrew/utils/commonEditPageFunctions.js @@ -14,6 +14,35 @@ export default function useCommonEditPageFunctions(dependencies) { hbfm } = dependencies; + //==--------- Page setup ----------==// + useEffect(()=>{ + const autoSavePref = JSON.parse(localStorage.getItem(AUTOSAVE_KEY) ?? true); + setAutoSaveEnabled(autoSavePref); + setWarnUnsavedChanges(!autoSavePref); + setHTMLErrors(hbfm.validate(currentBrew.text)); + fetchThemeBundle(setError, setThemeBundle, currentBrew.renderer, currentBrew.theme); + + const handleControlKeys = (e)=>{ + if(!(e.ctrlKey || e.metaKey)) return; + if(e.keyCode === 83) trySaveRef.current(true, true, saveGoogle); + if(e.keyCode === 80) printCurrentBrew(); + if([83, 80].includes(e.keyCode)) { + e.stopPropagation(); + e.preventDefault(); + } + }; + + document.addEventListener('keydown', handleControlKeys); + window.onbeforeunload = ()=>{ + if(unsavedChangesRef.current) + return 'You have unsaved changes!'; + }; + return ()=>{ + document.removeEventListener('keydown', handleControlKeys); + window.onBeforeUnload = null; + }; + }, []); + const handleBrewChange = (field)=>(value, subfield)=>{ //'text', 'style', 'snippets', 'metadata' if(subfield == 'renderer' || subfield == 'theme') fetchThemeBundle(setError, setThemeBundle, value.renderer, value.theme);