Merge branch '306-multiple-private-chat-rooms-with-the-same-guest-are-created-whenever-we-start-the-private-chat' into 'dev'

Fix private chat handling code

See merge request keanuapp/keanuapp-weblite!82
This commit is contained in:
N Pex 2022-04-27 14:24:39 +00:00
commit 2a064f4a06

View file

@ -697,10 +697,14 @@ 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)) {
var member = room.getMember(userId); if (room.getMyMembership() == "invite") {
if (member && member.membership != "join") { this.matrixClient.joinRoom(room.roomId);
// Resend invite } else {
this.matrixClient.invite(room.roomId, userId); var member = room.getMember(userId);
if (member && member.membership != "join") {
// Resend invite
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? let other = room.getMember(userId);
if ( if (other) {
room if (room.getMyMembership() == "invite" && other.membership == "join") {
.getMembersWithMembership("join") return true;
.some((item) => item.userId == userId) } else if (room.getMyMembership() == "join" && room.canInvite(this.currentUserId)) {
) { return true;
return true; } else if (room.getMyMembership() == "join" && other.membership == "join") {
} else if ( return true;
room }
.getMembersWithMembership("invite")
.some((item) => item.userId == userId)
) {
return true;
} }
} }
return false; return false;