mirror of
https://github.com/streetwriters/notesnook.git
synced 2025-12-23 15:09:33 +01:00
fix: recursive conflicts
This commit is contained in:
@@ -52,23 +52,24 @@ function DiffViewer(props) {
|
|||||||
const [htmlDiff, setHtmlDiff] = useState({});
|
const [htmlDiff, setHtmlDiff] = useState({});
|
||||||
|
|
||||||
const resolveConflict = useCallback(
|
const resolveConflict = useCallback(
|
||||||
async ({ toKeep, toCopy, toKeepDateEdited, dateResolved }) => {
|
async ({ toKeep, toCopy, toKeepDateModified, dateResolved }) => {
|
||||||
if (!conflictedNote) return;
|
if (!conflictedNote) return;
|
||||||
|
|
||||||
const toKeepContent = {
|
|
||||||
data: toKeep,
|
|
||||||
type: "tiny",
|
|
||||||
dateEdited: toKeepDateEdited,
|
|
||||||
dateResolved,
|
|
||||||
persistDateEdited: true,
|
|
||||||
};
|
|
||||||
|
|
||||||
await db.notes.add({
|
await db.notes.add({
|
||||||
id: conflictedNote.id,
|
id: conflictedNote.id,
|
||||||
content: toKeepContent,
|
|
||||||
conflicted: false,
|
conflicted: false,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
await db.content.add({
|
||||||
|
id: conflictedNote.contentId,
|
||||||
|
data: toKeep,
|
||||||
|
type: "tiny",
|
||||||
|
dateModified: toKeepDateModified,
|
||||||
|
dateResolved,
|
||||||
|
conflicted: false,
|
||||||
|
sessionId: Date.now(),
|
||||||
|
});
|
||||||
|
|
||||||
if (toCopy) {
|
if (toCopy) {
|
||||||
const toCopyContent = {
|
const toCopyContent = {
|
||||||
data: toCopy,
|
data: toCopy,
|
||||||
@@ -115,7 +116,7 @@ function DiffViewer(props) {
|
|||||||
if (!content.conflicted)
|
if (!content.conflicted)
|
||||||
return resolveConflict({
|
return resolveConflict({
|
||||||
toKeep: content.data,
|
toKeep: content.data,
|
||||||
dateEdited: content.dateEdited,
|
toKeepDateModified: content.dateModified,
|
||||||
});
|
});
|
||||||
|
|
||||||
content.conflicted = await db.content.insertPlaceholders(
|
content.conflicted = await db.content.insertPlaceholders(
|
||||||
@@ -279,8 +280,8 @@ function DiffViewer(props) {
|
|||||||
resolveConflict({
|
resolveConflict({
|
||||||
toKeep: remoteContent.data,
|
toKeep: remoteContent.data,
|
||||||
toCopy: saveCopy ? localContent.data : null,
|
toCopy: saveCopy ? localContent.data : null,
|
||||||
toKeepDateEdited: localContent.dateEdited,
|
toKeepDateModified: localContent.dateModified,
|
||||||
dateResolved: remoteContent.dateEdited,
|
dateResolved: remoteContent.dateModified,
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
sx={{
|
sx={{
|
||||||
@@ -321,8 +322,8 @@ function DiffViewer(props) {
|
|||||||
resolveConflict({
|
resolveConflict({
|
||||||
toKeep: localContent.data,
|
toKeep: localContent.data,
|
||||||
toCopy: saveCopy ? remoteContent.data : null,
|
toCopy: saveCopy ? remoteContent.data : null,
|
||||||
toKeepDateEdited: remoteContent.dateEdited,
|
toKeepDateModified: remoteContent.dateModified,
|
||||||
dateResolved: remoteContent.dateEdited,
|
dateResolved: remoteContent.dateModified,
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
label="Incoming note"
|
label="Incoming note"
|
||||||
|
|||||||
Reference in New Issue
Block a user