New room list: rework spacing of room list item (#29965)

* feat: rework spacing of room list item

* test: update snapshot

* test(e2e): regenerate room list panel screenshots

* test(e2e): regenerate room list screenshots

* test(e2e): update filter screenshot
This commit is contained in:
Florian Duros
2025-05-16 14:29:52 +02:00
committed by GitHub
parent 4dcde7ec7a
commit b56b0f2bd0
29 changed files with 78 additions and 70 deletions

View File

@@ -30,6 +30,9 @@ test.describe("Room list panel", () => {
for (let i = 0; i < 20; i++) { for (let i = 0; i < 20; i++) {
await app.client.createRoom({ name: `room${i}` }); await app.client.createRoom({ name: `room${i}` });
} }
// focus the user menu to avoid to have hover decoration
await page.getByRole("button", { name: "User menu" }).focus();
}); });
test("should render the room list panel", { tag: "@screenshot" }, async ({ page, app, user }) => { test("should render the room list panel", { tag: "@screenshot" }, async ({ page, app, user }) => {

View File

@@ -29,6 +29,9 @@ test.describe("Room list", () => {
test.beforeEach(async ({ page, app, user }) => { test.beforeEach(async ({ page, app, user }) => {
// The notification toast is displayed above the search section // The notification toast is displayed above the search section
await app.closeNotificationToast(); await app.closeNotificationToast();
// focus the user menu to avoid to have hover decoration
await page.getByRole("button", { name: "User menu" }).focus();
}); });
test.describe("Room list", () => { test.describe("Room list", () => {
@@ -241,6 +244,10 @@ test.describe("Room list", () => {
test("should be a public room", { tag: "@screenshot" }, async ({ page, app, user }) => { test("should be a public room", { tag: "@screenshot" }, async ({ page, app, user }) => {
// @ts-ignore Visibility enum is not accessible // @ts-ignore Visibility enum is not accessible
await app.client.createRoom({ name: "public room", visibility: "public" }); await app.client.createRoom({ name: "public room", visibility: "public" });
// focus the user menu to avoid to have hover decoration
await page.getByRole("button", { name: "User menu" }).focus();
const roomListView = getRoomList(page); const roomListView = getRoomList(page);
const publicRoom = roomListView.getByRole("gridcell", { name: "public room" }); const publicRoom = roomListView.getByRole("gridcell", { name: "public room" });
@@ -256,6 +263,10 @@ test.describe("Room list", () => {
const roomListView = getRoomList(page); const roomListView = getRoomList(page);
const videoRoom = roomListView.getByRole("gridcell", { name: "video room" }); const videoRoom = roomListView.getByRole("gridcell", { name: "video room" });
// focus the user menu to avoid to have hover decoration
await page.getByRole("button", { name: "User menu" }).focus();
await expect(videoRoom).toBeVisible(); await expect(videoRoom).toBeVisible();
await expect(videoRoom).toMatchScreenshot("room-list-item-video.png"); await expect(videoRoom).toMatchScreenshot("room-list-item-video.png");
}); });
@@ -328,6 +339,10 @@ test.describe("Room list", () => {
await page.getByRole("menuitemcheckbox", { name: "Show message previews" }).click(); await page.getByRole("menuitemcheckbox", { name: "Show message previews" }).click();
const roomId = await app.client.createRoom({ name: "activity" }); const roomId = await app.client.createRoom({ name: "activity" });
// focus the user menu to avoid to have hover decoration
await page.getByRole("button", { name: "User menu" }).focus();
await app.client.inviteUser(roomId, bot.credentials.userId); await app.client.inviteUser(roomId, bot.credentials.userId);
await bot.joinRoom(roomId); await bot.joinRoom(roomId);
await bot.sendMessage(roomId, "I am a robot. Beep."); await bot.sendMessage(roomId, "I am a robot. Beep.");
@@ -376,8 +391,8 @@ test.describe("Room list", () => {
await room.getByRole("button", { name: "More Options" }).click(); await room.getByRole("button", { name: "More Options" }).click();
await page.getByRole("menuitem", { name: "mark as unread" }).click(); await page.getByRole("menuitem", { name: "mark as unread" }).click();
// Remove hover on the room list item // focus the user menu to avoid to have hover decoration
await roomListView.hover(); await page.getByRole("button", { name: "User menu" }).focus();
await expect(room).toMatchScreenshot("room-list-item-mark-as-unread.png"); await expect(room).toMatchScreenshot("room-list-item-mark-as-unread.png");
}); });

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -7,19 +7,19 @@
/** /**
* The RoomListItemView has the following structure: * The RoomListItemView has the following structure:
* button----------------------------------------| * button--------------------------------------------------|
* | <-12px-> container--------------------------| * | <-12px-> container------------------------------------|
* | | room avatar <-12px-> content-----| * | | room avatar <-8px-> content----------------|
* | | | room_name | * | | | room_name <- 20px ->|
* | | | ----------| <-- border * | | | --------------------| <-- border
* |---------------------------------------------| * |-------------------------------------------------------|
*/ */
.mx_RoomListItemView { .mx_RoomListItemView {
all: unset; all: unset;
cursor: pointer; cursor: pointer;
.mx_RoomListItemView_container { .mx_RoomListItemView_container {
padding-left: var(--cpd-space-2x); padding-left: var(--cpd-space-3x);
font: var(--cpd-font-body-md-regular); font: var(--cpd-font-body-md-regular);
height: 100%; height: 100%;
@@ -30,6 +30,7 @@
border-bottom: var(--cpd-border-width-0-5) solid var(--cpd-color-bg-subtle-secondary); border-bottom: var(--cpd-border-width-0-5) solid var(--cpd-color-bg-subtle-secondary);
box-sizing: border-box; box-sizing: border-box;
min-width: 0; min-width: 0;
padding-right: var(--cpd-space-5x);
.mx_RoomListItemView_text { .mx_RoomListItemView_text {
min-width: 0; min-width: 0;
@@ -56,26 +57,20 @@
background-color: var(--cpd-color-bg-action-secondary-hovered); background-color: var(--cpd-color-bg-action-secondary-hovered);
} }
.mx_RoomListItemView_menu_open .mx_RoomListItemView_content { .mx_RoomListItemView_menu_open .mx_RoomListItemView_container .mx_RoomListItemView_content {
padding-right: var(--cpd-space-1-5x); /**
* The figma uses 16px padding (--cpd-space-4x) but due to https://github.com/element-hq/compound-web/issues/331
* the icon size of the menu is 18px instead of 20px with a different internal padding
* We need to use 18px to align the icon with the others icons
* 18px is not available in compound spacing
*/
padding-right: 18px;
} }
.mx_RoomListItemView_selected { .mx_RoomListItemView_selected {
background-color: var(--cpd-color-bg-action-secondary-pressed); background-color: var(--cpd-color-bg-action-secondary-pressed);
} }
.mx_RoomListItemView_notification_decoration {
.mx_RoomListItemView_content {
padding-right: var(--cpd-space-2x);
}
}
.mx_RoomListItemView_empty {
.mx_RoomListItemView_content {
padding-right: var(--cpd-space-3x);
}
}
.mx_RoomListItemView_bold .mx_RoomListItemView_roomName { .mx_RoomListItemView_bold .mx_RoomListItemView_roomName {
font: var(--cpd-font-body-md-semibold); font: var(--cpd-font-body-md-semibold);
} }

View File

@@ -64,7 +64,7 @@ export function NotificationDecoration({
<Flex <Flex
align="center" align="center"
justify="center" justify="center"
gap="var(--cpd-space-1-5x)" gap="var(--cpd-space-1x)"
{...props} {...props}
data-testid="notification-decoration" data-testid="notification-decoration"
> >

View File

@@ -47,7 +47,7 @@ export function RoomListItemMenuView({ room, setMenuOpen }: RoomListItemMenuView
const vm = useRoomListItemMenuViewModel(room); const vm = useRoomListItemMenuViewModel(room);
return ( return (
<Flex className="mx_RoomListItemMenuView" align="center" gap="var(--cpd-space-0-5x)"> <Flex className="mx_RoomListItemMenuView" align="center" gap="var(--cpd-space-1x)">
{vm.showMoreOptionsMenu && <MoreOptionsMenu setMenuOpen={setMenuOpen} vm={vm} />} {vm.showMoreOptionsMenu && <MoreOptionsMenu setMenuOpen={setMenuOpen} vm={vm} />}
{vm.showNotificationMenu && <NotificationMenu setMenuOpen={setMenuOpen} vm={vm} />} {vm.showNotificationMenu && <NotificationMenu setMenuOpen={setMenuOpen} vm={vm} />}
</Flex> </Flex>

View File

@@ -47,15 +47,10 @@ export const RoomListItemView = memo(function RoomListItemView({
const showHoverDecoration = isMenuOpen || isHover; const showHoverDecoration = isMenuOpen || isHover;
const showHoverMenu = showHoverDecoration && vm.showHoverMenu; const showHoverMenu = showHoverDecoration && vm.showHoverMenu;
const isInvitation = vm.notificationState.invited;
const isNotificationDecorationVisible = isInvitation || (!showHoverDecoration && vm.showNotificationDecoration);
return ( return (
<button <button
ref={ref} ref={ref}
className={classNames("mx_RoomListItemView", { className={classNames("mx_RoomListItemView", {
mx_RoomListItemView_empty: !isNotificationDecorationVisible && !showHoverDecoration,
mx_RoomListItemView_notification_decoration: isNotificationDecorationVisible,
mx_RoomListItemView_hover: showHoverDecoration, mx_RoomListItemView_hover: showHoverDecoration,
mx_RoomListItemView_menu_open: showHoverMenu, mx_RoomListItemView_menu_open: showHoverMenu,
mx_RoomListItemView_selected: isSelected, mx_RoomListItemView_selected: isSelected,
@@ -83,7 +78,7 @@ export const RoomListItemView = memo(function RoomListItemView({
<RoomAvatarView room={room} /> <RoomAvatarView room={room} />
<Flex <Flex
className="mx_RoomListItemView_content" className="mx_RoomListItemView_content"
gap="var(--cpd-space-3x)" gap="var(--cpd-space-2x)"
align="center" align="center"
justify="space-between" justify="space-between"
> >

View File

@@ -25,7 +25,7 @@ exports[`<RoomList /> should render a room list 1`] = `
<button <button
aria-label="Open room room0" aria-label="Open room room0"
aria-selected="false" aria-selected="false"
class="mx_RoomListItemView mx_RoomListItemView_empty" class="mx_RoomListItemView"
role="gridcell" role="gridcell"
style="height: 48px; left: 0px; position: absolute; top: 0px; width: 100%;" style="height: 48px; left: 0px; position: absolute; top: 0px; width: 100%;"
tabindex="0" tabindex="0"
@@ -56,7 +56,7 @@ exports[`<RoomList /> should render a room list 1`] = `
</span> </span>
<div <div
class="mx_Flex mx_RoomListItemView_content" class="mx_Flex mx_RoomListItemView_content"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-3x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-2x); --mx-flex-wrap: nowrap;"
> >
<div <div
class="mx_RoomListItemView_text" class="mx_RoomListItemView_text"
@@ -77,7 +77,7 @@ exports[`<RoomList /> should render a room list 1`] = `
<button <button
aria-label="Open room room1" aria-label="Open room room1"
aria-selected="false" aria-selected="false"
class="mx_RoomListItemView mx_RoomListItemView_empty" class="mx_RoomListItemView"
role="gridcell" role="gridcell"
style="height: 48px; left: 0px; position: absolute; top: 48px; width: 100%;" style="height: 48px; left: 0px; position: absolute; top: 48px; width: 100%;"
tabindex="-1" tabindex="-1"
@@ -108,7 +108,7 @@ exports[`<RoomList /> should render a room list 1`] = `
</span> </span>
<div <div
class="mx_Flex mx_RoomListItemView_content" class="mx_Flex mx_RoomListItemView_content"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-3x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-2x); --mx-flex-wrap: nowrap;"
> >
<div <div
class="mx_RoomListItemView_text" class="mx_RoomListItemView_text"
@@ -129,7 +129,7 @@ exports[`<RoomList /> should render a room list 1`] = `
<button <button
aria-label="Open room room2" aria-label="Open room room2"
aria-selected="false" aria-selected="false"
class="mx_RoomListItemView mx_RoomListItemView_empty" class="mx_RoomListItemView"
role="gridcell" role="gridcell"
style="height: 48px; left: 0px; position: absolute; top: 96px; width: 100%;" style="height: 48px; left: 0px; position: absolute; top: 96px; width: 100%;"
tabindex="-1" tabindex="-1"
@@ -160,7 +160,7 @@ exports[`<RoomList /> should render a room list 1`] = `
</span> </span>
<div <div
class="mx_Flex mx_RoomListItemView_content" class="mx_Flex mx_RoomListItemView_content"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-3x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-2x); --mx-flex-wrap: nowrap;"
> >
<div <div
class="mx_RoomListItemView_text" class="mx_RoomListItemView_text"
@@ -181,7 +181,7 @@ exports[`<RoomList /> should render a room list 1`] = `
<button <button
aria-label="Open room room3" aria-label="Open room room3"
aria-selected="false" aria-selected="false"
class="mx_RoomListItemView mx_RoomListItemView_empty" class="mx_RoomListItemView"
role="gridcell" role="gridcell"
style="height: 48px; left: 0px; position: absolute; top: 144px; width: 100%;" style="height: 48px; left: 0px; position: absolute; top: 144px; width: 100%;"
tabindex="-1" tabindex="-1"
@@ -212,7 +212,7 @@ exports[`<RoomList /> should render a room list 1`] = `
</span> </span>
<div <div
class="mx_Flex mx_RoomListItemView_content" class="mx_Flex mx_RoomListItemView_content"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-3x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-2x); --mx-flex-wrap: nowrap;"
> >
<div <div
class="mx_RoomListItemView_text" class="mx_RoomListItemView_text"
@@ -233,7 +233,7 @@ exports[`<RoomList /> should render a room list 1`] = `
<button <button
aria-label="Open room room4" aria-label="Open room room4"
aria-selected="false" aria-selected="false"
class="mx_RoomListItemView mx_RoomListItemView_empty" class="mx_RoomListItemView"
role="gridcell" role="gridcell"
style="height: 48px; left: 0px; position: absolute; top: 192px; width: 100%;" style="height: 48px; left: 0px; position: absolute; top: 192px; width: 100%;"
tabindex="-1" tabindex="-1"
@@ -264,7 +264,7 @@ exports[`<RoomList /> should render a room list 1`] = `
</span> </span>
<div <div
class="mx_Flex mx_RoomListItemView_content" class="mx_Flex mx_RoomListItemView_content"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-3x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-2x); --mx-flex-wrap: nowrap;"
> >
<div <div
class="mx_RoomListItemView_text" class="mx_RoomListItemView_text"
@@ -285,7 +285,7 @@ exports[`<RoomList /> should render a room list 1`] = `
<button <button
aria-label="Open room room5" aria-label="Open room room5"
aria-selected="false" aria-selected="false"
class="mx_RoomListItemView mx_RoomListItemView_empty" class="mx_RoomListItemView"
role="gridcell" role="gridcell"
style="height: 48px; left: 0px; position: absolute; top: 240px; width: 100%;" style="height: 48px; left: 0px; position: absolute; top: 240px; width: 100%;"
tabindex="-1" tabindex="-1"
@@ -316,7 +316,7 @@ exports[`<RoomList /> should render a room list 1`] = `
</span> </span>
<div <div
class="mx_Flex mx_RoomListItemView_content" class="mx_Flex mx_RoomListItemView_content"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-3x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-2x); --mx-flex-wrap: nowrap;"
> >
<div <div
class="mx_RoomListItemView_text" class="mx_RoomListItemView_text"
@@ -337,7 +337,7 @@ exports[`<RoomList /> should render a room list 1`] = `
<button <button
aria-label="Open room room6" aria-label="Open room room6"
aria-selected="false" aria-selected="false"
class="mx_RoomListItemView mx_RoomListItemView_empty" class="mx_RoomListItemView"
role="gridcell" role="gridcell"
style="height: 48px; left: 0px; position: absolute; top: 288px; width: 100%;" style="height: 48px; left: 0px; position: absolute; top: 288px; width: 100%;"
tabindex="-1" tabindex="-1"
@@ -368,7 +368,7 @@ exports[`<RoomList /> should render a room list 1`] = `
</span> </span>
<div <div
class="mx_Flex mx_RoomListItemView_content" class="mx_Flex mx_RoomListItemView_content"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-3x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-2x); --mx-flex-wrap: nowrap;"
> >
<div <div
class="mx_RoomListItemView_text" class="mx_RoomListItemView_text"
@@ -389,7 +389,7 @@ exports[`<RoomList /> should render a room list 1`] = `
<button <button
aria-label="Open room room7" aria-label="Open room room7"
aria-selected="false" aria-selected="false"
class="mx_RoomListItemView mx_RoomListItemView_empty" class="mx_RoomListItemView"
role="gridcell" role="gridcell"
style="height: 48px; left: 0px; position: absolute; top: 336px; width: 100%;" style="height: 48px; left: 0px; position: absolute; top: 336px; width: 100%;"
tabindex="-1" tabindex="-1"
@@ -420,7 +420,7 @@ exports[`<RoomList /> should render a room list 1`] = `
</span> </span>
<div <div
class="mx_Flex mx_RoomListItemView_content" class="mx_Flex mx_RoomListItemView_content"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-3x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-2x); --mx-flex-wrap: nowrap;"
> >
<div <div
class="mx_RoomListItemView_text" class="mx_RoomListItemView_text"
@@ -441,7 +441,7 @@ exports[`<RoomList /> should render a room list 1`] = `
<button <button
aria-label="Open room room8" aria-label="Open room room8"
aria-selected="false" aria-selected="false"
class="mx_RoomListItemView mx_RoomListItemView_empty" class="mx_RoomListItemView"
role="gridcell" role="gridcell"
style="height: 48px; left: 0px; position: absolute; top: 384px; width: 100%;" style="height: 48px; left: 0px; position: absolute; top: 384px; width: 100%;"
tabindex="-1" tabindex="-1"
@@ -472,7 +472,7 @@ exports[`<RoomList /> should render a room list 1`] = `
</span> </span>
<div <div
class="mx_Flex mx_RoomListItemView_content" class="mx_Flex mx_RoomListItemView_content"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-3x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-2x); --mx-flex-wrap: nowrap;"
> >
<div <div
class="mx_RoomListItemView_text" class="mx_RoomListItemView_text"
@@ -493,7 +493,7 @@ exports[`<RoomList /> should render a room list 1`] = `
<button <button
aria-label="Open room room9" aria-label="Open room room9"
aria-selected="false" aria-selected="false"
class="mx_RoomListItemView mx_RoomListItemView_empty" class="mx_RoomListItemView"
role="gridcell" role="gridcell"
style="height: 48px; left: 0px; position: absolute; top: 432px; width: 100%;" style="height: 48px; left: 0px; position: absolute; top: 432px; width: 100%;"
tabindex="-1" tabindex="-1"
@@ -524,7 +524,7 @@ exports[`<RoomList /> should render a room list 1`] = `
</span> </span>
<div <div
class="mx_Flex mx_RoomListItemView_content" class="mx_Flex mx_RoomListItemView_content"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-3x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-2x); --mx-flex-wrap: nowrap;"
> >
<div <div
class="mx_RoomListItemView_text" class="mx_RoomListItemView_text"

View File

@@ -4,7 +4,7 @@ exports[`<RoomListItemMenuView /> should render the more options menu 1`] = `
<DocumentFragment> <DocumentFragment>
<div <div
class="mx_Flex mx_RoomListItemMenuView" class="mx_Flex mx_RoomListItemMenuView"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: start; --mx-flex-gap: var(--cpd-space-0-5x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: start; --mx-flex-gap: var(--cpd-space-1x); --mx-flex-wrap: nowrap;"
> >
<button <button
aria-disabled="false" aria-disabled="false"
@@ -79,7 +79,7 @@ exports[`<RoomListItemMenuView /> should render the notification options menu 1`
<DocumentFragment> <DocumentFragment>
<div <div
class="mx_Flex mx_RoomListItemMenuView" class="mx_Flex mx_RoomListItemMenuView"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: start; --mx-flex-gap: var(--cpd-space-0-5x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: start; --mx-flex-gap: var(--cpd-space-1x); --mx-flex-wrap: nowrap;"
> >
<button <button
aria-disabled="false" aria-disabled="false"

View File

@@ -5,7 +5,7 @@ exports[`<RoomListItemView /> should be selected if isSelected=true 1`] = `
<button <button
aria-label="Open room room1" aria-label="Open room room1"
aria-selected="true" aria-selected="true"
class="mx_RoomListItemView mx_RoomListItemView_empty mx_RoomListItemView_selected" class="mx_RoomListItemView mx_RoomListItemView_selected"
tabindex="-1" tabindex="-1"
type="button" type="button"
> >
@@ -34,7 +34,7 @@ exports[`<RoomListItemView /> should be selected if isSelected=true 1`] = `
</span> </span>
<div <div
class="mx_Flex mx_RoomListItemView_content" class="mx_Flex mx_RoomListItemView_content"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-3x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-2x); --mx-flex-wrap: nowrap;"
> >
<div <div
class="mx_RoomListItemView_text" class="mx_RoomListItemView_text"
@@ -60,7 +60,7 @@ exports[`<RoomListItemView /> should display notification decoration 1`] = `
<button <button
aria-label="Open room room1" aria-label="Open room room1"
aria-selected="false" aria-selected="false"
class="mx_RoomListItemView mx_RoomListItemView_notification_decoration" class="mx_RoomListItemView"
tabindex="-1" tabindex="-1"
type="button" type="button"
> >
@@ -89,7 +89,7 @@ exports[`<RoomListItemView /> should display notification decoration 1`] = `
</span> </span>
<div <div
class="mx_Flex mx_RoomListItemView_content" class="mx_Flex mx_RoomListItemView_content"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-3x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-2x); --mx-flex-wrap: nowrap;"
> >
<div <div
class="mx_RoomListItemView_text" class="mx_RoomListItemView_text"
@@ -108,7 +108,7 @@ exports[`<RoomListItemView /> should display notification decoration 1`] = `
aria-hidden="true" aria-hidden="true"
class="mx_Flex" class="mx_Flex"
data-testid="notification-decoration" data-testid="notification-decoration"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: center; --mx-flex-gap: var(--cpd-space-1-5x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: center; --mx-flex-gap: var(--cpd-space-1x); --mx-flex-wrap: nowrap;"
> >
<span <span
class="_unread-counter_9mg0k_8" class="_unread-counter_9mg0k_8"
@@ -127,7 +127,7 @@ exports[`<RoomListItemView /> should render a room item 1`] = `
<button <button
aria-label="Open room room1" aria-label="Open room room1"
aria-selected="false" aria-selected="false"
class="mx_RoomListItemView mx_RoomListItemView_empty" class="mx_RoomListItemView"
tabindex="-1" tabindex="-1"
type="button" type="button"
> >
@@ -156,7 +156,7 @@ exports[`<RoomListItemView /> should render a room item 1`] = `
</span> </span>
<div <div
class="mx_Flex mx_RoomListItemView_content" class="mx_Flex mx_RoomListItemView_content"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-3x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-2x); --mx-flex-wrap: nowrap;"
> >
<div <div
class="mx_RoomListItemView_text" class="mx_RoomListItemView_text"
@@ -182,7 +182,7 @@ exports[`<RoomListItemView /> should render a room item with a message preview 1
<button <button
aria-label="Open room room1" aria-label="Open room room1"
aria-selected="false" aria-selected="false"
class="mx_RoomListItemView mx_RoomListItemView_empty" class="mx_RoomListItemView"
tabindex="-1" tabindex="-1"
type="button" type="button"
> >
@@ -211,7 +211,7 @@ exports[`<RoomListItemView /> should render a room item with a message preview 1
</span> </span>
<div <div
class="mx_Flex mx_RoomListItemView_content" class="mx_Flex mx_RoomListItemView_content"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-3x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: space-between; --mx-flex-gap: var(--cpd-space-2x); --mx-flex-wrap: nowrap;"
> >
<div <div
class="mx_RoomListItemView_text" class="mx_RoomListItemView_text"

View File

@@ -5,7 +5,7 @@ exports[`<NotificationDecoration /> should render the activity decoration 1`] =
<div <div
class="mx_Flex" class="mx_Flex"
data-testid="notification-decoration" data-testid="notification-decoration"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: center; --mx-flex-gap: var(--cpd-space-1-5x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: center; --mx-flex-gap: var(--cpd-space-1x); --mx-flex-wrap: nowrap;"
> >
<div <div
class="_unread_1k06b_8" class="_unread_1k06b_8"
@@ -21,7 +21,7 @@ exports[`<NotificationDecoration /> should render the invitation decoration 1`]
<div <div
class="mx_Flex" class="mx_Flex"
data-testid="notification-decoration" data-testid="notification-decoration"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: center; --mx-flex-gap: var(--cpd-space-1-5x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: center; --mx-flex-gap: var(--cpd-space-1x); --mx-flex-wrap: nowrap;"
> >
<svg <svg
fill="var(--cpd-color-icon-accent-primary)" fill="var(--cpd-color-icon-accent-primary)"
@@ -43,7 +43,7 @@ exports[`<NotificationDecoration /> should render the mention decoration 1`] = `
<div <div
class="mx_Flex" class="mx_Flex"
data-testid="notification-decoration" data-testid="notification-decoration"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: center; --mx-flex-gap: var(--cpd-space-1-5x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: center; --mx-flex-gap: var(--cpd-space-1x); --mx-flex-wrap: nowrap;"
> >
<svg <svg
fill="var(--cpd-color-icon-accent-primary)" fill="var(--cpd-color-icon-accent-primary)"
@@ -70,7 +70,7 @@ exports[`<NotificationDecoration /> should render the muted decoration 1`] = `
<div <div
class="mx_Flex" class="mx_Flex"
data-testid="notification-decoration" data-testid="notification-decoration"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: center; --mx-flex-gap: var(--cpd-space-1-5x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: center; --mx-flex-gap: var(--cpd-space-1x); --mx-flex-wrap: nowrap;"
> >
<svg <svg
fill="var(--cpd-color-icon-tertiary)" fill="var(--cpd-color-icon-tertiary)"
@@ -95,7 +95,7 @@ exports[`<NotificationDecoration /> should render the notification decoration 1`
<div <div
class="mx_Flex" class="mx_Flex"
data-testid="notification-decoration" data-testid="notification-decoration"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: center; --mx-flex-gap: var(--cpd-space-1-5x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: center; --mx-flex-gap: var(--cpd-space-1x); --mx-flex-wrap: nowrap;"
> >
<span <span
class="_unread-counter_9mg0k_8" class="_unread-counter_9mg0k_8"
@@ -111,7 +111,7 @@ exports[`<NotificationDecoration /> should render the notification decoration wi
<div <div
class="mx_Flex" class="mx_Flex"
data-testid="notification-decoration" data-testid="notification-decoration"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: center; --mx-flex-gap: var(--cpd-space-1-5x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: center; --mx-flex-gap: var(--cpd-space-1x); --mx-flex-wrap: nowrap;"
> >
<div <div
class="_unread-counter_9mg0k_8" class="_unread-counter_9mg0k_8"
@@ -125,7 +125,7 @@ exports[`<NotificationDecoration /> should render the unset message decoration 1
<div <div
class="mx_Flex" class="mx_Flex"
data-testid="notification-decoration" data-testid="notification-decoration"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: center; --mx-flex-gap: var(--cpd-space-1-5x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: center; --mx-flex-gap: var(--cpd-space-1x); --mx-flex-wrap: nowrap;"
> >
<svg <svg
fill="var(--cpd-color-icon-critical-primary)" fill="var(--cpd-color-icon-critical-primary)"
@@ -147,7 +147,7 @@ exports[`<NotificationDecoration /> should render the video decoration 1`] = `
<div <div
class="mx_Flex" class="mx_Flex"
data-testid="notification-decoration" data-testid="notification-decoration"
style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: center; --mx-flex-gap: var(--cpd-space-1-5x); --mx-flex-wrap: nowrap;" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: center; --mx-flex-gap: var(--cpd-space-1x); --mx-flex-wrap: nowrap;"
> >
<svg <svg
fill="var(--cpd-color-icon-accent-primary)" fill="var(--cpd-color-icon-accent-primary)"