diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx
index 2a35f81bd..f5ca38748 100644
--- a/client/homebrew/pages/editPage/editPage.jsx
+++ b/client/homebrew/pages/editPage/editPage.jsx
@@ -1,4 +1,3 @@
-/* eslint-disable max-lines */
import './editPage.less';
// Common imports
@@ -12,22 +11,12 @@ import { DEFAULT_BREW_LOAD } from '../../../../server/brewDefau
import useCommonEditPageFunctions from '../../utils/commonEditPageFunctions.jsx';
import Nav from '@navbar/nav.jsx';
-import Navbar from '@navbar/navbar.jsx';
-import NewBrewItem from '@navbar/newbrew.navitem.jsx';
-import AccountNavItem from '@navbar/account.navitem.jsx';
-import ErrorNavItem from '@navbar/error-navitem.jsx';
-import HelpNavItem from '@navbar/help.navitem.jsx';
-import VaultNavItem from '@navbar/vault.navitem.jsx';
-import PrintNavItem from '@navbar/print.navitem.jsx';
-import RecentNavItems from '@navbar/recent.navitem.jsx';
-const { both: RecentNavItem } = RecentNavItems;
// Page specific imports
import { md5 } from 'hash-wasm';
import { gzipSync, strToU8 } from 'fflate';
import { makePatches, stringifyPatches } from '@sanity/diff-match-patch';
-import ShareNavItem from '@navbar/share.navitem.jsx';
import { updateHistory, versionHistoryGarbageCollection } from '../../utils/versionHistory.js';
import googleDriveIcon from '../../googleDrive.svg';
@@ -182,47 +171,12 @@ const EditPage = (props)=>{
);
- const renderAutoSaveButton = ()=>(
-
- Autosave
-
- );
-
- const renderNavbar = ()=>{
- return
-
- {currentBrew.title}
-
-
-
- {renderGoogleDriveIcon()}
- {error
- ?
- :
- {renderSaveButton()}
- {renderAutoSaveButton()}
- }
-
-
-
-
-
-
-
-
- ;
- };
-
const {
- toggleAutoSave,
- clearError,
- renderSaveButton,
renderPanels,
- autoSaveEnabled,
trySave,
- currentBrewRendererPageNum
} = useCommonEditPageFunctions({
saveGoogle,
+ error,
setError,
currentBrew,
setCurrentBrew,
@@ -236,9 +190,9 @@ const EditPage = (props)=>{
showFloatingButtons,
lastSavedBrew,
save,
- renderNavbar,
pageName,
showEditorButtons,
+ renderGoogleDriveIcon,
userThemes: props.userThemes
});
diff --git a/client/homebrew/pages/homePage/homePage.jsx b/client/homebrew/pages/homePage/homePage.jsx
index f3b734bfb..3a0590889 100644
--- a/client/homebrew/pages/homePage/homePage.jsx
+++ b/client/homebrew/pages/homePage/homePage.jsx
@@ -1,4 +1,3 @@
-
import './homePage.less';
// Common imports
@@ -11,21 +10,7 @@ import { DEFAULT_BREW } from '../../../../server/brewDefau
import useCommonEditPageFunctions from '../../utils/commonEditPageFunctions.jsx';
-import Nav from '@navbar/nav.jsx';
-import Navbar from '@navbar/navbar.jsx';
-import NewBrewItem from '@navbar/newbrew.navitem.jsx';
-import AccountNavItem from '@navbar/account.navitem.jsx';
-import ErrorNavItem from '@navbar/error-navitem.jsx';
-import HelpNavItem from '@navbar/help.navitem.jsx';
-import VaultNavItem from '@navbar/vault.navitem.jsx';
-import PrintNavItem from '@navbar/print.navitem.jsx';
-import RecentNavItems from '@navbar/recent.navitem.jsx';
-const { both: RecentNavItem } = RecentNavItems;
-
-
// Page specific imports
-
-
const BREWKEY = 'HB_newPage_content';
const STYLEKEY = 'HB_newPage_style';
const SNIPKEY = 'HB_newPage_snippets';
@@ -64,28 +49,11 @@ const HomePage =(props)=>{
window.location = `/edit/${saved.editId}`;
};
- const renderNavbar = ()=>{
- return
-
- {error
- ?
- : renderSaveButton()}
-
-
-
-
-
-
-
- ;
- };
-
const {
- clearError,
- renderSaveButton,
renderPanels
} = useCommonEditPageFunctions({
saveGoogle,
+ error,
setError,
currentBrew,
setCurrentBrew,
@@ -99,7 +67,6 @@ const HomePage =(props)=>{
showFloatingButtons,
lastSavedBrew,
save,
- renderNavbar,
pageName,
showEditorButtons,
userThemes: {}
diff --git a/client/homebrew/pages/newPage/newPage.jsx b/client/homebrew/pages/newPage/newPage.jsx
index ca65c17bb..951b0a4e0 100644
--- a/client/homebrew/pages/newPage/newPage.jsx
+++ b/client/homebrew/pages/newPage/newPage.jsx
@@ -1,4 +1,3 @@
-
import './newPage.less';
// Common imports
@@ -8,21 +7,9 @@ import { hbfm } from 'marked-hbfm';
import _ from 'lodash';
import { DEFAULT_BREW } from '../../../../server/brewDefaults.js';
-import { printCurrentBrew, fetchThemeBundle, splitTextStyleAndMetadata } from '@shared/helpers.js';
import useCommonEditPageFunctions from '../../utils/commonEditPageFunctions.jsx';
-import Nav from '@navbar/nav.jsx';
-import Navbar from '@navbar/navbar.jsx';
-import NewBrewItem from '@navbar/newbrew.navitem.jsx';
-import AccountNavItem from '@navbar/account.navitem.jsx';
-import ErrorNavItem from '@navbar/error-navitem.jsx';
-import HelpNavItem from '@navbar/help.navitem.jsx';
-import VaultNavItem from '@navbar/vault.navitem.jsx';
-import PrintNavItem from '@navbar/print.navitem.jsx';
-import RecentNavItems from '@navbar/recent.navitem.jsx';
-const { both: RecentNavItem } = RecentNavItems;
-
// Page specific imports
const BREWKEY = 'HB_newPage_content';
const STYLEKEY = 'HB_newPage_style';
@@ -109,32 +96,11 @@ const NewPage = (props)=>{
window.location = `/edit/${savedBrew.editId}`;
};
- const renderNavbar = ()=>(
-
-
- {currentBrew.title}
-
-
-
- {error
- ?
- : renderSaveButton()}
-
-
-
-
-
-
-
-
- );
-
const {
- clearError,
- renderSaveButton,
renderPanels
} = useCommonEditPageFunctions({
saveGoogle,
+ error,
setError,
currentBrew,
setCurrentBrew,
@@ -148,7 +114,6 @@ const NewPage = (props)=>{
showFloatingButtons,
lastSavedBrew,
save,
- renderNavbar,
pageName,
showEditorButtons,
userThemes: props.userThemes
diff --git a/client/homebrew/utils/commonEditPageFunctions.jsx b/client/homebrew/utils/commonEditPageFunctions.jsx
index ac7d804bc..f92bf9b4d 100644
--- a/client/homebrew/utils/commonEditPageFunctions.jsx
+++ b/client/homebrew/utils/commonEditPageFunctions.jsx
@@ -1,7 +1,6 @@
import React, { useState, useEffect, useEffectEvent, useRef } from 'react';
import { printCurrentBrew, fetchThemeBundle } from '@shared/helpers.js';
import _ from 'lodash';
-import Nav from '@navbar/nav.jsx';
import Headtags from '@vitreum/headtags.js';
import SplitPane from '@components/splitPane/splitPane.jsx';
@@ -10,6 +9,19 @@ import BrewRenderer from '../brewRenderer/brewRenderer.jsx';
import LockNotification from '../pages/editPage/lockNotification/lockNotification.jsx';
const Meta = Headtags.Meta;
+//===---- Navbar
+import Nav from '@navbar/nav.jsx';
+import Navbar from '@navbar/navbar.jsx';
+import NewBrewItem from '@navbar/newbrew.navitem.jsx';
+import AccountNavItem from '@navbar/account.navitem.jsx';
+import ErrorNavItem from '@navbar/error-navitem.jsx';
+import HelpNavItem from '@navbar/help.navitem.jsx';
+import VaultNavItem from '@navbar/vault.navitem.jsx';
+import PrintNavItem from '@navbar/print.navitem.jsx';
+import ShareNavItem from '@navbar/share.navitem.jsx';
+import RecentNavItems from '@navbar/recent.navitem.jsx';
+const { both: RecentNavItem } = RecentNavItems;
+
const AUTOSAVE_KEY = 'HB_editor_autoSaveOn';
const SAVE_TIMEOUT = 10000; //Autosave 10 seconds after last change
@@ -19,6 +31,7 @@ const UNSAVED_WARNING_POPUP_TIMEOUT = 4000; //Show the warning for 4 seconds
export default function useCommonEditPageFunctions(dependencies) {
const {
saveGoogle,
+ error,
setError,
currentBrew,
setCurrentBrew,
@@ -32,8 +45,8 @@ export default function useCommonEditPageFunctions(dependencies) {
showFloatingButtons,
lastSavedBrew,
save,
- renderNavbar,
pageName,
+ renderGoogleDriveIcon = ()=>{},
showEditorButtons,
userThemes = {}
} = dependencies;
@@ -78,7 +91,7 @@ export default function useCommonEditPageFunctions(dependencies) {
};
return ()=>{
document.removeEventListener('keydown', handleControlKeys);
- window.onBeforeUnload = null;
+ window.onbeforeunload = null;
};
}, []);
@@ -148,9 +161,7 @@ export default function useCommonEditPageFunctions(dependencies) {
setError(null);
setHTMLErrors(hbfm.validate(currentBrew.text));
await save(currentBrew, saveToGoogle)
- .catch((err)=>{
- setError(err);
- });
+ .catch((err)=>{setError(err);});
setIsSaving(false);
setLastSavedTime(new Date());
if(!autoSaveEnabled) resetWarnUnsavedTimer();
@@ -186,7 +197,7 @@ export default function useCommonEditPageFunctions(dependencies) {
return saved;
};
- //TODO: Candidate for removal; only used in editPage, so may not be necessary
+ //TODO: Candidate for refactor/rename; used with history tool to load previous verion; may overlap with snippet injection or handleBrewChange
const updateBrew = (newData)=>setCurrentBrew((prevBrew)=>({
...prevBrew,
style : newData.style,
@@ -194,12 +205,41 @@ export default function useCommonEditPageFunctions(dependencies) {
snippets : newData.snippets
}));
+ const renderNavbar = ()=>(
+
+
+ {currentBrew.title}
+
+
+ {renderGoogleDriveIcon()}
+ {error
+ ?
+ :
+ {renderSaveButton()}
+ {pageName == "editPage" && renderAutoSaveButton()}
+ }
+
+
+
+
+ {(pageName == "editPage") && }
+
+
+
+
+ );
+
+ const renderAutoSaveButton = ()=>(
+
+ Autosave
+
+ );
+
const renderFloatingSaveButtons = ()=>(
<>
trySave(true, true, saveGoogle)}>
Save current
-
Create your own
@@ -239,7 +279,7 @@ export default function useCommonEditPageFunctions(dependencies) {
errors={HTMLErrors}
onPageChange={setCurrentBrewRendererPageNum}
currentEditorCursorPageNum={currentEditorCursorPageNum}
- allowPrint={true} //TODO: candidate for cleanup. Homepage only place where allowPrint = false. Vote OK to allow print everywhere
+ allowPrint={true} //TODO: candidate for cleanup in brewRenderer. Homepage only place where allowPrint = false. Vote OK to allow print everywhere
/>
@@ -248,15 +288,7 @@ export default function useCommonEditPageFunctions(dependencies) {
);
return {
- handleSplitMove,
- handleBrewChange,
- toggleAutoSave,
- clearError,
trySave,
- renderSaveButton,
- renderPanels,
- autoSaveEnabled,
- unsavedChanges,
- currentBrewRendererPageNum
+ renderPanels
};
}
\ No newline at end of file