Skip to content

Commit 6a191ea

Browse files
committed
Handle room invites as new rooms
We wouldn't have seen them before, so might as well treat them as new instead of tag changes.
1 parent 223ee0d commit 6a191ea

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/stores/room-list/RoomListStore2.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import { IFilterCondition } from "./filters/IFilterCondition";
2929
import { TagWatcher } from "./TagWatcher";
3030
import RoomViewStore from "../RoomViewStore";
3131
import { Algorithm, LIST_UPDATED_EVENT } from "./algorithms/Algorithm";
32+
import { EffectiveMembership, getEffectiveMembership } from "./membership";
3233

3334
interface IState {
3435
tagsEnabled?: boolean;
@@ -247,7 +248,9 @@ export class RoomListStore2 extends AsyncStore<ActionPayload> {
247248
}
248249
} else if (payload.action === 'MatrixActions.Room.myMembership') {
249250
const membershipPayload = (<any>payload); // TODO: Type out the dispatcher types
250-
if (membershipPayload.oldMembership !== "join" && membershipPayload.membership === "join") {
251+
const oldMembership = getEffectiveMembership(membershipPayload.oldMembership);
252+
const newMembership = getEffectiveMembership(membershipPayload.membership);
253+
if (oldMembership !== EffectiveMembership.Join && newMembership === EffectiveMembership.Join) {
251254
// TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
252255
console.log(`[RoomListDebug] Handling new room ${membershipPayload.room.roomId}`);
253256

@@ -276,8 +279,15 @@ export class RoomListStore2 extends AsyncStore<ActionPayload> {
276279
return;
277280
}
278281

282+
if (oldMembership !== EffectiveMembership.Invite && newMembership === EffectiveMembership.Invite) {
283+
// TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
284+
console.log(`[RoomListDebug] Handling invite to ${membershipPayload.room.roomId}`);
285+
await this.handleRoomUpdate(membershipPayload.room, RoomUpdateCause.NewRoom);
286+
return;
287+
}
288+
279289
// If it's not a join, it's transitioning into a different list (possibly historical)
280-
if (membershipPayload.oldMembership !== membershipPayload.membership) {
290+
if (oldMembership !== newMembership) {
281291
// TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
282292
console.log(`[RoomListDebug] Handling membership change in ${membershipPayload.room.roomId}`);
283293
await this.handleRoomUpdate(membershipPayload.room, RoomUpdateCause.PossibleTagChange);

0 commit comments

Comments
 (0)