From 7e48f2b6b683800b70a8543bf457009d39dd83cb Mon Sep 17 00:00:00 2001 From: David Langley Date: Tue, 30 Sep 2025 10:53:48 +0100 Subject: [PATCH] Don't clear filters on space change (#30903) --- src/components/viewmodels/roomlist/useFilteredRooms.tsx | 5 ----- .../viewmodels/roomlist/RoomListViewModel-test.tsx | 6 +++--- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/components/viewmodels/roomlist/useFilteredRooms.tsx b/src/components/viewmodels/roomlist/useFilteredRooms.tsx index 9a1730a735..e7c879a813 100644 --- a/src/components/viewmodels/roomlist/useFilteredRooms.tsx +++ b/src/components/viewmodels/roomlist/useFilteredRooms.tsx @@ -15,8 +15,6 @@ import RoomListStoreV3, { type RoomsResult, } from "../../../stores/room-list-v3/RoomListStoreV3"; import { useEventEmitter } from "../../../hooks/useEventEmitter"; -import SpaceStore from "../../../stores/spaces/SpaceStore"; -import { UPDATE_SELECTED_SPACE } from "../../../stores/spaces"; /** * Provides information about a primary filter. @@ -74,9 +72,6 @@ export function useFilteredRooms(): FilteredRooms { setRoomsResult(newRooms); }, []); - // Reset filters when active space changes - useEventEmitter(SpaceStore.instance, UPDATE_SELECTED_SPACE, () => setPrimaryFilter(undefined)); - const filterUndefined = (array: (FilterKey | undefined)[]): FilterKey[] => array.filter((f) => f !== undefined) as FilterKey[]; diff --git a/test/unit-tests/components/viewmodels/roomlist/RoomListViewModel-test.tsx b/test/unit-tests/components/viewmodels/roomlist/RoomListViewModel-test.tsx index 3cc411b399..8ad1a1abbe 100644 --- a/test/unit-tests/components/viewmodels/roomlist/RoomListViewModel-test.tsx +++ b/test/unit-tests/components/viewmodels/roomlist/RoomListViewModel-test.tsx @@ -127,7 +127,7 @@ describe("RoomListViewModel", () => { expect(vm.current.activePrimaryFilter).toEqual(vm.current.primaryFilters[i]); }); - it("should remove all filters when active space is changed", async () => { + it("should not remove all filters when active space is changed", async () => { mockAndCreateRooms(); const { result: vm } = renderHook(() => useRoomListViewModel()); @@ -141,8 +141,8 @@ describe("RoomListViewModel", () => { // Simulate a space change await act(() => SpaceStore.instance.emit(UPDATE_SELECTED_SPACE)); - // Primary filer should have been unapplied - expect(vm.current.activePrimaryFilter).toEqual(undefined); + // Primary filter should remain unchanged + expect(vm.current.activePrimaryFilter?.name).toEqual("People"); }); });