diff --git a/shared/naturalcrit/codeEditor/autocompleteEmoji.js b/client/components/codeEditor/autocompleteEmoji.js similarity index 100% rename from shared/naturalcrit/codeEditor/autocompleteEmoji.js rename to client/components/codeEditor/autocompleteEmoji.js diff --git a/shared/naturalcrit/codeEditor/close-tag.js b/client/components/codeEditor/close-tag.js similarity index 100% rename from shared/naturalcrit/codeEditor/close-tag.js rename to client/components/codeEditor/close-tag.js diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/client/components/codeEditor/codeEditor.jsx similarity index 100% rename from shared/naturalcrit/codeEditor/codeEditor.jsx rename to client/components/codeEditor/codeEditor.jsx diff --git a/shared/naturalcrit/codeEditor/codeEditor.less b/client/components/codeEditor/codeEditor.less similarity index 100% rename from shared/naturalcrit/codeEditor/codeEditor.less rename to client/components/codeEditor/codeEditor.less diff --git a/shared/naturalcrit/codeEditor/fold-css.js b/client/components/codeEditor/fold-css.js similarity index 100% rename from shared/naturalcrit/codeEditor/fold-css.js rename to client/components/codeEditor/fold-css.js diff --git a/shared/naturalcrit/codeEditor/fold-pages.js b/client/components/codeEditor/fold-pages.js similarity index 100% rename from shared/naturalcrit/codeEditor/fold-pages.js rename to client/components/codeEditor/fold-pages.js diff --git a/client/homebrew/editor/editor.jsx b/client/homebrew/editor/editor.jsx index 2f38d41aa..a00c47403 100644 --- a/client/homebrew/editor/editor.jsx +++ b/client/homebrew/editor/editor.jsx @@ -6,7 +6,7 @@ const _ = require('lodash'); const dedent = require('dedent-tabs').default; import Markdown from '../../../shared/markdown.js'; -const CodeEditor = require('naturalcrit/codeEditor/codeEditor.jsx'); +const CodeEditor = require('client/components/codeEditor/codeEditor.jsx'); const SnippetBar = require('./snippetbar/snippetbar.jsx'); const MetadataEditor = require('./metadataEditor/metadataEditor.jsx'); diff --git a/client/homebrew/pages/newPage/newPage.jsx b/client/homebrew/pages/newPage/newPage.jsx index 3ecfe073c..83eaeda45 100644 --- a/client/homebrew/pages/newPage/newPage.jsx +++ b/client/homebrew/pages/newPage/newPage.jsx @@ -56,6 +56,10 @@ const NewPage = (props)=>{ const editorRef = useRef(null); const lastSavedBrew = useRef(_.cloneDeep(props.brew)); + // const saveTimeout = useRef(null); + // const warnUnsavedTimeout = useRef(null); + const trySaveRef = useRef(trySave); // CTRL+S listener lives outside React and needs ref to use trySave with latest copy of brew + const unsavedChangesRef = useRef(unsavedChanges); // Similarly, onBeforeUnload lives outside React and needs ref to unsavedChanges useEffect(()=>{ loadBrew(); @@ -114,6 +118,11 @@ const NewPage = (props)=>{ if(autoSaveEnabled) trySave(false, hasChange); }, [currentBrew]); + useEffect(()=>{ + trySaveRef.current = trySave; + unsavedChangesRef.current = unsavedChanges; + }); + const handleSplitMove = ()=>{ editorRef.current.update(); }; @@ -141,7 +150,7 @@ const NewPage = (props)=>{ } }; - const save = async ()=>{ + const trySave = async ()=>{ setIsSaving(true); const updatedBrew = { ...currentBrew }; @@ -190,7 +199,7 @@ const NewPage = (props)=>{ // #3 - Unsaved changes exist, click to save, show SAVE NOW if(unsavedChanges) - return save now; + return save now; // #4 - No unsaved changes, autosave is ON, show AUTO-SAVED if(autoSaveEnabled)