Parcourir la source

Chat: Move two methdos from component to the model

JC Brand il y a 4 ans
Parent
commit
c7c077074f
2 fichiers modifiés avec 44 ajouts et 48 suppressions
  1. 42 0
      src/headless/plugins/chat/model.js
  2. 2 48
      src/plugins/chatview/bottom-panel.js

+ 42 - 0
src/headless/plugins/chat/model.js

@@ -309,6 +309,48 @@ const ChatBox = ModelWithContact.extend({
         }
     },
 
+    editEarlierMessage () {
+        let message;
+        let idx = this.messages.findLastIndex('correcting');
+        if (idx >= 0) {
+            this.messages.at(idx).save('correcting', false);
+            while (idx > 0) {
+                idx -= 1;
+                const candidate = this.messages.at(idx);
+                if (candidate.get('editable')) {
+                    message = candidate;
+                    break;
+                }
+            }
+        }
+        message =
+            message ||
+            this.messages.filter({ 'sender': 'me' })
+                .reverse()
+                .find(m => m.get('editable'));
+        if (message) {
+            message.save('correcting', true);
+        }
+    },
+
+    editLaterMessage () {
+        let message;
+        let idx = this.messages.findLastIndex('correcting');
+        if (idx >= 0) {
+            this.messages.at(idx).save('correcting', false);
+            while (idx < this.messages.length - 1) {
+                idx += 1;
+                const candidate = this.messages.at(idx);
+                if (candidate.get('editable')) {
+                    message = candidate;
+                    message.save('correcting', true);
+                    break;
+                }
+            }
+        }
+        return message;
+    },
+
     getOldestMessage () {
         for (let i=0; i<this.messages.length; i++) {
             const message = this.messages.at(i);

+ 2 - 48
src/plugins/chatview/bottom-panel.js

@@ -258,52 +258,6 @@ export default class ChatBottomPanel extends ElementView {
         this.insertIntoTextArea('', true, false);
     }
 
-    editEarlierMessage () {
-        let message;
-        let idx = this.model.messages.findLastIndex('correcting');
-        if (idx >= 0) {
-            this.model.messages.at(idx).save('correcting', false);
-            while (idx > 0) {
-                idx -= 1;
-                const candidate = this.model.messages.at(idx);
-                if (candidate.get('editable')) {
-                    message = candidate;
-                    break;
-                }
-            }
-        }
-        message =
-            message ||
-            this.model.messages.filter({ 'sender': 'me' })
-                .reverse()
-                .find(m => m.get('editable'));
-        if (message) {
-            message.save('correcting', true);
-        }
-    }
-
-    editLaterMessage () {
-        let message;
-        let idx = this.model.messages.findLastIndex('correcting');
-        if (idx >= 0) {
-            this.model.messages.at(idx).save('correcting', false);
-            while (idx < this.model.messages.length - 1) {
-                idx += 1;
-                const candidate = this.model.messages.at(idx);
-                if (candidate.get('editable')) {
-                    message = candidate;
-                    break;
-                }
-            }
-        }
-        if (message) {
-            this.insertIntoTextArea(u.prefixMentions(message), true, true);
-            message.save('correcting', true);
-        } else {
-            this.insertIntoTextArea('', true, false);
-        }
-    }
-
     autocompleteInPicker (input, value) {
         const emoji_dropdown = this.querySelector('converse-emoji-dropdown');
         const emoji_picker = this.querySelector('converse-emoji-picker');
@@ -340,14 +294,14 @@ export default class ChatBottomPanel extends ElementView {
             } else if (ev.keyCode === converse.keycodes.UP_ARROW && !ev.target.selectionEnd) {
                 const textarea = this.querySelector('.chat-textarea');
                 if (!textarea.value || u.hasClass('correcting', textarea)) {
-                    return this.editEarlierMessage();
+                    return this.model.editEarlierMessage();
                 }
             } else if (
                 ev.keyCode === converse.keycodes.DOWN_ARROW &&
                 ev.target.selectionEnd === ev.target.value.length &&
                 u.hasClass('correcting', this.querySelector('.chat-textarea'))
             ) {
-                return this.editLaterMessage();
+                return this.model.editLaterMessage();
             }
         }
         if (