diff --git a/packages/rocketchat-ui-message/client/message.js b/packages/rocketchat-ui-message/client/message.js index 3b42c51c388..220ff95b5c9 100644 --- a/packages/rocketchat-ui-message/client/message.js +++ b/packages/rocketchat-ui-message/client/message.js @@ -339,7 +339,19 @@ Template.message.onViewRendered = function(context) { return this._domrange.onAttached(function(domRange) { const currentNode = domRange.lastNode(); const currentDataset = currentNode.dataset; - const previousNode = currentNode.previousElementSibling; + const getPreviousSentMessage = (currentNode) => { + if ($(currentNode).hasClass('temp')) { + return currentNode.previousElementSibling; + } + if (currentNode.previousElementSibling != null) { + let previousValid = currentNode.previousElementSibling; + while (previousValid != null && $(previousValid).hasClass('temp')) { + previousValid = previousValid.previousElementSibling; + } + return previousValid; + } + }; + const previousNode = getPreviousSentMessage(currentNode); const nextNode = currentNode.nextElementSibling; const $currentNode = $(currentNode); const $nextNode = $(nextNode); @@ -372,7 +384,7 @@ Template.message.onViewRendered = function(context) { if (nextDataset.groupable !== 'false') { if (nextDataset.username !== currentDataset.username || parseInt(nextDataset.timestamp) - parseInt(currentDataset.timestamp) > RocketChat.settings.get('Message_GroupingPeriod') * 1000) { $nextNode.removeClass('sequential'); - } else if (!$nextNode.hasClass('new-day')) { + } else if (!$nextNode.hasClass('new-day') && !$currentNode.hasClass('temp')) { $nextNode.addClass('sequential'); } } diff --git a/packages/rocketchat-ui/client/lib/RoomManager.js b/packages/rocketchat-ui/client/lib/RoomManager.js index c5052119861..89348ba0a02 100644 --- a/packages/rocketchat-ui/client/lib/RoomManager.js +++ b/packages/rocketchat-ui/client/lib/RoomManager.js @@ -223,7 +223,7 @@ const RoomManager = new function() { }; const loadMissedMessages = function(rid) { - const lastMessage = ChatMessage.findOne({rid}, {sort: {ts: -1}, limit: 1}); + const lastMessage = ChatMessage.findOne({rid, temp: { $exists: false } }, {sort: {ts: -1}, limit: 1}); if (lastMessage == null) { return; }