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 0000000000..bf2eec867d Binary files /dev/null and b/packages/shared-components/__vis__/linux/__baselines__/room-list/RoomListHeaderView/RoomListHeaderView.stories.tsx/expand-sections-auto.png differ 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`] = `