Просмотр исходного кода

Merge pull request #3510 from overleaf/jpa-fix-cm-listener-signature

[frontend] EditorWatchdogManager: fix signature of CM 'change' handler

GitOrigin-RevId: 9803876db052533de156087d38eb2a9486eb341f
Jakob Ackermann 5 лет назад
Родитель
Сommit
ae511474f2
1 измененных файлов с 15 добавлено и 3 удалено
  1. 15 3
      services/web/frontend/js/ide/connection/EditorWatchdogManager.js

+ 15 - 3
services/web/frontend/js/ide/connection/EditorWatchdogManager.js

@@ -177,9 +177,21 @@ export default class EditorWatchdogManager {
   }
 
   attachToEditor(editorName, editor) {
-    const onChange = change => {
-      // Ignore remote changes.
-      if (change.origin !== 'remote') this.onEdit()
+    let onChange
+    if (editorName === 'CM') {
+      // CM is passing the CM instance as first parameter, then the change.
+      onChange = (editor, change) => {
+        // Ignore remote changes.
+        if (change.origin === 'remote') return
+        this.onEdit()
+      }
+    } else {
+      // ACE is passing the change object as first parameter.
+      onChange = change => {
+        // Ignore remote changes.
+        if (change.origin === 'remote') return
+        this.onEdit()
+      }
     }
     this._log('attach to editor', editorName)
     editor.on('change', onChange)