From a4e0768105952edecfb784d6da5ca561b64d0a95 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Sun, 24 Oct 2021 16:42:39 -0400 Subject: [PATCH] Move Localstorage load to GetInitialState Prevents the extra change to the CodeMirror document which was creating a starting "undo" history point that would blank out the page. --- client/homebrew/pages/newPage/newPage.jsx | 51 +++++++++++------------ 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/client/homebrew/pages/newPage/newPage.jsx b/client/homebrew/pages/newPage/newPage.jsx index c1887a83f..3f09cac4e 100644 --- a/client/homebrew/pages/newPage/newPage.jsx +++ b/client/homebrew/pages/newPage/newPage.jsx @@ -45,47 +45,44 @@ const NewPage = createClass({ }, getInitialState : function() { + const brew = this.props.brew; + + if(typeof window !== 'undefined') { //Load from localStorage if in client browser + const brewStorage = localStorage.getItem(BREWKEY); + const styleStorage = localStorage.getItem(STYLEKEY); + const metaStorage = JSON.parse(localStorage.getItem(METAKEY)); + + if(!brew.text || !brew.style){ + brew.text = brew.text || (brewStorage ?? ''); + brew.style = brew.style || (styleStorage ?? undefined); + // brew.title = metaStorage?.title || this.state.brew.title; + // brew.description = metaStorage?.description || this.state.brew.description; + brew.renderer = metaStorage?.renderer || brew.renderer; + } + } + return { brew : { - text : this.props.brew.text || '', - style : this.props.brew.style || undefined, + text : brew.text || '', + style : brew.style || undefined, gDrive : false, - title : this.props.brew.title || '', - description : this.props.brew.description || '', - tags : this.props.brew.tags || '', + title : brew.title || '', + description : brew.description || '', + tags : brew.tags || '', published : false, authors : [], - systems : this.props.brew.systems || [], - renderer : this.props.brew.renderer || 'legacy' + systems : brew.systems || [], + renderer : brew.renderer || 'legacy' }, isSaving : false, saveGoogle : (global.account && global.account.googleId ? true : false), errors : null, - htmlErrors : Markdown.validate(this.props.brew.text) + htmlErrors : Markdown.validate(brew.text) }; }, componentDidMount : function() { - const brewStorage = localStorage.getItem(BREWKEY); - const styleStorage = localStorage.getItem(STYLEKEY); - const metaStorage = JSON.parse(localStorage.getItem(METAKEY)); - - const brew = this.state.brew; - - if(!this.state.brew.text || !this.state.brew.style){ - brew.text = this.state.brew.text || (brewStorage ?? ''); - brew.style = this.state.brew.style || (styleStorage ?? undefined); - // brew.title = metaStorage?.title || this.state.brew.title; - // brew.description = metaStorage?.description || this.state.brew.description; - brew.renderer = metaStorage?.renderer || this.state.brew.renderer; - } - - this.setState((prevState)=>({ - brew : brew, - htmlErrors : Markdown.validate(prevState.brew.text) - })); - document.addEventListener('keydown', this.handleControlKeys); }, componentWillUnmount : function() {