0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-10 11:22:40 +00:00
This commit is contained in:
Trevor Buckner
2025-09-02 22:26:01 -04:00
parent 1aeded648e
commit b187b981ea

View File

@@ -25,9 +25,9 @@ const STYLEKEY = 'homebrewery-new-style';
const METAKEY = 'homebrewery-new-meta'; const METAKEY = 'homebrewery-new-meta';
const SAVEKEY = `HOMEBREWERY-DEFAULT-SAVE-LOCATION-${global.account?.username || ''}`; const SAVEKEY = `HOMEBREWERY-DEFAULT-SAVE-LOCATION-${global.account?.username || ''}`;
const NewPage = (props) => { const NewPage = (props)=>{
props = { props = {
brew: DEFAULT_BREW, brew : DEFAULT_BREW,
...props ...props
}; };
@@ -43,12 +43,12 @@ const NewPage = (props) => {
const editorRef = useRef(null); const editorRef = useRef(null);
useEffect(() => { useEffect(()=>{
document.addEventListener('keydown', handleControlKeys); document.addEventListener('keydown', handleControlKeys);
loadBrew(); loadBrew();
fetchThemeBundle(setError, setThemeBundle, currentBrew.renderer, currentBrew.theme); fetchThemeBundle(setError, setThemeBundle, currentBrew.renderer, currentBrew.theme);
return () => { return ()=>{
document.removeEventListener('keydown', handleControlKeys); document.removeEventListener('keydown', handleControlKeys);
}; };
}, []); }, []);
@@ -80,13 +80,13 @@ const NewPage = (props) => {
window.history.replaceState({}, window.location.title, '/new/'); window.history.replaceState({}, window.location.title, '/new/');
}; };
const handleControlKeys = (e) => { const handleControlKeys = (e)=>{
if (!(e.ctrlKey || e.metaKey)) return; if(!(e.ctrlKey || e.metaKey)) return;
const S_KEY = 83; const S_KEY = 83;
const P_KEY = 80; const P_KEY = 80;
if (e.keyCode === S_KEY) save(); if(e.keyCode === S_KEY) save();
if (e.keyCode === P_KEY) printCurrentBrew(); if(e.keyCode === P_KEY) printCurrentBrew();
if (e.keyCode === S_KEY || e.keyCode === P_KEY) { if(e.keyCode === S_KEY || e.keyCode === P_KEY) {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
} }
@@ -114,12 +114,12 @@ const NewPage = (props) => {
HTMLErrors = Markdown.validate(text); HTMLErrors = Markdown.validate(text);
setHTMLErrors(HTMLErrors); setHTMLErrors(HTMLErrors);
setCurrentBrew((prevBrew) => ({ ...prevBrew, text })); setCurrentBrew((prevBrew)=>({ ...prevBrew, text }));
localStorage.setItem(BREWKEY, text); localStorage.setItem(BREWKEY, text);
}; };
const handleStyleChange = (style) => { const handleStyleChange = (style)=>{
setCurrentBrew(prevBrew => ({ ...prevBrew, style })); setCurrentBrew((prevBrew)=>({ ...prevBrew, style }));
localStorage.setItem(STYLEKEY, style); localStorage.setItem(STYLEKEY, style);
}; };
@@ -129,14 +129,14 @@ const NewPage = (props) => {
HTMLErrors = Markdown.validate(snippet); HTMLErrors = Markdown.validate(snippet);
setHTMLErrors(HTMLErrors); setHTMLErrors(HTMLErrors);
setCurrentBrew((prevBrew) => ({ ...prevBrew, snippets: snippet })); setCurrentBrew((prevBrew)=>({ ...prevBrew, snippets: snippet }));
}; };
const handleMetaChange = (metadata, field = undefined) => { const handleMetaChange = (metadata, field = undefined)=>{
if (field === 'theme' || field === 'renderer') if(field === 'theme' || field === 'renderer')
fetchThemeBundle(setError, setThemeBundle, metadata.renderer, metadata.theme); fetchThemeBundle(setError, setThemeBundle, metadata.renderer, metadata.theme);
setCurrentBrew(prev => ({ ...prev, ...metadata })); setCurrentBrew((prev)=>({ ...prev, ...metadata }));
localStorage.setItem(METAKEY, JSON.stringify({ localStorage.setItem(METAKEY, JSON.stringify({
renderer : metadata.renderer, renderer : metadata.renderer,
theme : metadata.theme, theme : metadata.theme,
@@ -144,10 +144,10 @@ const NewPage = (props) => {
})); }));
}; };
const save = async () => { const save = async ()=>{
setIsSaving(true); setIsSaving(true);
let updatedBrew = { ...currentBrew }; const updatedBrew = { ...currentBrew };
splitTextStyleAndMetadata(updatedBrew); splitTextStyleAndMetadata(updatedBrew);
const pageRegex = updatedBrew.renderer === 'legacy' ? /\\page/g : /^\\page$/gm; const pageRegex = updatedBrew.renderer === 'legacy' ? /\\page/g : /^\\page$/gm;
@@ -156,13 +156,13 @@ const NewPage = (props) => {
const res = await request const res = await request
.post(`/api${saveGoogle ? '?saveToGoogle=true' : ''}`) .post(`/api${saveGoogle ? '?saveToGoogle=true' : ''}`)
.send(updatedBrew) .send(updatedBrew)
.catch((err) => { .catch((err)=>{
setIsSaving(false); setIsSaving(false);
setError(err); setError(err);
}); });
setIsSaving(false) setIsSaving(false);
if (!res) return; if(!res) return;
const savedBrew = res.body; const savedBrew = res.body;
@@ -189,7 +189,7 @@ const NewPage = (props) => {
setIsSaving(false); setIsSaving(false);
}; };
const renderNavbar = () => ( const renderNavbar = ()=>(
<Navbar> <Navbar>
<Nav.section> <Nav.section>
<Nav.item className='brewTitle'>{currentBrew.title}</Nav.item> <Nav.item className='brewTitle'>{currentBrew.title}</Nav.item>