Yuki Takei 1 год назад
Родитель
Сommit
59b44deaff

+ 1 - 4
packages/editor/src/client/services-internal/unified-merge-view/use-unified-merge-view.ts

@@ -17,6 +17,7 @@ export const useUnifiedMergeView = (
     codeMirrorEditor?: UseCodeMirrorEditor,
 ): void => {
 
+  // setup unifiedMergeView
   useEffect(() => {
     if (unifiedMergeViewEnabled == null || !codeMirrorEditor) {
       return;
@@ -41,10 +42,6 @@ export const useUnifiedMergeView = (
     const extension = StateField.define({
       create: () => null,
       update(value, tr) {
-        if (codeMirrorEditor.state == null) {
-          return value;
-        }
-
         for (const e of tr.effects) {
           if (e.is(CollaborativeChange)) {
             const changeSpecs = deltaToChangeSpecs(e.value);

+ 8 - 8
packages/editor/src/client/stores/use-collaborative-editor-mode.ts

@@ -119,23 +119,23 @@ export const useCollaborativeEditorMode = (
     }
 
     const ytext = ydoc.getText('codemirror');
-    const undoManager = new Y.UndoManager(ytext);
 
-    const extensions = [
-      keymap.of(yUndoManagerKeymap),
-      yCollab(ytext, provider.awareness, { undoManager }),
-    ];
-
-    // Setup observer for collaborative changes
+    // setup observer to mark collaborative changes
     ytext.observe((event) => {
       if (event.transaction.local) return;
 
-      // 外部からの変更があったことを通知
       codeMirrorEditor.view?.dispatch({
         effects: CollaborativeChange.of(event.delta),
       });
     });
 
+    const undoManager = new Y.UndoManager(ytext);
+
+    const extensions = [
+      keymap.of(yUndoManagerKeymap),
+      yCollab(ytext, provider.awareness, { undoManager }),
+    ];
+
     const cleanupFunctions = extensions.map(ext => codeMirrorEditor.appendExtensions([ext]));
 
     return () => {