You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-08-06 12:02:40 +03:00
Merge pull request #719 from matrix-org/bwindels/fixavatars-parttrois
Fixes for room.guessDMUserId
This commit is contained in:
@@ -1411,4 +1411,27 @@ describe("Room", function() {
|
||||
expect(room.getMyMembership()).toEqual("join");
|
||||
});
|
||||
});
|
||||
|
||||
describe("guessDMUserId", function() {
|
||||
it("should return first hero id",
|
||||
function() {
|
||||
const room = new Room(roomId, null, userA);
|
||||
room.setSummary({'m.heroes': [userB]});
|
||||
expect(room.guessDMUserId()).toEqual(userB);
|
||||
});
|
||||
it("should return first member that isn't self",
|
||||
function() {
|
||||
const room = new Room(roomId, null, userA);
|
||||
room.addLiveEvents([utils.mkMembership({
|
||||
user: userB, mship: "join",
|
||||
room: roomId, event: true,
|
||||
})]);
|
||||
expect(room.guessDMUserId()).toEqual(userB);
|
||||
});
|
||||
it("should return self if only member present",
|
||||
function() {
|
||||
const room = new Room(roomId, null, userA);
|
||||
expect(room.guessDMUserId()).toEqual(userA);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@@ -299,27 +299,17 @@ Room.prototype.guessDMUserId = function() {
|
||||
return inviterId;
|
||||
}
|
||||
}
|
||||
const fallbackMember = this.getAvatarFallbackMember();
|
||||
if (fallbackMember) {
|
||||
return fallbackMember.userId;
|
||||
}
|
||||
// now we're getting into sketchy territory,
|
||||
// but we're assuming this room is marked as a DM
|
||||
// so we're going to make a wild-ish guess with whom
|
||||
if (this._summaryHeroes.length) {
|
||||
// remember, we're assuming this room is a DM,
|
||||
// so returning the first member we find should be fine
|
||||
const hasHeroes = Array.isArray(this._summaryHeroes) &&
|
||||
this._summaryHeroes.length;
|
||||
if (hasHeroes) {
|
||||
return this._summaryHeroes[0];
|
||||
}
|
||||
const members = this.currentState.getMembers();
|
||||
const anyMember = members.filter((m) => m.userId !== this.myUserId);
|
||||
const anyMember = members.find((m) => m.userId !== this.myUserId);
|
||||
if (anyMember) {
|
||||
return anyMember;
|
||||
}
|
||||
const createEvent = this.currentState.getStateEvents("m.room.create", "");
|
||||
if (createEvent) {
|
||||
const sender = createEvent.getSender();
|
||||
if (sender !== this.myUserId) {
|
||||
return sender;
|
||||
}
|
||||
return anyMember.userId;
|
||||
}
|
||||
// it really seems like I'm the only user in the room
|
||||
// so I probably created a room with just me in it
|
||||
|
Reference in New Issue
Block a user