Fix private chat handling code
This commit is contained in:
parent
72f7cf392e
commit
5f26b5e94d
1 changed files with 18 additions and 19 deletions
|
|
@ -697,11 +697,15 @@ export default {
|
||||||
for (const room of this.rooms) {
|
for (const room of this.rooms) {
|
||||||
// Is the other member the one we are looking for?
|
// Is the other member the one we are looking for?
|
||||||
if (this.isDirectRoomWith(room, userId)) {
|
if (this.isDirectRoomWith(room, userId)) {
|
||||||
|
if (room.getMyMembership() == "invite") {
|
||||||
|
this.matrixClient.joinRoom(room.roomId);
|
||||||
|
} else {
|
||||||
var member = room.getMember(userId);
|
var member = room.getMember(userId);
|
||||||
if (member && member.membership != "join") {
|
if (member && member.membership != "join") {
|
||||||
// Resend invite
|
// Resend invite
|
||||||
this.matrixClient.invite(room.roomId, userId);
|
this.matrixClient.invite(room.roomId, userId);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
resolve(room);
|
resolve(room);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -757,22 +761,17 @@ export default {
|
||||||
isDirectRoomWith(room, userId) {
|
isDirectRoomWith(room, userId) {
|
||||||
if (
|
if (
|
||||||
room.getJoinRule() == "invite" &&
|
room.getJoinRule() == "invite" &&
|
||||||
room.selfMembership == "join" &&
|
room.getMembers().length == 2
|
||||||
room.getInvitedAndJoinedMemberCount() == 2
|
|
||||||
) {
|
|
||||||
// Is the other member the one we are looking for?
|
|
||||||
if (
|
|
||||||
room
|
|
||||||
.getMembersWithMembership("join")
|
|
||||||
.some((item) => item.userId == userId)
|
|
||||||
) {
|
) {
|
||||||
|
let other = room.getMember(userId);
|
||||||
|
if (other) {
|
||||||
|
if (room.getMyMembership() == "invite" && other.membership == "join") {
|
||||||
return true;
|
return true;
|
||||||
} else if (
|
} else if (room.getMyMembership() == "join" && room.canInvite(this.currentUserId)) {
|
||||||
room
|
|
||||||
.getMembersWithMembership("invite")
|
|
||||||
.some((item) => item.userId == userId)
|
|
||||||
) {
|
|
||||||
return true;
|
return true;
|
||||||
|
} else if (room.getMyMembership() == "join" && other.membership == "join") {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue