1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2025-12-14 19:22:15 +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 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");
}
/**