Move handleSplitMove to common hook

This commit is contained in:
Trevor Buckner
2026-09-12 12:50:27 -04:00
parent 804dedf1c2
commit 9441582aa3
4 changed files with 21 additions and 23 deletions
+3 -5
View File
@@ -79,10 +79,6 @@ const EditPage = (props)=>{
const saveTimeout = useRef(null); const saveTimeout = useRef(null);
const warnUnsavedTimeout = useRef(null); const warnUnsavedTimeout = useRef(null);
const handleSplitMove = ()=>{
editorRef.current?.update();
};
const updateBrew = (newData)=>setCurrentBrew((prevBrew)=>({ const updateBrew = (newData)=>setCurrentBrew((prevBrew)=>({
...prevBrew, ...prevBrew,
style : newData.style, style : newData.style,
@@ -321,6 +317,7 @@ const EditPage = (props)=>{
}; };
const { const {
handleSplitMove,
handleBrewChange handleBrewChange
} = useCommonEditPageFunctions({ } = useCommonEditPageFunctions({
saveGoogle, saveGoogle,
@@ -343,7 +340,8 @@ const EditPage = (props)=>{
setUnsavedChanges, setUnsavedChanges,
trySave, trySave,
sandbox, sandbox,
lastSavedBrew lastSavedBrew,
editorRef
}); });
return ( return (
+6 -8
View File
@@ -62,8 +62,8 @@ const HomePage =(props)=>{
const [autoSaveEnabled, setAutoSaveEnabled] = useState(false); const [autoSaveEnabled, setAutoSaveEnabled] = useState(false);
const [warnUnsavedChanges, setWarnUnsavedChanges] = useState(true); const [warnUnsavedChanges, setWarnUnsavedChanges] = useState(true);
const editorRef = useRef(null); const editorRef = useRef(null);
const lastSavedBrew = useRef(_.cloneDeep(props.brew)); const lastSavedBrew = useRef(_.cloneDeep(props.brew));
const warnUnsavedTimeout = useRef(null); const warnUnsavedTimeout = useRef(null);
const save = ()=>{ const save = ()=>{
@@ -79,10 +79,6 @@ const HomePage =(props)=>{
}); });
}; };
const handleSplitMove = ()=>{
editorRef.current.update();
};
const resetWarnUnsavedTimer = ()=>{ const resetWarnUnsavedTimer = ()=>{
setTimeout(()=>setWarnUnsavedChanges(false), UNSAVED_WARNING_POPUP_TIMEOUT); // Hide the warning after 4 seconds setTimeout(()=>setWarnUnsavedChanges(false), UNSAVED_WARNING_POPUP_TIMEOUT); // Hide the warning after 4 seconds
clearTimeout(warnUnsavedTimeout.current); clearTimeout(warnUnsavedTimeout.current);
@@ -145,7 +141,8 @@ const HomePage =(props)=>{
</Navbar>; </Navbar>;
}; };
const { const {
handleSplitMove,
handleBrewChange handleBrewChange
} = useCommonEditPageFunctions({ } = useCommonEditPageFunctions({
setError, setError,
@@ -166,7 +163,8 @@ const HomePage =(props)=>{
unsavedChanges, unsavedChanges,
setUnsavedChanges, setUnsavedChanges,
sandbox, sandbox,
lastSavedBrew lastSavedBrew,
editorRef
}); });
return ( return (
+6 -8
View File
@@ -62,8 +62,8 @@ const NewPage = (props)=>{
const [autoSaveEnabled, setAutoSaveEnabled] = useState(false); const [autoSaveEnabled, setAutoSaveEnabled] = useState(false);
const [warnUnsavedChanges, setWarnUnsavedChanges] = useState(true); const [warnUnsavedChanges, setWarnUnsavedChanges] = useState(true);
const editorRef = useRef(null); const editorRef = useRef(null);
const lastSavedBrew = useRef(_.cloneDeep(props.brew)); const lastSavedBrew = useRef(_.cloneDeep(props.brew));
// const saveTimeout = useRef(null); // const saveTimeout = useRef(null);
const warnUnsavedTimeout = useRef(null); const warnUnsavedTimeout = useRef(null);
@@ -100,10 +100,6 @@ const NewPage = (props)=>{
window.history.replaceState({}, window.location.title, '/new/'); window.history.replaceState({}, window.location.title, '/new/');
}; };
const handleSplitMove = ()=>{
editorRef.current.update();
};
const resetWarnUnsavedTimer = ()=>{ const resetWarnUnsavedTimer = ()=>{
setTimeout(()=>setWarnUnsavedChanges(false), UNSAVED_WARNING_POPUP_TIMEOUT); // Hide the warning after 4 seconds setTimeout(()=>setWarnUnsavedChanges(false), UNSAVED_WARNING_POPUP_TIMEOUT); // Hide the warning after 4 seconds
clearTimeout(warnUnsavedTimeout.current); clearTimeout(warnUnsavedTimeout.current);
@@ -199,7 +195,8 @@ const NewPage = (props)=>{
</Navbar> </Navbar>
); );
const { const {
handleSplitMove,
handleBrewChange handleBrewChange
} = useCommonEditPageFunctions({ } = useCommonEditPageFunctions({
setError, setError,
@@ -221,7 +218,8 @@ const NewPage = (props)=>{
setUnsavedChanges, setUnsavedChanges,
trySave, trySave,
sandbox, sandbox,
lastSavedBrew lastSavedBrew,
editorRef
}); });
return ( return (
@@ -26,7 +26,8 @@ export default function useCommonEditPageFunctions(dependencies) {
saveGoogle = false, saveGoogle = false,
unsavedChanges, unsavedChanges,
setUnsavedChanges, setUnsavedChanges,
lastSavedBrew lastSavedBrew,
editorRef
} = dependencies; } = dependencies;
const unsavedChangesRef = useRef(unsavedChanges); // onBeforeUnload lives outside React and needs ref to unsavedChanges const unsavedChangesRef = useRef(unsavedChanges); // onBeforeUnload lives outside React and needs ref to unsavedChanges
@@ -35,7 +36,6 @@ export default function useCommonEditPageFunctions(dependencies) {
useEffect(()=>{ useEffect(()=>{
const autoSavePref = !sandbox && JSON.parse(localStorage.getItem(AUTOSAVE_KEY) ?? true); const autoSavePref = !sandbox && JSON.parse(localStorage.getItem(AUTOSAVE_KEY) ?? true);
setAutoSaveEnabled(autoSavePref); setAutoSaveEnabled(autoSavePref);
console.log(autoSavePref)
setWarnUnsavedChanges(!autoSavePref); setWarnUnsavedChanges(!autoSavePref);
setHTMLErrors(hbfm.validate(currentBrew.text)); setHTMLErrors(hbfm.validate(currentBrew.text));
fetchThemeBundle(setError, setThemeBundle, currentBrew.renderer, currentBrew.theme); fetchThemeBundle(setError, setThemeBundle, currentBrew.renderer, currentBrew.theme);
@@ -70,6 +70,9 @@ export default function useCommonEditPageFunctions(dependencies) {
if(autoSaveEnabled) trySave(false, hasChange, saveGoogle); if(autoSaveEnabled) trySave(false, hasChange, saveGoogle);
}, [currentBrew]); }, [currentBrew]);
const handleSplitMove = ()=>{
editorRef.current.update();
};
const handleBrewChange = (field)=>(value, subfield)=>{ //'text', 'style', 'snippets', 'metadata' const handleBrewChange = (field)=>(value, subfield)=>{ //'text', 'style', 'snippets', 'metadata'
if(subfield == 'renderer' || subfield == 'theme') if(subfield == 'renderer' || subfield == 'theme')
@@ -95,6 +98,7 @@ export default function useCommonEditPageFunctions(dependencies) {
}; };
return { return {
handleSplitMove,
handleBrewChange handleBrewChange
} }
} }