From 0f4157d084dd9f601b28da9135882470a285499a Mon Sep 17 00:00:00 2001 From: David Bolack Date: Wed, 9 Jul 2025 17:16:47 -0500 Subject: [PATCH] Add Patch wrapper/unwrapper for saves Object encapsulation for the win? --- client/homebrew/pages/editPage/editPage.jsx | 4 ++-- server/homebrew.api.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx index c1448c497..aa1c93a15 100644 --- a/client/homebrew/pages/editPage/editPage.jsx +++ b/client/homebrew/pages/editPage/editPage.jsx @@ -256,12 +256,12 @@ const EditPage = createClass({ await updateHistory(this.state.brew).catch(console.error); await versionHistoryGarbageCollection().catch(console.error); - const preSaveSnapshot = { ...this.state.brew } + const preSaveSnapshot = { ...this.state.brew }; //Prepare content to send to server const brew = { ...this.state.brew }; brew.pageCount = ((brew.renderer=='legacy' ? brew.text.match(/\\page/g) : brew.text.match(/^\\page$/gm)) || []).length + 1; - brew.patches = makePatches(this.savedBrew.text, brew.text); + brew.patches = stringifyPatches(makePatches(this.savedBrew.text, brew.text)); brew.hash = await md5(this.savedBrew.text); brew.text = undefined; brew.textBin = undefined; diff --git a/server/homebrew.api.js b/server/homebrew.api.js index d0b1c43c8..5aaf7aac2 100644 --- a/server/homebrew.api.js +++ b/server/homebrew.api.js @@ -352,11 +352,11 @@ const api = { res.setHeader('Content-Type', 'application/json'); return res.status(409).send(JSON.stringify({ message: `The server copy is out of sync with the saved brew. Please save your changes elsewhere, refresh, and try again.` })); } - + let brew = _.assign(brewFromServer, brewFromClient); brew.title = brew.title.trim(); brew.description = brew.description.trim() || ''; - brew.text = applyPatches(brewFromClient.patches, brewFromServer.text)[0]; + brew.text = applyPatches(parsePatch(brewFromClient.patches), brewFromServer.text)[0]; brew.text = api.mergeBrewText(brew); const googleId = brew.googleId;