mirror of
https://github.com/naturalcrit/homebrewery.git
synced 2026-09-20 14:32:57 +00:00
Move setup effects to common functions
This commit is contained in:
@@ -100,36 +100,6 @@ const EditPage = (props)=>{
|
|||||||
hbfm
|
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(()=>{
|
useEffect(()=>{
|
||||||
trySaveRef.current = trySave;
|
trySaveRef.current = trySave;
|
||||||
unsavedChangesRef.current = unsavedChanges;
|
unsavedChangesRef.current = unsavedChanges;
|
||||||
|
|||||||
@@ -86,36 +86,6 @@ const HomePage =(props)=>{
|
|||||||
hbfm
|
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(()=>{
|
useEffect(()=>{
|
||||||
unsavedChangesRef.current = unsavedChanges;
|
unsavedChangesRef.current = unsavedChanges;
|
||||||
}, [unsavedChanges]);
|
}, [unsavedChanges]);
|
||||||
|
|||||||
@@ -91,36 +91,6 @@ const NewPage = (props)=>{
|
|||||||
hbfm
|
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 loadBrew = ()=>{
|
||||||
const brew = { ...currentBrew };
|
const brew = { ...currentBrew };
|
||||||
if(!brew.shareId && typeof window !== 'undefined') { //Load from localStorage if in client browser
|
if(!brew.shareId && typeof window !== 'undefined') { //Load from localStorage if in client browser
|
||||||
|
|||||||
@@ -14,6 +14,35 @@ export default function useCommonEditPageFunctions(dependencies) {
|
|||||||
hbfm
|
hbfm
|
||||||
} = dependencies;
|
} = 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'
|
const handleBrewChange = (field)=>(value, subfield)=>{ //'text', 'style', 'snippets', 'metadata'
|
||||||
if(subfield == 'renderer' || subfield == 'theme')
|
if(subfield == 'renderer' || subfield == 'theme')
|
||||||
fetchThemeBundle(setError, setThemeBundle, value.renderer, value.theme);
|
fetchThemeBundle(setError, setThemeBundle, value.renderer, value.theme);
|
||||||
|
|||||||
Reference in New Issue
Block a user