From 45d86fa27046aaa798bde1207b4b0533116f39ad Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Tue, 10 Jul 2018 17:44:31 +0200 Subject: [PATCH] emit individual events for lazily loaded members emit individual RoomState.members/newMember events for each lazily loaded member as batch events are not a thing. This makes updating the memberlist work --- src/models/room-state.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/models/room-state.js b/src/models/room-state.js index d557f4e03..97e03fde7 100644 --- a/src/models/room-state.js +++ b/src/models/room-state.js @@ -263,13 +263,19 @@ RoomState.prototype.setJoinedMembers = function(joinedMembers) { const avatarUrl = details.avatar_url; const member = new RoomMember(this.roomId, userId); member.setAsJoinedMember(displayName, avatarUrl, this); - return member; + const isNewMember = !this.members[userId]; + return {member, isNewMember}; }); - joinedRoomMembers.forEach(member => { + joinedRoomMembers.forEach(({member, isNewMember}) => { _updateDisplayNameCache(this, member.userId, member.name); this._updateMember(member); + if (isNewMember) { + this.emit('RoomState.newMember', {}, self, member); + } + else { + this.emit('RoomState.members', {}, self, member); + } }); - this.emit("Room"); } /**