[FIX] Fix wrong grouping on messages when server is slow (#10472)

[FIX] Messages was grouping wrong some times when server is slow
pull/10496/head
Gabriel Delavald 8 years ago committed by Rodrigo Nascimento
parent 2de153031a
commit cb34777455
  1. 16
      packages/rocketchat-ui-message/client/message.js
  2. 2
      packages/rocketchat-ui/client/lib/RoomManager.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');
}
}

@ -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;
}

Loading…
Cancel
Save