From 12d89114a4ca4d2eac33d6a3ce49d446ccf68abd Mon Sep 17 00:00:00 2001 From: Abdullah Atta Date: Mon, 4 Sep 2023 13:09:57 +0500 Subject: [PATCH] core: fix tags & colors not resolving on sync --- packages/core/src/api/sync/merger.js | 9 +++++++-- packages/core/src/collections/notes.js | 15 ++++----------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/packages/core/src/api/sync/merger.js b/packages/core/src/api/sync/merger.js index 52a2c31e4..a6d4cb1ff 100644 --- a/packages/core/src/api/sync/merger.js +++ b/packages/core/src/api/sync/merger.js @@ -31,7 +31,6 @@ class Merger { this.logger = logger.scope("Merger"); this.syncCollectionMap = { - note: "notes", shortcut: "shortcuts", reminder: "reminders", relation: "relations", @@ -76,7 +75,6 @@ class Merger { mergeItemSync(remoteItem, type, lastSynced) { switch (type) { - case "note": case "shortcut": case "reminder": case "relation": { @@ -144,6 +142,13 @@ class Merger { async mergeItem(remoteItem, type, lastSynced) { switch (type) { + case "note": { + const localItem = this._db.notes._collection.getItem(remoteItem.id); + if (!localItem || remoteItem.dateModified > localItem.dateModified) { + return await this._db.notes.merge(localItem, remoteItem); + } + break; + } case "settings": { const localItem = this._db.settings.raw; if ( diff --git a/packages/core/src/collections/notes.js b/packages/core/src/collections/notes.js index 189489e59..06569b775 100644 --- a/packages/core/src/collections/notes.js +++ b/packages/core/src/collections/notes.js @@ -44,12 +44,12 @@ export default class Notes extends Collection { return this.raw.find((item) => item.dateDeleted > 0 && item.id === id); } - async merge(remoteNote) { - if (!remoteNote) return; - + async merge(localNote, remoteNote) { const id = remoteNote.id; - const localNote = this._collection.getItem(id); + if (localNote) { + if (localNote.localOnly) return; + if (localNote.color) await this._db.colors.untag(localNote.color, id); for (let tag of localNote.tags || []) { @@ -57,13 +57,6 @@ export default class Notes extends Collection { } } - if ( - remoteNote.deleted && - remoteNote.deleteReason !== "localOnly" && - (!localNote || !localNote.localOnly) - ) - return remoteNote; - await this._resolveColorAndTags(remoteNote); return remoteNote;