diff --git a/packages/rocketchat-lib/client/MessageAction.js b/packages/rocketchat-lib/client/MessageAction.js index e07096f50475..f08464759a42 100644 --- a/packages/rocketchat-lib/client/MessageAction.js +++ b/packages/rocketchat-lib/client/MessageAction.js @@ -117,8 +117,10 @@ RocketChat.MessageAction = new class { if (!roomData) { throw new Error('room-not-found'); } - const routePath = RocketChat.roomTypes.getRouteLink(roomData.t, roomData); - return `${ Meteor.absoluteUrl().replace(/\/$/, '') + routePath }?msg=${ msgId }`; + + const subData = RocketChat.models.Subscriptions.findOne({rid: roomData._id, 'u._id': Meteor.userId()}); + const routePath = RocketChat.roomTypes.getRouteLink(roomData.t, subData || roomData); + return `${ Meteor.absoluteUrl(routePath.replace(/^\//, '')) }?msg=${ msgId }`; } }; diff --git a/packages/rocketchat-ui/client/lib/RoomHistoryManager.js b/packages/rocketchat-ui/client/lib/RoomHistoryManager.js index 13388570c646..b779f424ec9a 100644 --- a/packages/rocketchat-ui/client/lib/RoomHistoryManager.js +++ b/packages/rocketchat-ui/client/lib/RoomHistoryManager.js @@ -161,6 +161,9 @@ export const RoomHistoryManager = new class { if (ChatMessage.findOne(message._id)) { const wrapper = $('.messages-box .wrapper'); const msgElement = $(`#${ message._id }`, wrapper); + if (msgElement.length === 0) { + return; + } const pos = (wrapper.scrollTop() + msgElement.offset().top) - (wrapper.height()/2); wrapper.animate({ scrollTop: pos @@ -190,7 +193,10 @@ export const RoomHistoryManager = new class { } return Meteor.call('loadSurroundingMessages', message, limit, function(err, result) { - for (const msg of Array.from((result != null ? result.messages : undefined) || [])) { + if (!result || result.messages) { + return; + } + for (const msg of Array.from(result.messages)) { if (msg.t !== 'command') { upsertMessage({msg, subscription}); }