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`] = `
+
+
+
+`;
+
+exports[`RoomListHeaderView > renders expand button 1`] = `
+
+
+
+`;
+
exports[`RoomListHeaderView > renders the default state 1`] = `