Skip to content

Commit 22c7bf3

Browse files
authored
New room list: move sort menu in room list header (#29983)
* feat: move sort and preview into room list header vm * feat: move sort menu into room list header * test: update tests * test:update snapshots * chore: remove secondary filter tests * test(e2e): update screenshots
1 parent e110489 commit 22c7bf3

28 files changed

+683
-543
lines changed

res/css/views/rooms/RoomListPanel/_RoomListSecondaryFilters.pcss

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,3 @@
1010
margin: var(--cpd-space-2x);
1111
margin-left: var(--cpd-space-1x);
1212
}
13-
14-
.mx_RoomListSecondaryFilters_roomOptionsButton {
15-
/* Size the button appropriately (should this be in em, maybe,
16-
* so it gets bigger with font size? These values taken from the figma.
17-
*/
18-
width: 28px;
19-
height: 28px;
20-
margin-left: auto;
21-
22-
svg {
23-
color: var(--cpd-color-icon-primary);
24-
}
25-
}

src/components/viewmodels/roomlist/RoomListHeaderViewModel.tsx

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ import {
3131
import { useMatrixClientContext } from "../../../contexts/MatrixClientContext";
3232
import type { ViewRoomPayload } from "../../../dispatcher/payloads/ViewRoomPayload";
3333
import { createRoom, hasCreateRoomRights } from "./utils";
34+
import { type SortOption, useSorter } from "./useSorter";
35+
import { useMessagePreviewToggle } from "./useMessagePreviewToggle";
3436

3537
/**
3638
* Hook to get the active space and its title.
@@ -117,6 +119,22 @@ export interface RoomListHeaderViewState {
117119
* Open the space settings
118120
*/
119121
openSpaceSettings: () => void;
122+
/**
123+
* Change the sort order of the room-list.
124+
*/
125+
sort: (option: SortOption) => void;
126+
/**
127+
* The currently active sort option.
128+
*/
129+
activeSortOption: SortOption;
130+
/**
131+
* Whether message previews must be shown or not.
132+
*/
133+
shouldShowMessagePreview: boolean;
134+
/**
135+
* A function to turn on/off message previews.
136+
*/
137+
toggleMessagePreview: () => void;
120138
}
121139

122140
/**
@@ -138,6 +156,9 @@ export function useRoomListHeaderViewModel(): RoomListHeaderViewState {
138156

139157
/* Actions */
140158

159+
const { activeSortOption, sort } = useSorter();
160+
const { shouldShowMessagePreview, toggleMessagePreview } = useMessagePreviewToggle();
161+
141162
const createChatRoom = useCallback((e: Event) => {
142163
defaultDispatcher.fire(Action.CreateChat);
143164
PosthogTrackers.trackInteraction("WebRoomListHeaderPlusMenuCreateChatItem", e);
@@ -207,5 +228,9 @@ export function useRoomListHeaderViewModel(): RoomListHeaderViewState {
207228
inviteInSpace,
208229
openSpacePreferences,
209230
openSpaceSettings,
231+
activeSortOption,
232+
sort,
233+
shouldShowMessagePreview,
234+
toggleMessagePreview,
210235
};
211236
}

0 commit comments

Comments
 (0)