From 4a150a51253e11bc2878793e458a7fe94fb90a00 Mon Sep 17 00:00:00 2001 From: Ulion Date: Fri, 22 Jan 2021 09:52:16 +0800 Subject: [PATCH 1/3] Call onChange after normalization --- packages/client/src/automerge-editor.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/client/src/automerge-editor.ts b/packages/client/src/automerge-editor.ts index 541eb81..ed3b84d 100644 --- a/packages/client/src/automerge-editor.ts +++ b/packages/client/src/automerge-editor.ts @@ -100,9 +100,10 @@ export const AutomergeEditor = { Editor.withoutNormalizing(e, () => { e.children = toJS(mergedDoc).children - - e.onChange() }) + + // onChange expect valid doc, we make sure do normalization before that. + e.onChange() }, /** From 9ff2ecf29a6b4409c5102bcb7159ac6173fb58d8 Mon Sep 17 00:00:00 2001 From: Ulion Date: Fri, 22 Jan 2021 11:34:42 +0800 Subject: [PATCH 2/3] Normalize doc after load. --- packages/client/src/automerge-editor.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/client/src/automerge-editor.ts b/packages/client/src/automerge-editor.ts index ed3b84d..688173d 100644 --- a/packages/client/src/automerge-editor.ts +++ b/packages/client/src/automerge-editor.ts @@ -103,6 +103,7 @@ export const AutomergeEditor = { }) // onChange expect valid doc, we make sure do normalization before that. + Editor.normalize(e, { force: true }) e.onChange() }, From 3d0cf7597a1f72bac152d214b6ff1904d077bc4f Mon Sep 17 00:00:00 2001 From: Ulion Date: Fri, 29 Jan 2021 08:02:16 +0800 Subject: [PATCH 3/3] Also call onCursor when document loaded. --- packages/client/src/automerge-editor.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/client/src/automerge-editor.ts b/packages/client/src/automerge-editor.ts index 688173d..de9dce3 100644 --- a/packages/client/src/automerge-editor.ts +++ b/packages/client/src/automerge-editor.ts @@ -99,7 +99,9 @@ export const AutomergeEditor = { e.docSet.setDoc(docId, mergedDoc) Editor.withoutNormalizing(e, () => { - e.children = toJS(mergedDoc).children + const doc = toJS(mergedDoc) + e.children = doc.children + e.onCursor && e.onCursor(doc.cursors) }) // onChange expect valid doc, we make sure do normalization before that.