Join knock rooms on page load if already invited (#2355)

When visiting the page for a knock room you are already invited to, join
it right away instead of offering to knock (which will fail as long as
you remain invited to the room).
This commit is contained in:
Andrew Ferrazzutti
2024-05-04 01:37:58 +09:00
committed by GitHub
parent 137867b096
commit 56312b2753

View File

@@ -203,7 +203,8 @@ export const useLoadGroupCall = (
// - in SPA mode if the user already joined the room
room = client.getRoom(roomId);
activeRoom.current = room ?? undefined;
if (room?.getMyMembership() === KnownMembership.Join) {
const membership = room?.getMyMembership();
if (membership === KnownMembership.Join) {
// room already joined so we are done here already.
return room!;
}
@@ -215,8 +216,12 @@ export const useLoadGroupCall = (
// If the room does not exist we first search for it with viaServers
const roomSummary = await client.getRoomSummary(roomId, viaServers);
if (room?.getMyMembership() === KnownMembership.Ban) {
if (membership === KnownMembership.Ban) {
throw bannedError();
} else if (membership === KnownMembership.Invite) {
room = await client.joinRoom(roomId, {
viaServers,
});
} else {
if (roomSummary.join_rule === JoinRule.Public) {
room = await client.joinRoom(roomSummary.room_id, {