From 9b9dabb55bbdac69db49cb2bbd98a063d4342c03 Mon Sep 17 00:00:00 2001 From: Guilherme Gazzo Date: Mon, 6 May 2019 14:20:38 -0300 Subject: [PATCH] Fix: Message body was not being updated when user disabled nrr message (#14390) --- app/ui-message/client/message.js | 59 ++++++++++++++++---------------- 1 file changed, 29 insertions(+), 30 deletions(-) diff --git a/app/ui-message/client/message.js b/app/ui-message/client/message.js index 25d22dc05f6..05044e2fa3b 100644 --- a/app/ui-message/client/message.js +++ b/app/ui-message/client/message.js @@ -70,7 +70,35 @@ async function renderPdfToCanvas(canvasId, pdfLink) { canvas.style.display = 'block'; } +const renderBody = (msg, settings) => { + const isSystemMessage = MessageTypes.isSystemMessage(msg); + const messageType = MessageTypes.getType(msg) || {}; + + if (messageType.render) { + msg = messageType.render(msg); + } else if (messageType.template) { + // render template + } else if (messageType.message) { + msg = TAPi18n.__(messageType.message, { ... typeof messageType.data === 'function' && messageType.data(msg) }); + } else if (msg.u && msg.u.username === settings.Chatops_Username) { + msg.html = msg.msg; + msg = callbacks.run('renderMentions', msg); + msg = msg.html; + } else { + msg = renderMessageBody(msg); + } + + if (isSystemMessage) { + msg.html = Markdown.parse(msg.html); + } + return msg; +}; + Template.message.helpers({ + body() { + const { msg, settings } = this; + return Tracker.nonreactive(() => renderBody(msg, settings)); + }, and(a, b) { return a && b; }, @@ -200,9 +228,6 @@ Template.message.helpers({ return 'temp'; } }, - body() { - return Template.instance().body; - }, threadMessage() { const { msg } = this; return normalizeThreadMessage(msg); @@ -454,39 +479,13 @@ const findParentMessage = (() => { }; })(); - -const renderBody = (msg, settings) => { - const isSystemMessage = MessageTypes.isSystemMessage(msg); - const messageType = MessageTypes.getType(msg) || {}; - - if (messageType.render) { - msg = messageType.render(msg); - } else if (messageType.template) { - // render template - } else if (messageType.message) { - msg = TAPi18n.__(messageType.message, { ... typeof messageType.data === 'function' && messageType.data(msg) }); - } else if (msg.u && msg.u.username === settings.Chatops_Username) { - msg.html = msg.msg; - msg = callbacks.run('renderMentions', msg); - msg = msg.html; - } else { - msg = renderMessageBody(msg); - } - - if (isSystemMessage) { - msg.html = Markdown.parse(msg.html); - } - return msg; -}; - Template.message.onCreated(function() { - const { msg, settings, shouldCollapseReplies } = Template.currentData(); + const { msg, shouldCollapseReplies } = Template.currentData(); this.wasEdited = msg.editedAt && !MessageTypes.isSystemMessage(msg); if (shouldCollapseReplies && msg.tmid && !msg.threadMsg) { findParentMessage(msg.tmid); } - return this.body = Tracker.nonreactive(() => renderBody(msg, settings)); }); const hasTempClass = (node) => node.classList.contains('temp');