fix: use dateResolved to prevent recursive merge conflicts

This commit is contained in:
thecodrr
2021-08-10 11:59:56 +05:00
parent 1ca53f939e
commit 14fed3e8bb
3 changed files with 10 additions and 4 deletions

View File

@@ -47,14 +47,17 @@ class Merger {
}
}
async _mergeItemWithConflicts(remoteItem, get, add, resolve) {
async _mergeItemWithConflicts(remoteItem, get, add, markAsConflicted) {
let localItem = await get(remoteItem.id);
remoteItem = await this._deserialize(remoteItem);
if (!localItem) {
await add(remoteItem);
} else if (localItem.dateEdited > this._lastSynced) {
await resolve(localItem, remoteItem);
} else if (
localItem.dateResolved !== remoteItem.dateEdited &&
localItem.dateEdited > this._lastSynced
) {
await markAsConflicted(localItem, remoteItem);
} else {
await add(remoteItem);
}