Kaynağa Gözat

Fix loss of caret on image insertion in campaign from popup

Kailash Nadh 5 yıl önce
ebeveyn
işleme
2143def136
1 değiştirilmiş dosya ile 7 ekleme ve 5 silme
  1. 7 5
      frontend/src/components/Editor.vue

+ 7 - 5
frontend/src/components/Editor.vue

@@ -95,6 +95,11 @@ export default {
         radioFormat: this.contentType,
       },
 
+      // Last position of the cursor in the editor before the media popup
+      // was opened. This is used to insert media on selection from the poup
+      // where the caret may be lost.
+      lastSel: null,
+
       // Quill editor options.
       options: {
         placeholder: 'Content here',
@@ -189,15 +194,12 @@ export default {
     },
 
     toggleMedia() {
+      this.lastSel = this.$refs.quill.quill.getSelection();
       this.isMediaVisible = !this.isMediaVisible;
     },
 
     onMediaSelect(m) {
-      const sel = this.$refs.quill.quill.getSelection();
-      if (!sel) {
-        return;
-      }
-      this.$refs.quill.quill.insertEmbed(sel.index, 'image', m.url);
+      this.$refs.quill.quill.insertEmbed(this.lastSel.index || 0, 'image', m.url);
     },
   },