Merge pull request #4944 from matrix-org/travis/room-list/perf/log-disable
Add an option to disable room list logging, and improve loggingpull/21833/head
						commit
						840a4127db
					
				| 
						 | 
					@ -37,6 +37,9 @@ declare global {
 | 
				
			||||||
        mx_RoomListStore2: RoomListStore2;
 | 
					        mx_RoomListStore2: RoomListStore2;
 | 
				
			||||||
        mx_RoomListLayoutStore: RoomListLayoutStore;
 | 
					        mx_RoomListLayoutStore: RoomListLayoutStore;
 | 
				
			||||||
        mxPlatformPeg: PlatformPeg;
 | 
					        mxPlatformPeg: PlatformPeg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // TODO: Remove flag before launch: https://github.com/vector-im/riot-web/issues/14231
 | 
				
			||||||
 | 
					        mx_QuietRoomListLogging: boolean;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // workaround for https://github.com/microsoft/TypeScript/issues/30933
 | 
					    // workaround for https://github.com/microsoft/TypeScript/issues/30933
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -219,7 +219,10 @@ export default class RoomList2 extends React.Component<IProps, IState> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private updateLists = () => {
 | 
					    private updateLists = () => {
 | 
				
			||||||
        const newLists = RoomListStore.instance.orderedLists;
 | 
					        const newLists = RoomListStore.instance.orderedLists;
 | 
				
			||||||
        console.log("new lists", newLists);
 | 
					        if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
 | 
					            // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					            console.log("new lists", newLists);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        this.setState({sublists: newLists}, () => {
 | 
					        this.setState({sublists: newLists}, () => {
 | 
				
			||||||
            this.props.onResize();
 | 
					            this.props.onResize();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -256,7 +256,7 @@ export default class RoomTile2 extends React.Component<IProps, IState> {
 | 
				
			||||||
                0
 | 
					                0
 | 
				
			||||||
            ));
 | 
					            ));
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            console.log(`Unexpected tag ${tagId} applied to ${this.props.room.room_id}`);
 | 
					            console.warn(`Unexpected tag ${tagId} applied to ${this.props.room.room_id}`);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ((ev as React.KeyboardEvent).key === Key.ENTER) {
 | 
					        if ((ev as React.KeyboardEvent).key === Key.ENTER) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -104,8 +104,10 @@ export class RoomListStore2 extends AsyncStore<ActionPayload> {
 | 
				
			||||||
                console.warn(`${activeRoomId} is current in RVS but missing from client - clearing sticky room`);
 | 
					                console.warn(`${activeRoomId} is current in RVS but missing from client - clearing sticky room`);
 | 
				
			||||||
                this.algorithm.stickyRoom = null;
 | 
					                this.algorithm.stickyRoom = null;
 | 
				
			||||||
            } else if (activeRoom !== this.algorithm.stickyRoom) {
 | 
					            } else if (activeRoom !== this.algorithm.stickyRoom) {
 | 
				
			||||||
                // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					                if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
                console.log(`Changing sticky room to ${activeRoomId}`);
 | 
					                    // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                    console.log(`Changing sticky room to ${activeRoomId}`);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                this.algorithm.stickyRoom = activeRoom;
 | 
					                this.algorithm.stickyRoom = activeRoom;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					@ -169,15 +171,19 @@ export class RoomListStore2 extends AsyncStore<ActionPayload> {
 | 
				
			||||||
                    console.warn(`Own read receipt was in unknown room ${room.roomId}`);
 | 
					                    console.warn(`Own read receipt was in unknown room ${room.roomId}`);
 | 
				
			||||||
                    return;
 | 
					                    return;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					                if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
                console.log(`[RoomListDebug] Got own read receipt in ${room.roomId}`);
 | 
					                    // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                    console.log(`[RoomListDebug] Got own read receipt in ${room.roomId}`);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                await this.handleRoomUpdate(room, RoomUpdateCause.ReadReceipt);
 | 
					                await this.handleRoomUpdate(room, RoomUpdateCause.ReadReceipt);
 | 
				
			||||||
                return;
 | 
					                return;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        } else if (payload.action === 'MatrixActions.Room.tags') {
 | 
					        } else if (payload.action === 'MatrixActions.Room.tags') {
 | 
				
			||||||
            const roomPayload = (<any>payload); // TODO: Type out the dispatcher types
 | 
					            const roomPayload = (<any>payload); // TODO: Type out the dispatcher types
 | 
				
			||||||
            // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					            if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
            console.log(`[RoomListDebug] Got tag change in ${roomPayload.room.roomId}`);
 | 
					                // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                console.log(`[RoomListDebug] Got tag change in ${roomPayload.room.roomId}`);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            await this.handleRoomUpdate(roomPayload.room, RoomUpdateCause.PossibleTagChange);
 | 
					            await this.handleRoomUpdate(roomPayload.room, RoomUpdateCause.PossibleTagChange);
 | 
				
			||||||
        } else if (payload.action === 'MatrixActions.Room.timeline') {
 | 
					        } else if (payload.action === 'MatrixActions.Room.timeline') {
 | 
				
			||||||
            const eventPayload = (<any>payload); // TODO: Type out the dispatcher types
 | 
					            const eventPayload = (<any>payload); // TODO: Type out the dispatcher types
 | 
				
			||||||
| 
						 | 
					@ -188,12 +194,16 @@ export class RoomListStore2 extends AsyncStore<ActionPayload> {
 | 
				
			||||||
            const roomId = eventPayload.event.getRoomId();
 | 
					            const roomId = eventPayload.event.getRoomId();
 | 
				
			||||||
            const room = this.matrixClient.getRoom(roomId);
 | 
					            const room = this.matrixClient.getRoom(roomId);
 | 
				
			||||||
            const tryUpdate = async (updatedRoom: Room) => {
 | 
					            const tryUpdate = async (updatedRoom: Room) => {
 | 
				
			||||||
                // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					                if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
                console.log(`[RoomListDebug] Live timeline event ${eventPayload.event.getId()}` +
 | 
					 | 
				
			||||||
                    ` in ${updatedRoom.roomId}`);
 | 
					 | 
				
			||||||
                if (eventPayload.event.getType() === 'm.room.tombstone' && eventPayload.event.getStateKey() === '') {
 | 
					 | 
				
			||||||
                    // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					                    // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
                    console.log(`[RoomListDebug] Got tombstone event - trying to remove now-dead room`);
 | 
					                    console.log(`[RoomListDebug] Live timeline event ${eventPayload.event.getId()}` +
 | 
				
			||||||
 | 
					                        ` in ${updatedRoom.roomId}`);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                if (eventPayload.event.getType() === 'm.room.tombstone' && eventPayload.event.getStateKey() === '') {
 | 
				
			||||||
 | 
					                    if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
 | 
					                        // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                        console.log(`[RoomListDebug] Got tombstone event - trying to remove now-dead room`);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
                    const newRoom = this.matrixClient.getRoom(eventPayload.event.getContent()['replacement_room']);
 | 
					                    const newRoom = this.matrixClient.getRoom(eventPayload.event.getContent()['replacement_room']);
 | 
				
			||||||
                    if (newRoom) {
 | 
					                    if (newRoom) {
 | 
				
			||||||
                        // If we have the new room, then the new room check will have seen the predecessor
 | 
					                        // If we have the new room, then the new room check will have seen the predecessor
 | 
				
			||||||
| 
						 | 
					@ -222,13 +232,17 @@ export class RoomListStore2 extends AsyncStore<ActionPayload> {
 | 
				
			||||||
                console.warn(`Event ${eventPayload.event.getId()} was decrypted in an unknown room ${roomId}`);
 | 
					                console.warn(`Event ${eventPayload.event.getId()} was decrypted in an unknown room ${roomId}`);
 | 
				
			||||||
                return;
 | 
					                return;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					            if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
            console.log(`[RoomListDebug] Decrypted timeline event ${eventPayload.event.getId()} in ${roomId}`);
 | 
					                // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                console.log(`[RoomListDebug] Decrypted timeline event ${eventPayload.event.getId()} in ${roomId}`);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            await this.handleRoomUpdate(room, RoomUpdateCause.Timeline);
 | 
					            await this.handleRoomUpdate(room, RoomUpdateCause.Timeline);
 | 
				
			||||||
        } else if (payload.action === 'MatrixActions.accountData' && payload.event_type === 'm.direct') {
 | 
					        } else if (payload.action === 'MatrixActions.accountData' && payload.event_type === 'm.direct') {
 | 
				
			||||||
            const eventPayload = (<any>payload); // TODO: Type out the dispatcher types
 | 
					            const eventPayload = (<any>payload); // TODO: Type out the dispatcher types
 | 
				
			||||||
            // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					            if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
            console.log(`[RoomListDebug] Received updated DM map`);
 | 
					                // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                console.log(`[RoomListDebug] Received updated DM map`);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            const dmMap = eventPayload.event.getContent();
 | 
					            const dmMap = eventPayload.event.getContent();
 | 
				
			||||||
            for (const userId of Object.keys(dmMap)) {
 | 
					            for (const userId of Object.keys(dmMap)) {
 | 
				
			||||||
                const roomIds = dmMap[userId];
 | 
					                const roomIds = dmMap[userId];
 | 
				
			||||||
| 
						 | 
					@ -251,45 +265,63 @@ export class RoomListStore2 extends AsyncStore<ActionPayload> {
 | 
				
			||||||
            const oldMembership = getEffectiveMembership(membershipPayload.oldMembership);
 | 
					            const oldMembership = getEffectiveMembership(membershipPayload.oldMembership);
 | 
				
			||||||
            const newMembership = getEffectiveMembership(membershipPayload.membership);
 | 
					            const newMembership = getEffectiveMembership(membershipPayload.membership);
 | 
				
			||||||
            if (oldMembership !== EffectiveMembership.Join && newMembership === EffectiveMembership.Join) {
 | 
					            if (oldMembership !== EffectiveMembership.Join && newMembership === EffectiveMembership.Join) {
 | 
				
			||||||
                // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					                if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
                console.log(`[RoomListDebug] Handling new room ${membershipPayload.room.roomId}`);
 | 
					                    // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                    console.log(`[RoomListDebug] Handling new room ${membershipPayload.room.roomId}`);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                // If we're joining an upgraded room, we'll want to make sure we don't proliferate
 | 
					                // If we're joining an upgraded room, we'll want to make sure we don't proliferate
 | 
				
			||||||
                // the dead room in the list.
 | 
					                // the dead room in the list.
 | 
				
			||||||
                const createEvent = membershipPayload.room.currentState.getStateEvents("m.room.create", "");
 | 
					                const createEvent = membershipPayload.room.currentState.getStateEvents("m.room.create", "");
 | 
				
			||||||
                if (createEvent && createEvent.getContent()['predecessor']) {
 | 
					                if (createEvent && createEvent.getContent()['predecessor']) {
 | 
				
			||||||
                    console.log(`[RoomListDebug] Room has a predecessor`);
 | 
					                    if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
 | 
					                        // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                        console.log(`[RoomListDebug] Room has a predecessor`);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
                    const prevRoom = this.matrixClient.getRoom(createEvent.getContent()['predecessor']['room_id']);
 | 
					                    const prevRoom = this.matrixClient.getRoom(createEvent.getContent()['predecessor']['room_id']);
 | 
				
			||||||
                    if (prevRoom) {
 | 
					                    if (prevRoom) {
 | 
				
			||||||
                        const isSticky = this.algorithm.stickyRoom === prevRoom;
 | 
					                        const isSticky = this.algorithm.stickyRoom === prevRoom;
 | 
				
			||||||
                        if (isSticky) {
 | 
					                        if (isSticky) {
 | 
				
			||||||
                            console.log(`[RoomListDebug] Clearing sticky room due to room upgrade`);
 | 
					                            if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
 | 
					                                // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                                console.log(`[RoomListDebug] Clearing sticky room due to room upgrade`);
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
                            await this.algorithm.setStickyRoomAsync(null);
 | 
					                            await this.algorithm.setStickyRoomAsync(null);
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        // Note: we hit the algorithm instead of our handleRoomUpdate() function to
 | 
					                        // Note: we hit the algorithm instead of our handleRoomUpdate() function to
 | 
				
			||||||
                        // avoid redundant updates.
 | 
					                        // avoid redundant updates.
 | 
				
			||||||
                        console.log(`[RoomListDebug] Removing previous room from room list`);
 | 
					                        if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
 | 
					                            // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                            console.log(`[RoomListDebug] Removing previous room from room list`);
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
                        await this.algorithm.handleRoomUpdate(prevRoom, RoomUpdateCause.RoomRemoved);
 | 
					                        await this.algorithm.handleRoomUpdate(prevRoom, RoomUpdateCause.RoomRemoved);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                console.log(`[RoomListDebug] Adding new room to room list`);
 | 
					                if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
 | 
					                    // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                    console.log(`[RoomListDebug] Adding new room to room list`);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                await this.handleRoomUpdate(membershipPayload.room, RoomUpdateCause.NewRoom);
 | 
					                await this.handleRoomUpdate(membershipPayload.room, RoomUpdateCause.NewRoom);
 | 
				
			||||||
                return;
 | 
					                return;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (oldMembership !== EffectiveMembership.Invite && newMembership === EffectiveMembership.Invite) {
 | 
					            if (oldMembership !== EffectiveMembership.Invite && newMembership === EffectiveMembership.Invite) {
 | 
				
			||||||
                // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					                if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
                console.log(`[RoomListDebug] Handling invite to ${membershipPayload.room.roomId}`);
 | 
					                    // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                    console.log(`[RoomListDebug] Handling invite to ${membershipPayload.room.roomId}`);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                await this.handleRoomUpdate(membershipPayload.room, RoomUpdateCause.NewRoom);
 | 
					                await this.handleRoomUpdate(membershipPayload.room, RoomUpdateCause.NewRoom);
 | 
				
			||||||
                return;
 | 
					                return;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // If it's not a join, it's transitioning into a different list (possibly historical)
 | 
					            // If it's not a join, it's transitioning into a different list (possibly historical)
 | 
				
			||||||
            if (oldMembership !== newMembership) {
 | 
					            if (oldMembership !== newMembership) {
 | 
				
			||||||
                // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					                if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
                console.log(`[RoomListDebug] Handling membership change in ${membershipPayload.room.roomId}`);
 | 
					                    // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                    console.log(`[RoomListDebug] Handling membership change in ${membershipPayload.room.roomId}`);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                await this.handleRoomUpdate(membershipPayload.room, RoomUpdateCause.PossibleTagChange);
 | 
					                await this.handleRoomUpdate(membershipPayload.room, RoomUpdateCause.PossibleTagChange);
 | 
				
			||||||
                return;
 | 
					                return;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					@ -299,8 +331,10 @@ export class RoomListStore2 extends AsyncStore<ActionPayload> {
 | 
				
			||||||
    private async handleRoomUpdate(room: Room, cause: RoomUpdateCause): Promise<any> {
 | 
					    private async handleRoomUpdate(room: Room, cause: RoomUpdateCause): Promise<any> {
 | 
				
			||||||
        const shouldUpdate = await this.algorithm.handleRoomUpdate(room, cause);
 | 
					        const shouldUpdate = await this.algorithm.handleRoomUpdate(room, cause);
 | 
				
			||||||
        if (shouldUpdate) {
 | 
					        if (shouldUpdate) {
 | 
				
			||||||
            // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					            if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
            console.log(`[DEBUG] Room "${room.name}" (${room.roomId}) triggered by ${cause} requires list update`);
 | 
					                // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                console.log(`[DEBUG] Room "${room.name}" (${room.roomId}) triggered by ${cause} requires list update`);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            this.emit(LISTS_UPDATE_EVENT, this);
 | 
					            this.emit(LISTS_UPDATE_EVENT, this);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					@ -405,8 +439,10 @@ export class RoomListStore2 extends AsyncStore<ActionPayload> {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private onAlgorithmListUpdated = () => {
 | 
					    private onAlgorithmListUpdated = () => {
 | 
				
			||||||
        // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					        if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
        console.log("Underlying algorithm has triggered a list update - refiring");
 | 
					            // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					            console.log("Underlying algorithm has triggered a list update - refiring");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        this.emit(LISTS_UPDATE_EVENT, this);
 | 
					        this.emit(LISTS_UPDATE_EVENT, this);
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -439,8 +475,10 @@ export class RoomListStore2 extends AsyncStore<ActionPayload> {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public addFilter(filter: IFilterCondition): void {
 | 
					    public addFilter(filter: IFilterCondition): void {
 | 
				
			||||||
        // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					        if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
        console.log("Adding filter condition:", filter);
 | 
					            // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					            console.log("Adding filter condition:", filter);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        this.filterConditions.push(filter);
 | 
					        this.filterConditions.push(filter);
 | 
				
			||||||
        if (this.algorithm) {
 | 
					        if (this.algorithm) {
 | 
				
			||||||
            this.algorithm.addFilterCondition(filter);
 | 
					            this.algorithm.addFilterCondition(filter);
 | 
				
			||||||
| 
						 | 
					@ -448,8 +486,10 @@ export class RoomListStore2 extends AsyncStore<ActionPayload> {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public removeFilter(filter: IFilterCondition): void {
 | 
					    public removeFilter(filter: IFilterCondition): void {
 | 
				
			||||||
        // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					        if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
        console.log("Removing filter condition:", filter);
 | 
					            // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					            console.log("Removing filter condition:", filter);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        const idx = this.filterConditions.indexOf(filter);
 | 
					        const idx = this.filterConditions.indexOf(filter);
 | 
				
			||||||
        if (idx >= 0) {
 | 
					        if (idx >= 0) {
 | 
				
			||||||
            this.filterConditions.splice(idx, 1);
 | 
					            this.filterConditions.splice(idx, 1);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -321,8 +321,10 @@ export class Algorithm extends EventEmitter {
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            newMap[tagId] = allowedRoomsInThisTag;
 | 
					            newMap[tagId] = allowedRoomsInThisTag;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					            if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
            console.log(`[DEBUG] ${newMap[tagId].length}/${rooms.length} rooms filtered into ${tagId}`);
 | 
					                // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                console.log(`[DEBUG] ${newMap[tagId].length}/${rooms.length} rooms filtered into ${tagId}`);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        const allowedRooms = Object.values(newMap).reduce((rv, v) => { rv.push(...v); return rv; }, <Room[]>[]);
 | 
					        const allowedRooms = Object.values(newMap).reduce((rv, v) => { rv.push(...v); return rv; }, <Room[]>[]);
 | 
				
			||||||
| 
						 | 
					@ -331,26 +333,13 @@ export class Algorithm extends EventEmitter {
 | 
				
			||||||
        this.emit(LIST_UPDATED_EVENT);
 | 
					        this.emit(LIST_UPDATED_EVENT);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // TODO: Remove or use.
 | 
					 | 
				
			||||||
    protected addPossiblyFilteredRoomsToTag(tagId: TagID, added: Room[]): void {
 | 
					 | 
				
			||||||
        const filters = this.allowedByFilter.keys();
 | 
					 | 
				
			||||||
        for (const room of added) {
 | 
					 | 
				
			||||||
            for (const filter of filters) {
 | 
					 | 
				
			||||||
                if (filter.isVisible(room)) {
 | 
					 | 
				
			||||||
                    this.allowedRoomsByFilters.add(room);
 | 
					 | 
				
			||||||
                    break;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // Now that we've updated the allowed rooms, recalculate the tag
 | 
					 | 
				
			||||||
        this.recalculateFilteredRoomsForTag(tagId);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    protected recalculateFilteredRoomsForTag(tagId: TagID): void {
 | 
					    protected recalculateFilteredRoomsForTag(tagId: TagID): void {
 | 
				
			||||||
        if (!this.hasFilters) return; // don't bother doing work if there's nothing to do
 | 
					        if (!this.hasFilters) return; // don't bother doing work if there's nothing to do
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        console.log(`Recalculating filtered rooms for ${tagId}`);
 | 
					        if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
 | 
					            // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					            console.log(`Recalculating filtered rooms for ${tagId}`);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        delete this.filteredRooms[tagId];
 | 
					        delete this.filteredRooms[tagId];
 | 
				
			||||||
        const rooms = this.cachedRooms[tagId].map(r => r); // cheap clone
 | 
					        const rooms = this.cachedRooms[tagId].map(r => r); // cheap clone
 | 
				
			||||||
        this.tryInsertStickyRoomToFilterSet(rooms, tagId);
 | 
					        this.tryInsertStickyRoomToFilterSet(rooms, tagId);
 | 
				
			||||||
| 
						 | 
					@ -359,8 +348,10 @@ export class Algorithm extends EventEmitter {
 | 
				
			||||||
            this.filteredRooms[tagId] = filteredRooms;
 | 
					            this.filteredRooms[tagId] = filteredRooms;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					        if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
        console.log(`[DEBUG] ${filteredRooms.length}/${rooms.length} rooms filtered into ${tagId}`);
 | 
					            // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					            console.log(`[DEBUG] ${filteredRooms.length}/${rooms.length} rooms filtered into ${tagId}`);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    protected tryInsertStickyRoomToFilterSet(rooms: Room[], tagId: TagID) {
 | 
					    protected tryInsertStickyRoomToFilterSet(rooms: Room[], tagId: TagID) {
 | 
				
			||||||
| 
						 | 
					@ -399,8 +390,10 @@ export class Algorithm extends EventEmitter {
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!this._cachedStickyRooms || !updatedTag) {
 | 
					        if (!this._cachedStickyRooms || !updatedTag) {
 | 
				
			||||||
            // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					            if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
            console.log(`Generating clone of cached rooms for sticky room handling`);
 | 
					                // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                console.log(`Generating clone of cached rooms for sticky room handling`);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            const stickiedTagMap: ITagMap = {};
 | 
					            const stickiedTagMap: ITagMap = {};
 | 
				
			||||||
            for (const tagId of Object.keys(this.cachedRooms)) {
 | 
					            for (const tagId of Object.keys(this.cachedRooms)) {
 | 
				
			||||||
                stickiedTagMap[tagId] = this.cachedRooms[tagId].map(r => r); // shallow clone
 | 
					                stickiedTagMap[tagId] = this.cachedRooms[tagId].map(r => r); // shallow clone
 | 
				
			||||||
| 
						 | 
					@ -411,8 +404,10 @@ export class Algorithm extends EventEmitter {
 | 
				
			||||||
        if (updatedTag) {
 | 
					        if (updatedTag) {
 | 
				
			||||||
            // Update the tag indicated by the caller, if possible. This is mostly to ensure
 | 
					            // Update the tag indicated by the caller, if possible. This is mostly to ensure
 | 
				
			||||||
            // our cache is up to date.
 | 
					            // our cache is up to date.
 | 
				
			||||||
            // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					            if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
            console.log(`Replacing cached sticky rooms for ${updatedTag}`);
 | 
					                // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                console.log(`Replacing cached sticky rooms for ${updatedTag}`);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            this._cachedStickyRooms[updatedTag] = this.cachedRooms[updatedTag].map(r => r); // shallow clone
 | 
					            this._cachedStickyRooms[updatedTag] = this.cachedRooms[updatedTag].map(r => r); // shallow clone
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -421,8 +416,10 @@ export class Algorithm extends EventEmitter {
 | 
				
			||||||
        // we might have updated from the cache is also our sticky room.
 | 
					        // we might have updated from the cache is also our sticky room.
 | 
				
			||||||
        const sticky = this._stickyRoom;
 | 
					        const sticky = this._stickyRoom;
 | 
				
			||||||
        if (!updatedTag || updatedTag === sticky.tag) {
 | 
					        if (!updatedTag || updatedTag === sticky.tag) {
 | 
				
			||||||
            // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					            if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
            console.log(`Inserting sticky room ${sticky.room.roomId} at position ${sticky.position} in ${sticky.tag}`);
 | 
					                // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                console.log(`Inserting sticky room ${sticky.room.roomId} at position ${sticky.position} in ${sticky.tag}`);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            this._cachedStickyRooms[sticky.tag].splice(sticky.position, 0, sticky.room);
 | 
					            this._cachedStickyRooms[sticky.tag].splice(sticky.position, 0, sticky.room);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -647,8 +644,10 @@ export class Algorithm extends EventEmitter {
 | 
				
			||||||
     * processing.
 | 
					     * processing.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public async handleRoomUpdate(room: Room, cause: RoomUpdateCause): Promise<boolean> {
 | 
					    public async handleRoomUpdate(room: Room, cause: RoomUpdateCause): Promise<boolean> {
 | 
				
			||||||
        // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					        if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
        console.log(`Handle room update for ${room.roomId} called with cause ${cause}`);
 | 
					            // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					            console.log(`Handle room update for ${room.roomId} called with cause ${cause}`);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        if (!this.algorithms) throw new Error("Not ready: no algorithms to determine tags from");
 | 
					        if (!this.algorithms) throw new Error("Not ready: no algorithms to determine tags from");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Note: check the isSticky against the room ID just in case the reference is wrong
 | 
					        // Note: check the isSticky against the room ID just in case the reference is wrong
 | 
				
			||||||
| 
						 | 
					@ -705,16 +704,20 @@ export class Algorithm extends EventEmitter {
 | 
				
			||||||
            const diff = arrayDiff(oldTags, newTags);
 | 
					            const diff = arrayDiff(oldTags, newTags);
 | 
				
			||||||
            if (diff.removed.length > 0 || diff.added.length > 0) {
 | 
					            if (diff.removed.length > 0 || diff.added.length > 0) {
 | 
				
			||||||
                for (const rmTag of diff.removed) {
 | 
					                for (const rmTag of diff.removed) {
 | 
				
			||||||
                    // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					                    if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
                    console.log(`Removing ${room.roomId} from ${rmTag}`);
 | 
					                        // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                        console.log(`Removing ${room.roomId} from ${rmTag}`);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
                    const algorithm: OrderingAlgorithm = this.algorithms[rmTag];
 | 
					                    const algorithm: OrderingAlgorithm = this.algorithms[rmTag];
 | 
				
			||||||
                    if (!algorithm) throw new Error(`No algorithm for ${rmTag}`);
 | 
					                    if (!algorithm) throw new Error(`No algorithm for ${rmTag}`);
 | 
				
			||||||
                    await algorithm.handleRoomUpdate(room, RoomUpdateCause.RoomRemoved);
 | 
					                    await algorithm.handleRoomUpdate(room, RoomUpdateCause.RoomRemoved);
 | 
				
			||||||
                    this.cachedRooms[rmTag] = algorithm.orderedRooms;
 | 
					                    this.cachedRooms[rmTag] = algorithm.orderedRooms;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                for (const addTag of diff.added) {
 | 
					                for (const addTag of diff.added) {
 | 
				
			||||||
                    // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					                    if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
                    console.log(`Adding ${room.roomId} to ${addTag}`);
 | 
					                        // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                        console.log(`Adding ${room.roomId} to ${addTag}`);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
                    const algorithm: OrderingAlgorithm = this.algorithms[addTag];
 | 
					                    const algorithm: OrderingAlgorithm = this.algorithms[addTag];
 | 
				
			||||||
                    if (!algorithm) throw new Error(`No algorithm for ${addTag}`);
 | 
					                    if (!algorithm) throw new Error(`No algorithm for ${addTag}`);
 | 
				
			||||||
                    await algorithm.handleRoomUpdate(room, RoomUpdateCause.NewRoom);
 | 
					                    await algorithm.handleRoomUpdate(room, RoomUpdateCause.NewRoom);
 | 
				
			||||||
| 
						 | 
					@ -724,13 +727,17 @@ export class Algorithm extends EventEmitter {
 | 
				
			||||||
                // Update the tag map so we don't regen it in a moment
 | 
					                // Update the tag map so we don't regen it in a moment
 | 
				
			||||||
                this.roomIdsToTags[room.roomId] = newTags;
 | 
					                this.roomIdsToTags[room.roomId] = newTags;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					                if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
                console.log(`Changing update cause for ${room.roomId} to Timeline to sort rooms`);
 | 
					                    // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                    console.log(`Changing update cause for ${room.roomId} to Timeline to sort rooms`);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                cause = RoomUpdateCause.Timeline;
 | 
					                cause = RoomUpdateCause.Timeline;
 | 
				
			||||||
                didTagChange = true;
 | 
					                didTagChange = true;
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					                if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
                console.warn(`Received no-op update for ${room.roomId} - changing to Timeline update`);
 | 
					                    // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                    console.log(`Received no-op update for ${room.roomId} - changing to Timeline update`);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                cause = RoomUpdateCause.Timeline;
 | 
					                cause = RoomUpdateCause.Timeline;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -756,20 +763,27 @@ export class Algorithm extends EventEmitter {
 | 
				
			||||||
        // as the sticky room relies on this.
 | 
					        // as the sticky room relies on this.
 | 
				
			||||||
        if (cause !== RoomUpdateCause.NewRoom && cause !== RoomUpdateCause.RoomRemoved) {
 | 
					        if (cause !== RoomUpdateCause.NewRoom && cause !== RoomUpdateCause.RoomRemoved) {
 | 
				
			||||||
            if (this.stickyRoom === room) {
 | 
					            if (this.stickyRoom === room) {
 | 
				
			||||||
                // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					                if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
                console.warn(`[RoomListDebug] Received ${cause} update for sticky room ${room.roomId} - ignoring`);
 | 
					                    // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                    console.warn(`[RoomListDebug] Received ${cause} update for sticky room ${room.roomId} - ignoring`);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                return false;
 | 
					                return false;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!this.roomIdsToTags[room.roomId]) {
 | 
					        if (!this.roomIdsToTags[room.roomId]) {
 | 
				
			||||||
            if (CAUSES_REQUIRING_ROOM.includes(cause)) {
 | 
					            if (CAUSES_REQUIRING_ROOM.includes(cause)) {
 | 
				
			||||||
                console.warn(`Skipping tag update for ${room.roomId} because we don't know about the room`);
 | 
					                if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
 | 
					                    // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                    console.warn(`Skipping tag update for ${room.roomId} because we don't know about the room`);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                return false;
 | 
					                return false;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					            if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
            console.log(`[RoomListDebug] Updating tags for room ${room.roomId} (${room.name})`);
 | 
					                // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                console.log(`[RoomListDebug] Updating tags for room ${room.roomId} (${room.name})`);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // Get the tags for the room and populate the cache
 | 
					            // Get the tags for the room and populate the cache
 | 
				
			||||||
            const roomTags = this.getTagsForRoom(room).filter(t => !isNullOrUndefined(this.cachedRooms[t]));
 | 
					            const roomTags = this.getTagsForRoom(room).filter(t => !isNullOrUndefined(this.cachedRooms[t]));
 | 
				
			||||||
| 
						 | 
					@ -780,12 +794,16 @@ export class Algorithm extends EventEmitter {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            this.roomIdsToTags[room.roomId] = roomTags;
 | 
					            this.roomIdsToTags[room.roomId] = roomTags;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					            if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
            console.log(`[RoomListDebug] Updated tags for ${room.roomId}:`, roomTags);
 | 
					                // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					                console.log(`[RoomListDebug] Updated tags for ${room.roomId}:`, roomTags);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					        if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
        console.log(`[RoomListDebug] Reached algorithmic handling for ${room.roomId} and cause ${cause}`);
 | 
					            // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					            console.log(`[RoomListDebug] Reached algorithmic handling for ${room.roomId} and cause ${cause}`);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        const tags = this.roomIdsToTags[room.roomId];
 | 
					        const tags = this.roomIdsToTags[room.roomId];
 | 
				
			||||||
        if (!tags) {
 | 
					        if (!tags) {
 | 
				
			||||||
| 
						 | 
					@ -807,8 +825,10 @@ export class Algorithm extends EventEmitter {
 | 
				
			||||||
            changed = true;
 | 
					            changed = true;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					        if (!window.mx_QuietRoomListLogging) {
 | 
				
			||||||
        console.log(`[RoomListDebug] Finished handling ${room.roomId} with cause ${cause} (changed=${changed})`);
 | 
					            // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
				
			||||||
 | 
					            console.log(`[RoomListDebug] Finished handling ${room.roomId} with cause ${cause} (changed=${changed})`);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        return changed;
 | 
					        return changed;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -87,9 +87,6 @@ export class ImportanceAlgorithm extends OrderingAlgorithm {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public constructor(tagId: TagID, initialSortingAlgorithm: SortAlgorithm) {
 | 
					    public constructor(tagId: TagID, initialSortingAlgorithm: SortAlgorithm) {
 | 
				
			||||||
        super(tagId, initialSortingAlgorithm);
 | 
					        super(tagId, initialSortingAlgorithm);
 | 
				
			||||||
 | 
					 | 
				
			||||||
        // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					 | 
				
			||||||
        console.log(`[RoomListDebug] Constructed an ImportanceAlgorithm for ${tagId}`);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // noinspection JSMethodCanBeStatic
 | 
					    // noinspection JSMethodCanBeStatic
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,9 +28,6 @@ export class NaturalAlgorithm extends OrderingAlgorithm {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public constructor(tagId: TagID, initialSortingAlgorithm: SortAlgorithm) {
 | 
					    public constructor(tagId: TagID, initialSortingAlgorithm: SortAlgorithm) {
 | 
				
			||||||
        super(tagId, initialSortingAlgorithm);
 | 
					        super(tagId, initialSortingAlgorithm);
 | 
				
			||||||
 | 
					 | 
				
			||||||
        // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					 | 
				
			||||||
        console.log(`[RoomListDebug] Constructed a NaturalAlgorithm for ${tagId}`);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public async setRooms(rooms: Room[]): Promise<any> {
 | 
					    public async setRooms(rooms: Room[]): Promise<any> {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -52,8 +52,6 @@ export class CommunityFilterCondition extends EventEmitter implements IFilterCon
 | 
				
			||||||
        const beforeRoomIds = this.roomIds;
 | 
					        const beforeRoomIds = this.roomIds;
 | 
				
			||||||
        this.roomIds = (await GroupStore.getGroupRooms(this.community.groupId)).map(r => r.roomId);
 | 
					        this.roomIds = (await GroupStore.getGroupRooms(this.community.groupId)).map(r => r.roomId);
 | 
				
			||||||
        if (arrayHasDiff(beforeRoomIds, this.roomIds)) {
 | 
					        if (arrayHasDiff(beforeRoomIds, this.roomIds)) {
 | 
				
			||||||
            // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					 | 
				
			||||||
            console.log("Updating filter for group: ", this.community.groupId);
 | 
					 | 
				
			||||||
            this.emit(FILTER_CHANGED);
 | 
					            this.emit(FILTER_CHANGED);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -41,8 +41,6 @@ export class NameFilterCondition extends EventEmitter implements IFilterConditio
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public set search(val: string) {
 | 
					    public set search(val: string) {
 | 
				
			||||||
        this._search = val;
 | 
					        this._search = val;
 | 
				
			||||||
        // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
 | 
					 | 
				
			||||||
        console.log("Updating filter for room name search:", this._search);
 | 
					 | 
				
			||||||
        this.emit(FILTER_CHANGED);
 | 
					        this.emit(FILTER_CHANGED);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue