@@ -29,6 +29,7 @@ import { IFilterCondition } from "./filters/IFilterCondition";
2929import { TagWatcher } from "./TagWatcher" ;
3030import RoomViewStore from "../RoomViewStore" ;
3131import { Algorithm , LIST_UPDATED_EVENT } from "./algorithms/Algorithm" ;
32+ import { EffectiveMembership , getEffectiveMembership } from "./membership" ;
3233
3334interface 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