fix: recursive conflicts

This commit is contained in:
thecodrr
2021-12-31 09:55:12 +05:00
parent 82e61ae524
commit 304f68c345

View File

@@ -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"