diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx index 351ad8e71..71dfdbdf2 100644 --- a/client/homebrew/pages/editPage/editPage.jsx +++ b/client/homebrew/pages/editPage/editPage.jsx @@ -103,23 +103,13 @@ const EditPage = (props)=>{ if(!res) return; const updatedFields = { - googleId : res.body.googleId ?? null, - editId : res.body.editId, + googleId : res.body.googleId ?? null, //TODO: investigate if we can set googleId:null in server/update instead of undefined + editId : res.body.editId, //then, editPage can just apply res.body instead of breaking out these fields. shareId : res.body.shareId, version : res.body.version }; - lastSavedBrew.current = { - ...brew, - ...updatedFields - }; - - setCurrentBrew((prevBrew)=>({ - ...prevBrew, - ...updatedFields - })); - - return res.body; + return updatedFields; }; const onSaveSuccess = (savedBrew)=>{ diff --git a/client/homebrew/pages/homePage/homePage.jsx b/client/homebrew/pages/homePage/homePage.jsx index b430a7ed5..20b75b486 100644 --- a/client/homebrew/pages/homePage/homePage.jsx +++ b/client/homebrew/pages/homePage/homePage.jsx @@ -22,9 +22,9 @@ const HomePage =(props)=>{ ...props }; - const [currentBrew, setCurrentBrew] = useState(props.brew); - const [saveGoogle, setSaveGoogle] = useState(global.account?.googleId ? true : false); - const [error, setError] = useState(undefined); + const [currentBrew, setCurrentBrew] = useState(props.brew); + const [saveGoogle, setSaveGoogle] = useState(global.account?.googleId ? true : false); + const [error, setError] = useState(undefined); const lastSavedBrew = useRef(_.cloneDeep(props.brew)); @@ -38,11 +38,6 @@ const HomePage =(props)=>{ }); if(!res) return; - setCurrentBrew((prevBrew)=>({ - ...prevBrew, - ...res.body - })); - return res.body; }; diff --git a/client/homebrew/pages/newPage/newPage.jsx b/client/homebrew/pages/newPage/newPage.jsx index ea389faa4..8606cc752 100644 --- a/client/homebrew/pages/newPage/newPage.jsx +++ b/client/homebrew/pages/newPage/newPage.jsx @@ -23,8 +23,8 @@ const NewPage = (props)=>{ }; const [currentBrew, setCurrentBrew] = useState(props.brew); - const [saveGoogle, setSaveGoogle] = useState(global.account?.googleId ? true : false); - const [error, setError] = useState(null); + const [saveGoogle, setSaveGoogle] = useState(global.account?.googleId ? true : false); + const [error, setError] = useState(null); const lastSavedBrew = useRef(_.cloneDeep(props.brew)); @@ -46,11 +46,6 @@ const NewPage = (props)=>{ }); if(!res) return; - setCurrentBrew((prevBrew)=>({ - ...prevBrew, - ...res.body - })); - return res.body; }; diff --git a/client/homebrew/utils/commonEditPageFunctions.jsx b/client/homebrew/utils/commonEditPageFunctions.jsx index aa55e5394..701680ecf 100644 --- a/client/homebrew/utils/commonEditPageFunctions.jsx +++ b/client/homebrew/utils/commonEditPageFunctions.jsx @@ -202,9 +202,20 @@ export default function useCommonEditPageFunctions(dependencies) { setIsSaving(true); setError(null); setHTMLErrors(hbfm.validate(currentBrew.text)); - let savedBrew = await save(currentBrew, saveToGoogle) + const brewToSave = currentBrew; + let savedBrew = await save(brewToSave, saveToGoogle) .catch((err)=>{setError(err);}); if(savedBrew) { + lastSavedBrew.current = { + ...brewToSave, + ...savedBrew + }; + + setCurrentBrew((prevBrew)=>({ + ...prevBrew, + ...savedBrew + })); + if(useLocalStorage) clearLocalStorage(); onSaveSuccess(savedBrew); }