From bd9c8cb7be24fdef943ca072f99e0e1d3d7841c7 Mon Sep 17 00:00:00 2001 From: Guilherme Gazzo Date: Thu, 20 Jun 2019 00:44:12 -0300 Subject: [PATCH] Regression: thread loading parent msg if is not loaded (#14839) --- app/ui-message/client/message.js | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/app/ui-message/client/message.js b/app/ui-message/client/message.js index a1207cd46e57..b0fcd419455a 100644 --- a/app/ui-message/client/message.js +++ b/app/ui-message/client/message.js @@ -429,33 +429,34 @@ Template.message.helpers({ const findParentMessage = (() => { const waiting = []; - + const uid = Tracker.nonreactive(() => Meteor.userId()); const getMessages = _.debounce(async function() { - const uid = Tracker.nonreactive(() => Meteor.userId()); const _tmp = [...waiting]; waiting.length = 0; - (await call('getMessages', _tmp)).map((msg) => upsertMessage({ msg: { ...msg, _hidden: true }, uid })); + (await call('getMessages', _tmp)).map((msg) => Messages.findOne({ _id: msg._id }) || upsertMessage({ msg: { ...msg, _hidden: true }, uid })); }, 500); + return (tmid) => { if (waiting.indexOf(tmid) > -1) { return; } - const message = Messages.findOne({ _id: tmid }); - if (message) { - const uid = Tracker.nonreactive(() => Meteor.userId()); - return Messages.update({ tmid, repliesCount: { $exists: 0 } }, { + if (!message) { + waiting.push(tmid); + return getMessages(); + } + return Messages.update( + { tmid, repliesCount: { $exists: 0 } }, + { $set: { following: message.replies && message.replies.indexOf(uid) > -1, threadMsg: normalizeThreadMessage(message), repliesCount: message.tcount, }, - }, { multi: true }); - } - - waiting.push(tmid); - getMessages(); + }, + { multi: true } + ); }; })();