Bläddra i källkod

Create new message for correction if the original is not available

Fixes #1172
JC Brand 6 år sedan
förälder
incheckning
c142437320
1 ändrade filer med 10 tillägg och 2 borttagningar
  1. 10 2
      src/converse-chatboxes.js

+ 10 - 2
src/converse-chatboxes.js

@@ -295,8 +295,16 @@
                     const replace = sizzle(`replace[xmlns="${Strophe.NS.MESSAGE_CORRECT}"]`, stanza).pop();
                     if (replace) {
                         const msgid = replace && replace.getAttribute('id') || stanza.getAttribute('id'),
-                            message = msgid && this.messages.findWhere({msgid}),
-                            older_versions = message.get('older_versions') || [];
+                            message = msgid && this.messages.findWhere({msgid});
+
+                        if (!message) {
+                            // XXX: Looks like we received a correction for a
+                            // non-existing message, probably due to MAM.
+                            // Not clear what can be done about this... we'll
+                            // just create it as a separate message for now.
+                            return false;
+                        }
+                        const older_versions = message.get('older_versions') || [];
                         older_versions.push(message.get('message'));
                         message.save({
                             'message': _converse.chatboxes.getMessageBody(stanza),