You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-12-17 21:42:17 +03:00
preserve member state event if available when lazy loading members
This commit is contained in:
@@ -262,6 +262,15 @@ RoomState.prototype.setJoinedMembers = function(joinedMembers) {
|
|||||||
const displayName = details.display_name;
|
const displayName = details.display_name;
|
||||||
const avatarUrl = details.avatar_url;
|
const avatarUrl = details.avatar_url;
|
||||||
const member = new RoomMember(this.roomId, userId);
|
const member = new RoomMember(this.roomId, userId);
|
||||||
|
// try to find the member event for the user and set it first on the member
|
||||||
|
// so inspection of the event is possible later on if we have it
|
||||||
|
const membershipEvents = this.events["m.room.member"];
|
||||||
|
const userMemberEvent = membershipEvents && membershipEvents[userId];
|
||||||
|
if (userMemberEvent) {
|
||||||
|
member.setMembershipEvent(userMemberEvent, this);
|
||||||
|
}
|
||||||
|
// override the displayName and avatarUrl from the lazily loaded members
|
||||||
|
// as this is guaranteed to be the current state
|
||||||
member.setAsJoinedMember(displayName, avatarUrl, this);
|
member.setAsJoinedMember(displayName, avatarUrl, this);
|
||||||
const isNewMember = !this.members[userId];
|
const isNewMember = !this.members[userId];
|
||||||
return {member, isNewMember};
|
return {member, isNewMember};
|
||||||
|
|||||||
Reference in New Issue
Block a user