diff --git a/app/ui-message/client/popup/messagePopupConfig.js b/app/ui-message/client/popup/messagePopupConfig.js index d839a7ad0ce2..95eb8d8d5611 100644 --- a/app/ui-message/client/popup/messagePopupConfig.js +++ b/app/ui-message/client/popup/messagePopupConfig.js @@ -12,15 +12,13 @@ import { call } from '../../../ui-utils'; import { t, getUserPreference, slashCommands } from '../../../utils'; import _ from 'underscore'; -const usersFromRoomMessages = new Mongo.Collection(null); - -const reloadUsersFromRoomMessages = (rid) => { +const reloadUsersFromRoomMessages = (rid, template) => { const user = Meteor.userId() && Meteor.users.findOne(Meteor.userId(), { fields: { username: 1 } }); if (!rid || !user) { return; } - usersFromRoomMessages.remove({}); + template.usersFromRoomMessages.remove({}); const uniqueMessageUsersControl = {}; @@ -44,7 +42,7 @@ const reloadUsersFromRoomMessages = (rid) => { uniqueMessageUsersControl[username] = true; return notMapped; }) - .forEach(({ u: { username, name }, ts }) => usersFromRoomMessages.upsert(username, { + .forEach(({ u: { username, name }, ts }) => template.usersFromRoomMessages.upsert(username, { _id: username, username, name, @@ -167,17 +165,20 @@ const addEmojiToRecents = (emoji) => { }; Template.messagePopupConfig.onCreated(function() { + this.usersFromRoomMessages = new Mongo.Collection(null); + this.autorun(() => { const { rid } = this.data; - reloadUsersFromRoomMessages(rid); + reloadUsersFromRoomMessages(rid, this); }); }); Template.messagePopupConfig.helpers({ popupUserConfig() { + const template = Template.instance(); return { title: t('People'), - collection: usersFromRoomMessages, + collection: template.usersFromRoomMessages, template: 'messagePopupUser', rid: this.rid, getInput: this.getInput, @@ -189,7 +190,7 @@ Template.messagePopupConfig.helpers({ const filterText = filter.trim(); const filterRegex = filterText !== '' && new RegExp(`${ RegExp.escape(filterText) }`, 'i'); - const items = usersFromRoomMessages + const items = template.usersFromRoomMessages .find( { ts: { $exists: true },