Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
ff6f64e
refactor(room-list): migrate SpaceStore off the legacy room list store
florianduros Jun 29, 2026
f7301f8
feat(room-list)!: remove the legacy room list UI
florianduros Jun 29, 2026
c1981b3
feat(room-list)!: remove the legacy RoomListStore
florianduros Jun 29, 2026
8389887
feat(room-list)!: remove the feature_new_room_list labs flag
florianduros Jun 29, 2026
2468872
feat(room-list)!: remove the dead legacy left-panel resizer
florianduros Jun 30, 2026
4bbd883
feat(room-list)!: update i18n files
florianduros Jun 30, 2026
b649d4f
refactor(room-list): remove the now-unused collapseLhs state
florianduros Jun 30, 2026
4e6eedf
fix(room-list): instantiate message previewers lazily
florianduros Jun 30, 2026
19d29bf
test(room-list): remove `feature_new_room_list` labs flag in e2e tests
florianduros Jun 30, 2026
b6a2529
chore: remove remaining `newRoomList` flag
florianduros Jun 30, 2026
b915f4c
chore: cleanup theme files
florianduros Jun 30, 2026
43824f3
fix: restore the re-resizable TouchEvent polyfill
florianduros Jul 1, 2026
e96050e
chore: remove usage of breadcrumbs settings in BreadcrumbStore
florianduros Jul 1, 2026
5de2608
Revert "fix(room-list): instantiate message previewers lazily"
florianduros Jul 1, 2026
a651961
Merge branch 'develop' into florianduros/remove-old-room-list
florianduros Jul 1, 2026
d1a7da5
chore: remove unused function in BreadCrumbStore
florianduros Jul 1, 2026
aba8adc
test: remove unused fuction of BreadcrumStore in tests
florianduros Jul 1, 2026
0d6094c
test: add tests for RoomResultContextMenu
florianduros Jul 1, 2026
ab7327f
Merge branch 'develop' into florianduros/remove-old-room-list
florianduros Jul 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions apps/desktop/src/macos-titlebar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -115,14 +115,9 @@ export function setupMacosTitleBar(window: BrowserWindow): void {

.mx_LeftPanel::before {
content: "";
height: 20px;
-webkit-app-region: drag;
}

.mx_LeftPanel_newRoomList::before {
/* Aligned with the room header */
height: 13px;
border-right: 1px solid var(--cpd-color-bg-subtle-primary);
-webkit-app-region: drag;
}

.mx_RoomView::before,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ import {
test.describe("Room list custom sections", () => {
test.use({
displayName: "Alice",
labsFlags: ["feature_new_room_list"],
botCreateOpts: {
displayName: "BotBob",
autoAcceptInvites: true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ test.describe("Room list filters and sort", () => {
displayName: "BotBob",
autoAcceptInvites: true,
},
labsFlags: ["feature_new_room_list"],
});

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,6 @@ import { test, expect } from "../../../element-web-test";
import { getHeaderSection } from "./utils";

test.describe("Header section of the room list", () => {
test.use({
labsFlags: ["feature_new_room_list"],
});

test.beforeEach(async ({ page, app, user }) => {
// The toasts are displayed above the search section
await rejectToast(page, "Verify this device");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,6 @@ import { test, expect } from "../../../element-web-test";
import { getRoomListView } from "./utils";

test.describe("Room list panel", () => {
test.use({
labsFlags: ["feature_new_room_list"],
});

test.beforeEach(async ({ page, app, user }) => {
// The toasts are displayed above the search section
await rejectToast(page, "Verify this device");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,6 @@ import { test, expect } from "../../../element-web-test";
import { getSearchSection } from "./utils";

test.describe("Search section of the room list", () => {
test.use({
labsFlags: ["feature_new_room_list"],
});

test.beforeEach(async ({ page, app, user }) => {
// The toasts are displayed above the search section
await rejectToast(page, "Verify this device");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import { assertRoomInSection, dragRoomToSection, getPrimaryFilters, getRoomList,
test.describe("Room list sections", () => {
test.use({
displayName: "Alice",
labsFlags: ["feature_new_room_list"],
botCreateOpts: {
displayName: "BotBob",
autoAcceptInvites: true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,6 @@ test.describe("Room list unread activity toast", () => {
}

test.describe("flat list", () => {
test.use({ labsFlags: ["feature_new_room_list"] });

test.beforeEach(async ({ page, app, user }) => {
// Toasts are displayed above the room list; dismiss the unrelated ones.
await rejectToast(page, "Verify this device");
Expand Down Expand Up @@ -139,8 +137,6 @@ test.describe("Room list unread activity toast", () => {
});

test.describe("sections", () => {
test.use({ labsFlags: ["feature_new_room_list", "feature_room_list_sections"] });

test.beforeEach(async ({ page, app, user }) => {
await rejectToast(page, "Verify this device");
await rejectToast(page, "Notifications");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import { getRoomList } from "./utils";
test.describe("Room list", () => {
test.use({
displayName: "Alice",
labsFlags: ["feature_new_room_list"],
botCreateOpts: {
displayName: "BotBob",
},
Expand Down Expand Up @@ -315,7 +314,7 @@ test.describe("Room list", () => {
});

test.describe("Avatar decoration", () => {
test.use({ labsFlags: ["feature_video_rooms", "feature_new_room_list"] });
test.use({ labsFlags: ["feature_video_rooms"] });

test("should be a public room", { tag: "@screenshot" }, async ({ page, app, user }) => {
// @ts-ignore Visibility enum is not accessible
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@ test.describe("Preferences user settings tab", () => {
const locator = await app.settings.openUserSettings("Preferences");
await use(locator);
},
// display message preview settings
labsFlags: ["feature_new_room_list"],
});

test("should be rendered properly", { tag: "@screenshot" }, async ({ app, page, user, axe }) => {
Expand Down
7 changes: 0 additions & 7 deletions apps/web/res/css/_components.pcss
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@
@import "./compound/_SuccessDialog.pcss";
@import "./structures/_AutoHideScrollbar.pcss";
@import "./structures/_AutocompleteInput.pcss";
@import "./structures/_BackdropPanel.pcss";
@import "./structures/_CompatibilityPage.pcss";
@import "./structures/_ContextualMenu.pcss";
@import "./structures/_ErrorMessage.pcss";
Expand All @@ -72,7 +71,6 @@
@import "./structures/_PictureInPictureDragger.pcss";
@import "./structures/_QuickSettingsButton.pcss";
@import "./structures/_RightPanel.pcss";
@import "./structures/_RoomSearch.pcss";
@import "./structures/_RoomView.pcss";
@import "./structures/_SearchBox.pcss";
@import "./structures/_SpaceHierarchy.pcss";
Expand Down Expand Up @@ -259,8 +257,6 @@
@import "./views/rooms/_IRCLayout.pcss";
@import "./views/rooms/_InvitedIconView.pcss";
@import "./views/rooms/_JumpToBottomButton.pcss";
@import "./views/rooms/_LegacyRoomList.pcss";
@import "./views/rooms/_LegacyRoomListHeader.pcss";
@import "./views/rooms/_LiveContentSummary.pcss";
@import "./views/rooms/_MemberListHeaderView.pcss";
@import "./views/rooms/_MemberListView.pcss";
Expand All @@ -277,15 +273,12 @@
@import "./views/rooms/_ReadReceiptGroup.pcss";
@import "./views/rooms/_ReplyPreview.pcss";
@import "./views/rooms/_ReplyTile.pcss";
@import "./views/rooms/_RoomBreadcrumbs.pcss";
@import "./views/rooms/_RoomHeader.pcss";
@import "./views/rooms/_RoomInfoLine.pcss";
@import "./views/rooms/_RoomKnocksBar.pcss";
@import "./views/rooms/_RoomPreviewBar.pcss";
@import "./views/rooms/_RoomPreviewCard.pcss";
@import "./views/rooms/_RoomSearchAuxPanel.pcss";
@import "./views/rooms/_RoomSublist.pcss";
@import "./views/rooms/_RoomTile.pcss";
@import "./views/rooms/_RoomUpgradeWarningBar.pcss";
@import "./views/rooms/_SendMessageComposer.pcss";
@import "./views/rooms/_Stickers.pcss";
Expand Down
29 changes: 0 additions & 29 deletions apps/web/res/css/structures/_BackdropPanel.pcss

This file was deleted.

143 changes: 4 additions & 139 deletions apps/web/res/css/structures/_LeftPanel.pcss
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ Please see LICENSE files in the repository root for full details.
height: 100%; /* ensure space panel is still scrollable with an outer wrapper */

.mx_LeftPanel_wrapper--user {
background-color: $roomlist-bg-color;
display: flex;
overflow: hidden;
position: relative;
Expand All @@ -57,7 +56,10 @@ Please see LICENSE files in the repository root for full details.
}

.mx_LeftPanel {
background-color: $roomlist-bg-color;
background-color: var(--cpd-color-bg-canvas-default);
/* The room list is not designed to be collapsed to just icons. */
/* 224 + 68(spaces bar) was deemed by design to be a good minimum for the left panel. */
--collapsedWidth: 224px;

/* Create a row-based flexbox for the space panel and the room list */
display: flex;
Expand All @@ -66,119 +68,12 @@ Please see LICENSE files in the repository root for full details.
flex-grow: 1;
overflow: hidden;

/* Note: The 'room list' in this context is actually everything that isn't the tag */
/* panel, such as the menu options, breadcrumbs, filtering, etc */
.mx_LeftPanel_roomListContainer {
background-color: $roomlist-bg-color;
flex: 1 0 0;
min-width: 0;
/* Create another flexbox (this time a column) for the room list components */
display: flex;
flex-direction: column;

.mx_LeftPanel_userHeader {
/* 12px top, 12px sides, 20px bottom (using 13px bottom to account
* for internal whitespace in the breadcrumbs)
*/
padding: 12px;
flex-shrink: 0; /* to convince safari's layout engine the flexbox is fine */

/* Create another flexbox column for the rows to stack within */
display: flex;
flex-direction: column;
}

.mx_LeftPanel_breadcrumbsContainer {
overflow-y: hidden;
overflow-x: scroll;
margin: 12px 12px 0 12px;
flex: 0 0 auto;
/* Create yet another flexbox, this time within the row, to ensure items stay */
/* aligned correctly. This is also a row-based flexbox. */
display: flex;
align-items: center;
contain: content;

&.mx_IndicatorScrollbar_leftOverflow {
mask-image: linear-gradient(90deg, transparent, black 5%);
}

&.mx_IndicatorScrollbar_rightOverflow {
mask-image: linear-gradient(90deg, black, black 95%, transparent);
}

&.mx_IndicatorScrollbar_rightOverflow.mx_IndicatorScrollbar_leftOverflow {
mask-image: linear-gradient(90deg, transparent, black 5%, black 95%, transparent);
}
}

.mx_LeftPanel_filterContainer {
margin: 0 12px;
padding: 12px 0 8px;
border-bottom: 1px solid $quinary-content;

flex-shrink: 0; /* to convince safari's layout engine the flexbox is fine */

/* Create a flexbox to organize the inputs */
display: flex;
align-items: center;

& + .mx_LegacyRoomListHeader {
margin-top: 12px;
}

.mx_LeftPanel_dialPadButton,
.mx_LeftPanel_exploreButton {
width: 20px;
height: 20px;
padding: var(--cpd-space-1-5x);
border-radius: 8px;
background-color: $panel-actions;
margin-left: 8px;
/* For enhanced visibility under contrast control */
outline: 1px solid transparent;

svg {
width: inherit;
height: inherit;
display: block;
color: $secondary-content;
}

&:hover {
background-color: $tertiary-content;

svg {
color: $background;
}
}
}
}

.mx_LegacyRoomListHeader:first-child {
margin-top: 12px;
}

.mx_LeftPanel_roomListWrapper {
/* Make the y-scrollbar more responsive */
padding-right: 2px;
overflow: hidden;
margin-top: 10px; /* so we're not up against the search/filter */
flex: 1 0 0; /* needed in Safari to properly set flex-basis */

&.mx_LeftPanel_roomListWrapper_stickyBottom {
padding-bottom: 32px;
}

&.mx_LeftPanel_roomListWrapper_stickyTop {
padding-top: 32px;
}
}

.mx_LeftPanel_actualRoomListContainer {
position: relative; /* for sticky headers */
height: 100%; /* ensure scrolling still works */
}
}

/* These styles override the defaults for the minimized (66px) layout */
Expand All @@ -189,40 +84,10 @@ Please see LICENSE files in the repository root for full details.

.mx_LeftPanel_roomListContainer {
width: var(--collapsedWidth);

.mx_LeftPanel_userHeader {
flex-direction: row;
justify-content: center;
}

.mx_LeftPanel_filterContainer {
/* Organize the flexbox into a centered column layout */
flex-direction: column;
justify-content: center;

.mx_LeftPanel_dialPadButton {
margin-left: 0;
margin-top: 8px;
background-color: transparent;
}

.mx_LeftPanel_exploreButton {
margin-left: 0;
margin-top: 8px;
}
}
}
}
}

.mx_LeftPanel_newRoomList {
/* Thew new rooms list is not designed to be collapsed to just icons. */
/* 224 + 68(spaces bar) was deemed by design to be a good minimum for the left panel. */
--collapsedWidth: 224px;
/* Important to force the color on ED titlebar until we remove the old room list */
background-color: var(--cpd-color-bg-canvas-default) !important;
}

#left-panel .mx_LeftPanel_wrapper--user {
/*
* Disable background when using the new room list.
Expand Down
2 changes: 0 additions & 2 deletions apps/web/res/css/structures/_QuickSettingsButton.pcss
Original file line number Diff line number Diff line change
Expand Up @@ -110,9 +110,7 @@ Please see LICENSE files in the repository root for full details.
display: flex;
}
}
}

.mx_QuickSettingsButton_ContextMenuWrapper_new_room_list {
.mx_QuickThemeSwitcher {
margin-top: var(--cpd-space-2x);
}
Expand Down
Loading
Loading