From 96549b1edcd50a46fda079f16966ef8a1b0c7138 Mon Sep 17 00:00:00 2001 From: Florian Duros Date: Wed, 3 Jun 2026 17:38:24 +0200 Subject: [PATCH] Room list: add expand all icon to room list header (#33732) * feat: add expand all icon to room list header * test: add screenshot * test: add snapshot tests --- .../expand-sections-auto.png | Bin 0 -> 19272 bytes .../RoomListHeaderView.stories.tsx | 6 + .../RoomListHeaderView.test.tsx | 12 +- .../RoomListHeaderView/RoomListHeaderView.tsx | 8 +- .../RoomListHeaderView.test.tsx.snap | 322 ++++++++++++++++++ 5 files changed, 345 insertions(+), 3 deletions(-) create mode 100644 packages/shared-components/__vis__/linux/__baselines__/room-list/RoomListHeaderView/RoomListHeaderView.stories.tsx/expand-sections-auto.png diff --git a/packages/shared-components/__vis__/linux/__baselines__/room-list/RoomListHeaderView/RoomListHeaderView.stories.tsx/expand-sections-auto.png b/packages/shared-components/__vis__/linux/__baselines__/room-list/RoomListHeaderView/RoomListHeaderView.stories.tsx/expand-sections-auto.png new file mode 100644 index 0000000000000000000000000000000000000000..bf2eec867dc61308b8c830a26d2944de3e863347 GIT binary patch literal 19272 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 literal 0 HcmV?d00001 diff --git a/packages/shared-components/src/room-list/RoomListHeaderView/RoomListHeaderView.stories.tsx b/packages/shared-components/src/room-list/RoomListHeaderView/RoomListHeaderView.stories.tsx index d622503c1d..6fe8755910 100644 --- a/packages/shared-components/src/room-list/RoomListHeaderView/RoomListHeaderView.stories.tsx +++ b/packages/shared-components/src/room-list/RoomListHeaderView/RoomListHeaderView.stories.tsx @@ -118,3 +118,9 @@ export const CollapseSections: Story = { collapseSections: "collapse", }, }; + +export const ExpandSections: Story = { + args: { + collapseSections: "expand", + }, +}; diff --git a/packages/shared-components/src/room-list/RoomListHeaderView/RoomListHeaderView.test.tsx b/packages/shared-components/src/room-list/RoomListHeaderView/RoomListHeaderView.test.tsx index d6ce1e9e3f..733fedcdcd 100644 --- a/packages/shared-components/src/room-list/RoomListHeaderView/RoomListHeaderView.test.tsx +++ b/packages/shared-components/src/room-list/RoomListHeaderView/RoomListHeaderView.test.tsx @@ -12,7 +12,7 @@ import React from "react"; import * as stories from "./RoomListHeaderView.stories"; -const { Default, NoComposeMenu, NoSpaceMenu, CollapseSections } = composeStories(stories); +const { Default, NoComposeMenu, NoSpaceMenu, CollapseSections, ExpandSections } = composeStories(stories); describe("RoomListHeaderView", () => { it("renders the default state", () => { @@ -30,6 +30,16 @@ describe("RoomListHeaderView", () => { expect(container).toMatchSnapshot(); }); + it("renders collapse button", () => { + const { container } = render(); + expect(container).toMatchSnapshot(); + }); + + it("renders expand button", () => { + const { container } = render(); + expect(container).toMatchSnapshot(); + }); + it("should bind the collapse all sections action", () => { const { getByRole } = render(); const collapseButton = getByRole("button", { name: "Collapse all sections" }); diff --git a/packages/shared-components/src/room-list/RoomListHeaderView/RoomListHeaderView.tsx b/packages/shared-components/src/room-list/RoomListHeaderView/RoomListHeaderView.tsx index d68fd25b0e..3b17571d54 100644 --- a/packages/shared-components/src/room-list/RoomListHeaderView/RoomListHeaderView.tsx +++ b/packages/shared-components/src/room-list/RoomListHeaderView/RoomListHeaderView.tsx @@ -9,7 +9,7 @@ import React, { type JSX } from "react"; import { IconButton, H1 } from "@vector-im/compound-web"; import ComposeIcon from "@vector-im/compound-design-tokens/assets/web/icons/compose"; import PlusIcon from "@vector-im/compound-design-tokens/assets/web/icons/plus"; -import CollapseAllIcon from "@vector-im/compound-design-tokens/assets/web/icons/collapse-all"; +import { CollapseAllIcon, ExpandAllIcon } from "@vector-im/compound-design-tokens/assets/web/icons"; import { type ViewModel, useViewModel } from "../../core/viewmodel"; import { Flex } from "../../core/utils/Flex"; @@ -182,7 +182,11 @@ export function RoomListHeaderView({ vm }: Readonly): J : _t("room_list|expand_all_sections") } > - + {collapseSections === "collapse" ? ( + + ) : ( + + )} )} diff --git a/packages/shared-components/src/room-list/RoomListHeaderView/__snapshots__/RoomListHeaderView.test.tsx.snap b/packages/shared-components/src/room-list/RoomListHeaderView/__snapshots__/RoomListHeaderView.test.tsx.snap index 380b6419eb..b580ee5012 100644 --- a/packages/shared-components/src/room-list/RoomListHeaderView/__snapshots__/RoomListHeaderView.test.tsx.snap +++ b/packages/shared-components/src/room-list/RoomListHeaderView/__snapshots__/RoomListHeaderView.test.tsx.snap @@ -1,5 +1,327 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html +exports[`RoomListHeaderView > renders collapse button 1`] = ` +
+
+
+
+

+ Rooms +

+ +
+
+ + + +
+
+
+
+`; + +exports[`RoomListHeaderView > renders expand button 1`] = ` +
+
+
+
+

+ Rooms +

+ +
+
+ + + +
+
+
+
+`; + exports[`RoomListHeaderView > renders the default state 1`] = `