You've already forked matrix-js-sdk
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:
@@ -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");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user