2
0
Эх сурвалжийг харах

Create new message for correction if the original is not available

Fixes #1172
JC Brand 6 жил өмнө
parent
commit
c142437320

+ 10 - 2
src/converse-chatboxes.js

@@ -295,8 +295,16 @@
                     const replace = sizzle(`replace[xmlns="${Strophe.NS.MESSAGE_CORRECT}"]`, stanza).pop();
                     const replace = sizzle(`replace[xmlns="${Strophe.NS.MESSAGE_CORRECT}"]`, stanza).pop();
                     if (replace) {
                     if (replace) {
                         const msgid = replace && replace.getAttribute('id') || stanza.getAttribute('id'),
                         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'));
                         older_versions.push(message.get('message'));
                         message.save({
                         message.save({
                             'message': _converse.chatboxes.getMessageBody(stanza),
                             'message': _converse.chatboxes.getMessageBody(stanza),