瀏覽代碼

Fix incorrectly detecting every message with a duplicate ID as correction

laszlovl 5 年之前
父節點
當前提交
ab9b2d64ab
共有 2 個文件被更改,包括 8 次插入2 次删除
  1. 5 0
      CHANGES.md
  2. 3 2
      src/headless/converse-chatboxes.js

+ 5 - 0
CHANGES.md

@@ -1,5 +1,10 @@
 # Changelog
 
+## 5.0.4
+
+- Bugfix: Don't treat every duplicate message ID as a message correction; since some
+  clients don't use globally unique ID's this causes false positives.
+
 ## 5.0.3 (2019-09-13)
 
 - Emit `chatBoxFocused` and `chatBoxBlurred` events for emoji picker input

+ 3 - 2
src/headless/converse-chatboxes.js

@@ -549,10 +549,10 @@ converse.plugins.add('converse-chatboxes', {
              *     {@link _converse.ChatBox.getMessageAttributesFromStanza}
              */
             correctMessage (attrs) {
-                if (!attrs.msgid || !attrs.from) {
+                if (!attrs.replaced_id || !attrs.from) {
                     return;
                 }
-                const message = this.messages.findWhere({'msgid': attrs.msgid, 'from': attrs.from});
+                const message = this.messages.findWhere({'msgid': attrs.replaced_id, 'from': attrs.from});
                 if (!message) {
                     return;
                 }
@@ -969,6 +969,7 @@ converse.plugins.add('converse-chatboxes', {
                     'is_spoiler': !!spoiler,
                     'message': text,
                     'msgid': msgid,
+                    'replaced_id': replaced_id,
                     'references': this.getReferencesFromStanza(stanza),
                     'subject': _.propertyOf(stanza.querySelector('subject'))('textContent'),
                     'thread': _.propertyOf(stanza.querySelector('thread'))('textContent'),