1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2025-12-16 09:42:23 +03:00

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
This commit is contained in:
Bruno Windels
2018-07-10 17:44:31 +02:00
parent 2c5cad71ee
commit 45d86fa270

View File

@@ -263,13 +263,19 @@ RoomState.prototype.setJoinedMembers = function(joinedMembers) {
const avatarUrl = details.avatar_url; const avatarUrl = details.avatar_url;
const member = new RoomMember(this.roomId, userId); const member = new RoomMember(this.roomId, userId);
member.setAsJoinedMember(displayName, avatarUrl, this); 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); _updateDisplayNameCache(this, member.userId, member.name);
this._updateMember(member); this._updateMember(member);
if (isNewMember) {
this.emit('RoomState.newMember', {}, self, member);
}
else {
this.emit('RoomState.members', {}, self, member);
}
}); });
this.emit("Room");
} }
/** /**