diff --git a/res/css/_common.scss b/res/css/_common.scss
index fa91532540..f2d3a0e54b 100644
--- a/res/css/_common.scss
+++ b/res/css/_common.scss
@@ -226,7 +226,7 @@ input[type=text]:focus, input[type=password]:focus, textarea:focus {
}
#mx_theme_tertiaryAccentColor {
- color: $roomsublist-label-bg-color;
+ color: $tertiary-accent-color;
}
/* Expected z-indexes for dialogs:
diff --git a/res/css/_components.scss b/res/css/_components.scss
index 27eebf0ea9..23e4af780a 100644
--- a/res/css/_components.scss
+++ b/res/css/_components.scss
@@ -12,7 +12,6 @@
@import "./structures/_HeaderButtons.scss";
@import "./structures/_HomePage.scss";
@import "./structures/_LeftPanel.scss";
-@import "./structures/_LeftPanel2.scss";
@import "./structures/_MainSplit.scss";
@import "./structures/_MatrixChat.scss";
@import "./structures/_MyGroups.scss";
@@ -21,14 +20,12 @@
@import "./structures/_RoomDirectory.scss";
@import "./structures/_RoomSearch.scss";
@import "./structures/_RoomStatusBar.scss";
-@import "./structures/_RoomSubList.scss";
@import "./structures/_RoomView.scss";
@import "./structures/_ScrollPanel.scss";
@import "./structures/_SearchBox.scss";
@import "./structures/_TabbedView.scss";
@import "./structures/_TagPanel.scss";
@import "./structures/_ToastContainer.scss";
-@import "./structures/_TopLeftMenuButton.scss";
@import "./structures/_UploadBar.scss";
@import "./structures/_UserMenu.scss";
@import "./structures/_ViewSource.scss";
@@ -167,7 +164,6 @@
@import "./views/rooms/_EventTile.scss";
@import "./views/rooms/_GroupLayout.scss";
@import "./views/rooms/_IRCLayout.scss";
-@import "./views/rooms/_InviteOnlyIcon.scss";
@import "./views/rooms/_JumpToBottomButton.scss";
@import "./views/rooms/_LinkPreviewWidget.scss";
@import "./views/rooms/_MemberInfo.scss";
@@ -180,23 +176,18 @@
@import "./views/rooms/_PresenceLabel.scss";
@import "./views/rooms/_ReplyPreview.scss";
@import "./views/rooms/_RoomBreadcrumbs.scss";
-@import "./views/rooms/_RoomBreadcrumbs2.scss";
-@import "./views/rooms/_RoomDropTarget.scss";
@import "./views/rooms/_RoomHeader.scss";
@import "./views/rooms/_RoomList.scss";
-@import "./views/rooms/_RoomList2.scss";
@import "./views/rooms/_RoomPreviewBar.scss";
@import "./views/rooms/_RoomRecoveryReminder.scss";
-@import "./views/rooms/_RoomSublist2.scss";
+@import "./views/rooms/_RoomSublist.scss";
@import "./views/rooms/_RoomTile.scss";
-@import "./views/rooms/_RoomTile2.scss";
@import "./views/rooms/_RoomTileIcon.scss";
@import "./views/rooms/_RoomUpgradeWarningBar.scss";
@import "./views/rooms/_SearchBar.scss";
@import "./views/rooms/_SendMessageComposer.scss";
@import "./views/rooms/_Stickers.scss";
@import "./views/rooms/_TopUnreadMessagesBar.scss";
-@import "./views/rooms/_UserOnlineDot.scss";
@import "./views/rooms/_WhoIsTypingTile.scss";
@import "./views/settings/_AvatarSetting.scss";
@import "./views/settings/_CrossSigningPanel.scss";
@@ -227,6 +218,4 @@
@import "./views/verification/_VerificationShowSas.scss";
@import "./views/voip/_CallContainer.scss";
@import "./views/voip/_CallView.scss";
-@import "./views/voip/_CallView2.scss";
-@import "./views/voip/_IncomingCallbox.scss";
@import "./views/voip/_VideoView.scss";
diff --git a/res/css/structures/_LeftPanel.scss b/res/css/structures/_LeftPanel.scss
index 35d9f0e7da..1673092c9e 100644
--- a/res/css/structures/_LeftPanel.scss
+++ b/res/css/structures/_LeftPanel.scss
@@ -1,6 +1,5 @@
/*
-Copyright 2015, 2016 OpenMarket Ltd
-Copyright 2018 New Vector Ltd
+Copyright 2020 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -15,164 +14,182 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-.mx_LeftPanel_container {
- display: flex;
- /* LeftPanel 260px */
- min-width: 260px;
- max-width: 50%;
- flex: 0 0 auto;
-}
-
-.mx_LeftPanel_container.collapsed {
- min-width: unset;
- /* Collapsed LeftPanel 50px */
- flex: 0 0 50px;
-}
-
-.mx_LeftPanel_container.collapsed.mx_LeftPanel_container_hasTagPanel {
- /* TagPanel 70px + Collapsed LeftPanel 50px */
- flex: 0 0 120px;
-}
-
-.mx_LeftPanel_tagPanelContainer {
- flex: 0 0 70px;
- height: 100%;
-}
-
-.mx_LeftPanel_hideButton {
- position: absolute;
- top: 10px;
- right: 0px;
- padding: 8px;
- cursor: pointer;
-}
+$tagPanelWidth: 56px; // only applies in this file, used for calculations
.mx_LeftPanel {
- flex: 1;
- overflow-x: hidden;
- display: flex;
- flex-direction: column;
- min-height: 0;
-}
+ background-color: $roomlist-bg-color;
+ min-width: 260px;
+ max-width: 50%;
-.mx_LeftPanel .mx_AppTile_mini {
- height: 132px;
-}
-
-.mx_LeftPanel .mx_RoomList_scrollbar {
- order: 1;
-
- flex: 1 1 0;
-
- overflow-y: auto;
- z-index: 6;
-}
-
-.mx_LeftPanel .mx_BottomLeftMenu {
- order: 3;
-
- border-top: 1px solid $panel-divider-color;
- margin-left: 16px; /* gutter */
- margin-right: 16px; /* gutter */
- flex: 0 0 60px;
- z-index: 1;
-}
-
-.mx_LeftPanel_container.collapsed .mx_BottomLeftMenu {
- flex: 0 0 160px;
- margin-bottom: 9px;
-}
-
-.mx_LeftPanel .mx_BottomLeftMenu_options {
- margin-top: 18px;
-}
-
-.mx_BottomLeftMenu_options object {
- pointer-events: none;
-}
-
-.mx_BottomLeftMenu_options > div {
- display: inline-block;
-}
-
-.mx_BottomLeftMenu_options .mx_RoleButton {
- margin-left: 0px;
- margin-right: 10px;
- height: 30px;
-}
-
-.mx_BottomLeftMenu_options .mx_BottomLeftMenu_settings {
- float: right;
-}
-
-.mx_BottomLeftMenu_options .mx_BottomLeftMenu_settings .mx_RoleButton {
- margin-right: 0px;
-}
-
-.mx_LeftPanel_container.collapsed .mx_BottomLeftMenu_settings {
- float: none;
-}
-
-.mx_MatrixChat_useCompactLayout {
- .mx_LeftPanel .mx_BottomLeftMenu {
- flex: 0 0 50px;
- }
-
- .mx_LeftPanel_container.collapsed .mx_BottomLeftMenu {
- flex: 0 0 160px;
- }
-
- .mx_LeftPanel .mx_BottomLeftMenu_options {
- margin-top: 12px;
- }
-}
-
-.mx_LeftPanel_exploreAndFilterRow {
+ // Create a row-based flexbox for the TagPanel and the room list
display: flex;
- .mx_SearchBox {
- flex: 1 1 0;
- min-width: 0;
- margin: 4px 9px 1px 9px;
- }
-}
+ .mx_LeftPanel_tagPanelContainer {
+ flex-grow: 0;
+ flex-shrink: 0;
+ flex-basis: $tagPanelWidth;
+ height: 100%;
-.mx_LeftPanel_explore {
- flex: 0 0 50%;
- overflow: hidden;
- transition: flex-basis 0.2s;
- box-sizing: border-box;
+ // Create another flexbox so the TagPanel fills the container
+ display: flex;
- &.mx_LeftPanel_explore_hidden {
- flex-basis: 0;
+ // TagPanel handles its own CSS
}
- .mx_AccessibleButton {
- font-size: $font-14px;
- margin: 4px 0 1px 9px;
- padding: 9px;
- padding-left: 42px;
- font-weight: 600;
- color: $notice-secondary-color;
- position: relative;
- border-radius: 4px;
+ &:not(.mx_LeftPanel_hasTagPanel) {
+ .mx_LeftPanel_roomListContainer {
+ width: 100%;
+ }
+ }
- &:hover {
- background-color: $primary-bg-color;
+ // 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 {
+ width: calc(100% - $tagPanelWidth);
+ background-color: $roomlist-bg-color;
+
+ // 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;
}
- &::before {
- cursor: pointer;
- mask: url('$(res)/img/explore.svg');
- mask-repeat: no-repeat;
- mask-position: center center;
- content: "";
- left: 14px;
- top: 10px;
- width: 16px;
- height: 16px;
- background-color: $notice-secondary-color;
- position: absolute;
+ .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;
+
+ &.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-left: 12px;
+ margin-right: 12px;
+
+ 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_RoomSearch_expanded + .mx_LeftPanel_exploreButton {
+ // Cheaty way to return the occupied space to the filter input
+ flex-basis: 0;
+ margin: 0;
+ width: 0;
+
+ // Don't forget to hide the masked ::before icon,
+ // using display:none or visibility:hidden would break accessibility
+ &::before {
+ content: none;
+ }
+ }
+
+ .mx_LeftPanel_exploreButton {
+ width: 28px;
+ height: 28px;
+ border-radius: 20px;
+ background-color: $roomlist-button-bg-color;
+ position: relative;
+ margin-left: 8px;
+
+ &::before {
+ content: '';
+ position: absolute;
+ top: 6px;
+ left: 6px;
+ width: 16px;
+ height: 16px;
+ mask-image: url('$(res)/img/feather-customised/compass.svg');
+ mask-position: center;
+ mask-size: contain;
+ mask-repeat: no-repeat;
+ background: $primary-fg-color;
+ }
+ }
+ }
+
+ .mx_LeftPanel_roomListWrapper {
+ // Create a flexbox to ensure the containing items cause appropriate overflow.
+ display: flex;
+
+ flex-grow: 1;
+ overflow: hidden;
+ min-height: 0;
+ margin-top: 10px; // so we're not up against the search/filter
+
+ &.mx_LeftPanel_roomListWrapper_stickyBottom {
+ padding-bottom: 32px;
+ }
+
+ &.mx_LeftPanel_roomListWrapper_stickyTop {
+ padding-top: 32px;
+ }
+ }
+
+ .mx_LeftPanel_actualRoomListContainer {
+ flex-grow: 1; // fill the available space
+ overflow-y: auto;
+ width: 100%;
+ max-width: 100%;
+ position: relative; // for sticky headers
+
+ // Create a flexbox to trick the layout engine
+ display: flex;
+ }
+ }
+
+ // These styles override the defaults for the minimized (66px) layout
+ &.mx_LeftPanel_minimized {
+ min-width: unset;
+
+ // We have to forcefully set the width to override the resizer's style attribute.
+ &.mx_LeftPanel_hasTagPanel {
+ width: calc(68px + $tagPanelWidth) !important;
+ }
+ &:not(.mx_LeftPanel_hasTagPanel) {
+ width: 68px !important;
+ }
+
+ .mx_LeftPanel_roomListContainer {
+ width: 68px;
+
+ .mx_LeftPanel_filterContainer {
+ // Organize the flexbox into a centered column layout
+ flex-direction: column;
+ justify-content: center;
+
+ .mx_LeftPanel_exploreButton {
+ margin-left: 0;
+ margin-top: 8px;
+ background-color: transparent;
+ }
+ }
}
}
}
diff --git a/res/css/structures/_LeftPanel2.scss b/res/css/structures/_LeftPanel2.scss
deleted file mode 100644
index 9603731dd5..0000000000
--- a/res/css/structures/_LeftPanel2.scss
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
-Copyright 2020 The Matrix.org Foundation C.I.C.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-// TODO: Rename on launch: https://github.com/vector-im/riot-web/issues/14367
-
-$tagPanelWidth: 56px; // only applies in this file, used for calculations
-
-.mx_LeftPanel2 {
- background-color: $roomlist2-bg-color;
- min-width: 260px;
- max-width: 50%;
-
- // Create a row-based flexbox for the TagPanel and the room list
- display: flex;
-
- .mx_LeftPanel2_tagPanelContainer {
- flex-grow: 0;
- flex-shrink: 0;
- flex-basis: $tagPanelWidth;
- height: 100%;
-
- // Create another flexbox so the TagPanel fills the container
- display: flex;
-
- // TagPanel handles its own CSS
- }
-
- &:not(.mx_LeftPanel2_hasTagPanel) {
- .mx_LeftPanel2_roomListContainer {
- width: 100%;
- }
- }
-
- // 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_LeftPanel2_roomListContainer {
- width: calc(100% - $tagPanelWidth);
- background-color: $roomlist2-bg-color;
-
- // Create another flexbox (this time a column) for the room list components
- display: flex;
- flex-direction: column;
-
- .mx_LeftPanel2_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_LeftPanel2_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;
-
- &.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_LeftPanel2_filterContainer {
- margin-left: 12px;
- margin-right: 12px;
-
- 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_RoomSearch_expanded + .mx_LeftPanel2_exploreButton {
- // Cheaty way to return the occupied space to the filter input
- flex-basis: 0;
- margin: 0;
- width: 0;
-
- // Don't forget to hide the masked ::before icon,
- // using display:none or visibility:hidden would break accessibility
- &::before {
- content: none;
- }
- }
-
- .mx_LeftPanel2_exploreButton {
- width: 28px;
- height: 28px;
- border-radius: 20px;
- background-color: $roomlist2-button-bg-color;
- position: relative;
- margin-left: 8px;
-
- &::before {
- content: '';
- position: absolute;
- top: 6px;
- left: 6px;
- width: 16px;
- height: 16px;
- mask-image: url('$(res)/img/feather-customised/compass.svg');
- mask-position: center;
- mask-size: contain;
- mask-repeat: no-repeat;
- background: $primary-fg-color;
- }
- }
- }
-
- .mx_LeftPanel2_roomListWrapper {
- // Create a flexbox to ensure the containing items cause appropriate overflow.
- display: flex;
-
- flex-grow: 1;
- overflow: hidden;
- min-height: 0;
- margin-top: 10px; // so we're not up against the search/filter
-
- &.mx_LeftPanel2_roomListWrapper_stickyBottom {
- padding-bottom: 32px;
- }
-
- &.mx_LeftPanel2_roomListWrapper_stickyTop {
- padding-top: 32px;
- }
- }
-
- .mx_LeftPanel2_actualRoomListContainer {
- flex-grow: 1; // fill the available space
- overflow-y: auto;
- width: 100%;
- max-width: 100%;
- position: relative; // for sticky headers
-
- // Create a flexbox to trick the layout engine
- display: flex;
- }
- }
-
- // These styles override the defaults for the minimized (66px) layout
- &.mx_LeftPanel2_minimized {
- min-width: unset;
-
- // We have to forcefully set the width to override the resizer's style attribute.
- &.mx_LeftPanel2_hasTagPanel {
- width: calc(68px + $tagPanelWidth) !important;
- }
- &:not(.mx_LeftPanel2_hasTagPanel) {
- width: 68px !important;
- }
-
- .mx_LeftPanel2_roomListContainer {
- width: 68px;
-
- .mx_LeftPanel2_filterContainer {
- // Organize the flexbox into a centered column layout
- flex-direction: column;
- justify-content: center;
-
- .mx_LeftPanel2_exploreButton {
- margin-left: 0;
- margin-top: 8px;
- background-color: transparent;
- }
- }
- }
- }
-}
diff --git a/res/css/structures/_MatrixChat.scss b/res/css/structures/_MatrixChat.scss
index 08ed9e5559..88b29a96e8 100644
--- a/res/css/structures/_MatrixChat.scss
+++ b/res/css/structures/_MatrixChat.scss
@@ -66,7 +66,7 @@ limitations under the License.
}
/* not the left panel, and not the resize handle, so the roomview/groupview/... */
-.mx_MatrixChat > :not(.mx_LeftPanel_container):not(.mx_LeftPanel2):not(.mx_ResizeHandle) {
+.mx_MatrixChat > :not(.mx_LeftPanel):not(.mx_ResizeHandle) {
background-color: $primary-bg-color;
flex: 1 1 0;
diff --git a/res/css/structures/_RoomSearch.scss b/res/css/structures/_RoomSearch.scss
index 371bab1611..39a3dee30b 100644
--- a/res/css/structures/_RoomSearch.scss
+++ b/res/css/structures/_RoomSearch.scss
@@ -18,7 +18,7 @@ limitations under the License.
.mx_RoomSearch {
flex: 1;
border-radius: 20px;
- background-color: $roomlist2-button-bg-color;
+ background-color: $roomlist-button-bg-color;
height: 28px;
padding: 2px;
diff --git a/res/css/structures/_RoomSubList.scss b/res/css/structures/_RoomSubList.scss
deleted file mode 100644
index 2c53258b08..0000000000
--- a/res/css/structures/_RoomSubList.scss
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
-Copyright 2015, 2016 OpenMarket Ltd
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-/* a word of explanation about the flex-shrink values employed here:
- there are 3 priotized categories of screen real-estate grabbing,
- each with a flex-shrink difference of 4 order of magnitude,
- so they ideally wouldn't affect each other.
- lowest category: .mx_RoomSubList
- flex-shrink: 10000000
- distribute size of items within the same category by their size
- middle category: .mx_RoomSubList.resized-sized
- flex-shrink: 1000
- applied when using the resizer, will have a max-height set to it,
- to limit the size
- highest category: .mx_RoomSubList.resized-all
- flex-shrink: 1
- small flex-shrink value (1), is only added if you can drag the resizer so far
- so in practice you can only assign this category if there is enough space.
-*/
-
-.mx_RoomSubList {
- display: flex;
- flex-direction: column;
-}
-
-
-.mx_RoomSubList_nonEmpty .mx_AutoHideScrollbar_offset {
- padding-bottom: 4px;
-}
-
-.mx_RoomSubList_labelContainer {
- display: flex;
- flex-direction: row;
- align-items: center;
- flex: 0 0 auto;
- margin: 0 8px;
- padding: 0 8px;
- height: 36px;
-}
-
-.mx_RoomSubList_labelContainer.focus-visible:focus-within {
- background-color: $roomtile-focused-bg-color;
-}
-
-.mx_RoomSubList_label {
- flex: 1;
- cursor: pointer;
- display: flex;
- align-items: center;
- padding: 0 6px;
-}
-
-.mx_RoomSubList_label > span {
- flex: 1 1 auto;
- text-transform: uppercase;
- color: $roomsublist-label-fg-color;
- font-weight: 700;
- font-size: $font-12px;
- margin-left: 8px;
-}
-
-.mx_RoomSubList_badge > div {
- flex: 0 0 auto;
- border-radius: $font-16px;
- font-weight: 600;
- font-size: $font-12px;
- padding: 0 5px;
- color: $roomtile-badge-fg-color;
- background-color: $roomtile-name-color;
- cursor: pointer;
-}
-
-.mx_RoomSubList_addRoom, .mx_RoomSubList_badge {
- margin-left: 7px;
-}
-
-.mx_RoomSubList_addRoom {
- background-color: $roomheader-addroom-bg-color;
- border-radius: 10px; // 16/2 + 2 padding
- height: 16px;
- flex: 0 0 16px;
- position: relative;
-
- &::before {
- background-color: $roomheader-addroom-fg-color;
- mask: url('$(res)/img/icons-room-add.svg');
- mask-repeat: no-repeat;
- mask-position: center;
- content: '';
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- }
-}
-
-.mx_RoomSubList_badgeHighlight > div {
- color: $accent-fg-color;
- background-color: $warning-color;
-}
-
-.mx_RoomSubList_chevron {
- pointer-events: none;
- mask: url('$(res)/img/feather-customised/dropdown-arrow.svg');
- mask-repeat: no-repeat;
- transition: transform 0.2s ease-in;
- width: 10px;
- height: 6px;
- margin-left: 2px;
- background-color: $roomsublist-label-fg-color;
-}
-
-.mx_RoomSubList_chevronDown {
- transform: rotateZ(0deg);
-}
-
-.mx_RoomSubList_chevronUp {
- transform: rotateZ(180deg);
-}
-
-.mx_RoomSubList_chevronRight {
- transform: rotateZ(-90deg);
-}
-
-.mx_RoomSubList_scroll {
- /* let rooms list grab as much space as it needs (auto),
- potentially overflowing and showing a scrollbar */
- flex: 0 1 auto;
- padding: 0 8px;
-}
-
-.collapsed {
- .mx_RoomSubList_scroll {
- padding: 0;
- }
-
- .mx_RoomSubList_labelContainer {
- margin-right: 8px;
- margin-left: 2px;
- padding: 0;
- }
-
- .mx_RoomSubList_addRoom {
- margin-left: 3px;
- margin-right: 10px;
- }
-
- .mx_RoomSubList_label > span {
- display: none;
- }
-}
-
-// overflow indicators
-.mx_RoomSubList:not(.resized-all) > .mx_RoomSubList_scroll {
- &.mx_IndicatorScrollbar_topOverflow::before {
- position: sticky;
- content: "";
- top: 0;
- left: 0;
- right: 0;
- height: 8px;
- z-index: 100;
- display: block;
- pointer-events: none;
- transition: background-image 0.1s ease-in;
- background: linear-gradient(to top, $panel-gradient);
- }
-
-
- &.mx_IndicatorScrollbar_topOverflow {
- margin-top: -8px;
- }
-}
diff --git a/res/css/structures/_TagPanel.scss b/res/css/structures/_TagPanel.scss
index 505d6c348f..78e8326772 100644
--- a/res/css/structures/_TagPanel.scss
+++ b/res/css/structures/_TagPanel.scss
@@ -157,7 +157,7 @@ limitations under the License.
font-weight: 600;
font-size: $font-14px;
padding: 0 5px;
- background-color: $roomtile-name-color;
+ background-color: $muted-fg-color;
}
.mx_TagTile_badgeHighlight {
diff --git a/res/css/structures/_TopLeftMenuButton.scss b/res/css/structures/_TopLeftMenuButton.scss
deleted file mode 100644
index 8d2e36bcd6..0000000000
--- a/res/css/structures/_TopLeftMenuButton.scss
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-Copyright 2018 New Vector Ltd
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-.mx_TopLeftMenuButton {
- flex: 0 0 52px;
- border-bottom: 1px solid $panel-divider-color;
- color: $topleftmenu-color;
- background-color: $primary-bg-color;
- display: flex;
- align-items: center;
- min-width: 0;
- padding: 0 4px;
- overflow: hidden;
-}
-
-.mx_TopLeftMenuButton .mx_BaseAvatar {
- margin: 0 7px;
-}
-
-.mx_TopLeftMenuButton_name {
- margin: 0 7px;
- font-size: $font-18px;
- white-space: nowrap;
- text-overflow: ellipsis;
- overflow: hidden;
- font-weight: 600;
-}
-
-.mx_TopLeftMenuButton_chevron {
- margin: 0 7px;
- mask: url('$(res)/img/feather-customised/dropdown-arrow.svg');
- mask-repeat: no-repeat;
- width: $font-22px;
- height: 6px;
- background-color: $roomsublist-label-fg-color;
-}
diff --git a/res/css/views/avatars/_DecoratedRoomAvatar.scss b/res/css/views/avatars/_DecoratedRoomAvatar.scss
index 900f351074..48d72131b5 100644
--- a/res/css/views/avatars/_DecoratedRoomAvatar.scss
+++ b/res/css/views/avatars/_DecoratedRoomAvatar.scss
@@ -24,7 +24,7 @@ limitations under the License.
right: 0;
}
- .mx_NotificationBadge, .mx_RoomTile2_badgeContainer {
+ .mx_NotificationBadge, .mx_RoomTile_badgeContainer {
position: absolute;
top: 0;
right: 0;
diff --git a/res/css/views/elements/_Tooltip.scss b/res/css/views/elements/_Tooltip.scss
index 45202ff5f9..d90c818f94 100644
--- a/res/css/views/elements/_Tooltip.scss
+++ b/res/css/views/elements/_Tooltip.scss
@@ -81,6 +81,18 @@ limitations under the License.
}
}
+// These tooltips use an older style with a chevron
+.mx_Field_tooltip {
+ background-color: $menu-bg-color;
+ color: $primary-fg-color;
+ border: 1px solid $menu-border-color;
+ text-align: unset;
+
+ .mx_Tooltip_chevron {
+ display: unset;
+ }
+}
+
.mx_Tooltip_title {
font-weight: 600;
}
diff --git a/res/css/views/messages/_ReactionsRowButton.scss b/res/css/views/messages/_ReactionsRowButton.scss
index fe5b081042..9ba1041421 100644
--- a/res/css/views/messages/_ReactionsRowButton.scss
+++ b/res/css/views/messages/_ReactionsRowButton.scss
@@ -35,11 +35,6 @@ limitations under the License.
border-color: $reaction-row-button-selected-border-color;
}
- // ignore mouse events for all children, treat it as one entire hoverable entity
- * {
- pointer-events: none;
- }
-
.mx_ReactionsRowButton_content {
max-width: 100px;
overflow: hidden;
diff --git a/res/css/views/rooms/_InviteOnlyIcon.scss b/res/css/views/rooms/_InviteOnlyIcon.scss
deleted file mode 100644
index b71fd6348d..0000000000
--- a/res/css/views/rooms/_InviteOnlyIcon.scss
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-Copyright 2020 The Matrix.org Foundation C.I.C.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-@define-mixin mx_InviteOnlyIcon {
- width: 12px;
- height: 12px;
- position: relative;
- display: block !important;
-}
-
-@define-mixin mx_InviteOnlyIcon_padlock {
- background-color: $roomtile-name-color;
- mask-image: url("$(res)/img/feather-customised/lock-solid.svg");
- mask-position: center;
- mask-repeat: no-repeat;
- mask-size: contain;
- content: "";
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
-}
-
-.mx_InviteOnlyIcon_large {
- @mixin mx_InviteOnlyIcon;
- margin: 0 4px;
-
- &::before {
- @mixin mx_InviteOnlyIcon_padlock;
- width: 12px;
- height: 12px;
- }
-}
-
-.mx_InviteOnlyIcon_small {
- @mixin mx_InviteOnlyIcon;
- left: -2px;
-
- &::before {
- @mixin mx_InviteOnlyIcon_padlock;
- width: 10px;
- height: 10px;
- }
-}
diff --git a/res/css/views/rooms/_JumpToBottomButton.scss b/res/css/views/rooms/_JumpToBottomButton.scss
index 23018df8da..cb3803fe5b 100644
--- a/res/css/views/rooms/_JumpToBottomButton.scss
+++ b/res/css/views/rooms/_JumpToBottomButton.scss
@@ -41,8 +41,8 @@ limitations under the License.
// with text-align in parent
display: inline-block;
padding: 0 4px;
- color: $roomtile-badge-fg-color;
- background-color: $roomtile-name-color;
+ color: $accent-fg-color;
+ background-color: $muted-fg-color;
}
.mx_JumpToBottomButton_highlight .mx_JumpToBottomButton_badge {
@@ -56,7 +56,7 @@ limitations under the License.
border-radius: 19px;
box-sizing: border-box;
background: $primary-bg-color;
- border: 1.3px solid $roomtile-name-color;
+ border: 1.3px solid $muted-fg-color;
cursor: pointer;
}
@@ -70,5 +70,5 @@ limitations under the License.
mask: url('$(res)/img/icon-jump-to-bottom.svg');
mask-repeat: no-repeat;
mask-position: 9px 14px;
- background: $roomtile-name-color;
+ background: $muted-fg-color;
}
diff --git a/res/css/views/rooms/_MemberList.scss b/res/css/views/rooms/_MemberList.scss
index be58db43ae..90667d41b4 100644
--- a/res/css/views/rooms/_MemberList.scss
+++ b/res/css/views/rooms/_MemberList.scss
@@ -70,15 +70,11 @@ limitations under the License.
}
}
-
-
.mx_MemberList_wrapper {
padding: 10px;
}
-
-.mx_MemberList_invite,
-.mx_RightPanel_invite {
+.mx_MemberList_invite {
flex: 0 0 auto;
position: relative;
background-color: $button-bg-color;
@@ -88,11 +84,6 @@ limitations under the License.
justify-content: center;
color: $button-fg-color;
font-weight: 600;
-
- .mx_RightPanel_icon {
- padding-right: 5px;
- padding-top: 2px;
- }
}
.mx_MemberList_invite.mx_AccessibleButton_disabled {
@@ -107,3 +98,11 @@ limitations under the License.
background-size: 20px;
padding: 8px 0 8px 25px;
}
+
+.mx_MemberList_inviteCommunity span {
+ background-image: url('$(res)/img/icon-invite-people.svg');
+}
+
+.mx_MemberList_addRoomToCommunity span {
+ background-image: url('$(res)/img/icons-room-add.svg');
+}
diff --git a/res/css/views/rooms/_NotificationBadge.scss b/res/css/views/rooms/_NotificationBadge.scss
index dbc9006ca3..64b2623238 100644
--- a/res/css/views/rooms/_NotificationBadge.scss
+++ b/res/css/views/rooms/_NotificationBadge.scss
@@ -27,7 +27,7 @@ limitations under the License.
// ^- The count is an element floating within that.
&.mx_NotificationBadge_visible {
- background-color: $roomtile2-default-badge-bg-color;
+ background-color: $roomtile-default-badge-bg-color;
// Create a flexbox to order the count a bit easier
display: flex;
diff --git a/res/css/views/rooms/_RoomBreadcrumbs.scss b/res/css/views/rooms/_RoomBreadcrumbs.scss
index 3858d836e6..6512797401 100644
--- a/res/css/views/rooms/_RoomBreadcrumbs.scss
+++ b/res/css/views/rooms/_RoomBreadcrumbs.scss
@@ -1,5 +1,5 @@
/*
-Copyright 2019 New Vector Ltd
+Copyright 2020 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -15,98 +15,42 @@ limitations under the License.
*/
.mx_RoomBreadcrumbs {
- position: relative;
- height: 42px;
- padding: 8px;
- padding-bottom: 0;
+ width: 100%;
+
+ // Create a flexbox for the crumbs
display: flex;
flex-direction: row;
-
- // repeating circles as empty placeholders
- background:
- radial-gradient(
- circle at center,
- $breadcrumb-placeholder-bg-color,
- $breadcrumb-placeholder-bg-color 15px,
- transparent 16px
- );
- background-size: 36px;
- background-position: 6px -1px;
- background-repeat: repeat-x;
-
-
- // Autohide the scrollbar
- overflow-x: hidden;
- &:hover {
- overflow-x: visible;
- }
-
- .mx_AutoHideScrollbar {
- display: flex;
- flex-direction: row;
- height: 100%;
- }
+ align-items: flex-start;
.mx_RoomBreadcrumbs_crumb {
- margin-left: 4px;
- height: 32px;
- display: inline-block;
- transition: transform 0.3s, width 0.3s;
- position: relative;
-
- .mx_RoomTile_badge {
- position: absolute;
- top: -3px;
- right: -4px;
- }
-
- .mx_RoomBreadcrumbs_dmIndicator {
- position: absolute;
- bottom: 0;
- right: -4px;
- }
- }
-
- .mx_RoomBreadcrumbs_animate {
- margin-left: 0;
+ margin-right: 8px;
width: 32px;
- transform: scale(1);
}
- .mx_RoomBreadcrumbs_preAnimate {
- width: 0;
- transform: scale(0);
+ // These classes come from the CSSTransition component. There's many more classes we
+ // could care about, but this is all we worried about for now. The animation works by
+ // first triggering the enter state with the newest breadcrumb off screen (-40px) then
+ // sliding it into view.
+ &.mx_RoomBreadcrumbs-enter {
+ margin-left: -40px; // 32px for the avatar, 8px for the margin
+ }
+ &.mx_RoomBreadcrumbs-enter-active {
+ margin-left: 0;
+
+ // Timing function is as-requested by design.
+ // NOTE: The transition time MUST match the value passed to CSSTransition!
+ transition: margin-left 640ms cubic-bezier(0.66, 0.02, 0.36, 1);
}
- .mx_RoomBreadcrumbs_left {
- opacity: 0.5;
- }
-
- // Note: we have to manually control the gradient and stuff, but the IndicatorScrollbar
- // will deal with left/right positioning for us. Normally we'd use position:sticky on
- // a few key elements, however that doesn't work in horizontal scrolling scenarios.
-
- .mx_IndicatorScrollbar_leftOverflowIndicator,
- .mx_IndicatorScrollbar_rightOverflowIndicator {
- display: none;
- }
-
- .mx_IndicatorScrollbar_leftOverflowIndicator {
- background: linear-gradient(to left, $panel-gradient);
- }
-
- .mx_IndicatorScrollbar_rightOverflowIndicator {
- background: linear-gradient(to right, $panel-gradient);
- }
-
- &.mx_IndicatorScrollbar_leftOverflow .mx_IndicatorScrollbar_leftOverflowIndicator,
- &.mx_IndicatorScrollbar_rightOverflow .mx_IndicatorScrollbar_rightOverflowIndicator {
- position: absolute;
- top: 0;
- bottom: 0;
- width: 15px;
- display: block;
- pointer-events: none;
- z-index: 100;
+ .mx_RoomBreadcrumbs_placeholder {
+ font-weight: 600;
+ font-size: $font-14px;
+ line-height: 32px; // specifically to match the height this is not scaled
+ height: 32px;
}
}
+
+.mx_RoomBreadcrumbs_Tooltip {
+ margin-left: -42px;
+ margin-top: -42px;
+}
diff --git a/res/css/views/rooms/_RoomBreadcrumbs2.scss b/res/css/views/rooms/_RoomBreadcrumbs2.scss
deleted file mode 100644
index b4a957cd8d..0000000000
--- a/res/css/views/rooms/_RoomBreadcrumbs2.scss
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-Copyright 2020 The Matrix.org Foundation C.I.C.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-// TODO: Rename on launch: https://github.com/vector-im/riot-web/issues/14367
-
-.mx_RoomBreadcrumbs2 {
- width: 100%;
-
- // Create a flexbox for the crumbs
- display: flex;
- flex-direction: row;
- align-items: flex-start;
-
- .mx_RoomBreadcrumbs2_crumb {
- margin-right: 8px;
- width: 32px;
- }
-
- // These classes come from the CSSTransition component. There's many more classes we
- // could care about, but this is all we worried about for now. The animation works by
- // first triggering the enter state with the newest breadcrumb off screen (-40px) then
- // sliding it into view.
- &.mx_RoomBreadcrumbs2-enter {
- margin-left: -40px; // 32px for the avatar, 8px for the margin
- }
- &.mx_RoomBreadcrumbs2-enter-active {
- margin-left: 0;
-
- // Timing function is as-requested by design.
- // NOTE: The transition time MUST match the value passed to CSSTransition!
- transition: margin-left 640ms cubic-bezier(0.66, 0.02, 0.36, 1);
- }
-
- .mx_RoomBreadcrumbs2_placeholder {
- font-weight: 600;
- font-size: $font-14px;
- line-height: 32px; // specifically to match the height this is not scaled
- height: 32px;
- }
-}
-
-.mx_RoomBreadcrumbs2_Tooltip {
- margin-left: -42px;
- margin-top: -42px;
-}
diff --git a/res/css/views/rooms/_RoomDropTarget.scss b/res/css/views/rooms/_RoomDropTarget.scss
deleted file mode 100644
index 2e8145c2c9..0000000000
--- a/res/css/views/rooms/_RoomDropTarget.scss
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-Copyright 2015, 2016 OpenMarket Ltd
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-.mx_RoomDropTarget_container {
- background-color: $secondary-accent-color;
- padding-left: 18px;
- padding-right: 18px;
- padding-top: 8px;
- padding-bottom: 7px;
-}
-
-.collapsed .mx_RoomDropTarget_container {
- padding-right: 10px;
- padding-left: 10px;
-}
-
-.mx_RoomDropTarget {
- font-size: $font-13px;
- padding-top: 5px;
- padding-bottom: 5px;
- border: 1px dashed $accent-color;
- color: $primary-fg-color;
- background-color: $droptarget-bg-color;
- border-radius: 4px;
-}
-
-
-.mx_RoomDropTarget_label {
- position: relative;
- margin-top: 3px;
- line-height: $font-21px;
- z-index: 1;
- text-align: center;
-}
-
-.collapsed .mx_RoomDropTarget_avatar {
- float: none;
-}
-
-.collapsed .mx_RoomDropTarget_label {
- display: none;
-}
diff --git a/res/css/views/rooms/_RoomList.scss b/res/css/views/rooms/_RoomList.scss
index c23c19699d..690ed0646e 100644
--- a/res/css/views/rooms/_RoomList.scss
+++ b/res/css/views/rooms/_RoomList.scss
@@ -1,6 +1,5 @@
/*
-Copyright 2015, 2016 OpenMarket Ltd
-Copyright 2017 Vector Creations Ltd
+Copyright 2020 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -15,56 +14,12 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-.mx_RoomList.mx_RoomList2 {
- overflow-y: auto;
-}
-
.mx_RoomList {
- /* take up remaining space below TopLeftMenu */
- flex: 1;
- min-height: 0;
- overflow-y: hidden;
-}
+ width: calc(100% - 16px); // 16px of artificial right-side margin (8px is overflowed from the sublists)
-.mx_RoomList .mx_ResizeHandle {
- // needed so the z-index takes effect
- position: relative;
-}
-
-/* hide resize handles next to collapsed / empty sublists */
-.mx_RoomList .mx_RoomSubList:not(.mx_RoomSubList_nonEmpty) + .mx_ResizeHandle {
- display: none;
-}
-
-.mx_RoomList_expandButton {
- margin-left: 8px;
- cursor: pointer;
- padding-left: 12px;
- padding-right: 12px;
-}
-
-.mx_RoomList_emptySubListTip_container {
- padding-left: 18px;
- padding-right: 18px;
- padding-top: 8px;
- padding-bottom: 7px;
-}
-
-.mx_RoomList_emptySubListTip {
- font-size: $font-13px;
- padding: 5px;
- border: 1px dashed $accent-color;
- color: $primary-fg-color;
- background-color: $droptarget-bg-color;
- border-radius: 4px;
- line-height: $font-16px;
-}
-
-.mx_RoomList_emptySubListTip .mx_RoleButton {
- vertical-align: -2px;
-}
-
-.mx_RoomList_headerButtons {
- position: absolute;
- right: 60px;
+ // Create a column-based flexbox for the sublists. That's pretty much all we have to
+ // worry about in this stylesheet.
+ display: flex;
+ flex-direction: column;
+ flex-wrap: nowrap; // let the column overflow
}
diff --git a/res/css/views/rooms/_RoomList2.scss b/res/css/views/rooms/_RoomList2.scss
deleted file mode 100644
index 5b78020626..0000000000
--- a/res/css/views/rooms/_RoomList2.scss
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-Copyright 2020 The Matrix.org Foundation C.I.C.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-// TODO: Rename to mx_RoomList during replacement of old component
-
-.mx_RoomList2 {
- width: calc(100% - 16px); // 16px of artificial right-side margin (8px is overflowed from the sublists)
-
- // Create a column-based flexbox for the sublists. That's pretty much all we have to
- // worry about in this stylesheet.
- display: flex;
- flex-direction: column;
- flex-wrap: nowrap; // let the column overflow
-}
diff --git a/res/css/views/rooms/_RoomSublist2.scss b/res/css/views/rooms/_RoomSublist.scss
similarity index 78%
rename from res/css/views/rooms/_RoomSublist2.scss
rename to res/css/views/rooms/_RoomSublist.scss
index 77a762b4d8..3ec4d114af 100644
--- a/res/css/views/rooms/_RoomSublist2.scss
+++ b/res/css/views/rooms/_RoomSublist.scss
@@ -14,9 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-// TODO: Rename on launch: https://github.com/vector-im/riot-web/issues/14367
-
-.mx_RoomSublist2 {
+.mx_RoomSublist {
// The sublist is a column of rows, essentially
display: flex;
flex-direction: column;
@@ -27,7 +25,7 @@ limitations under the License.
flex-shrink: 0; // to convince safari's layout engine the flexbox is fine
- .mx_RoomSublist2_headerContainer {
+ .mx_RoomSublist_headerContainer {
// Create a flexbox to make alignment easy
display: flex;
align-items: center;
@@ -43,13 +41,13 @@ limitations under the License.
// all works by ensuring the header text has a fixed height when sticky so the
// fixed height of the container can maintain the scroll position.
- // The combined height must be set in the LeftPanel2 component for sticky headers
+ // The combined height must be set in the LeftPanel component for sticky headers
// to work correctly.
padding-bottom: 8px;
height: 24px;
- color: $roomlist2-header-color;
+ color: $roomlist-header-color;
- .mx_RoomSublist2_stickable {
+ .mx_RoomSublist_stickable {
flex: 1;
max-width: 100%;
@@ -61,26 +59,26 @@ limitations under the License.
// to identify when a header is sticky. If we didn't have a consistent sticky class,
// we'd have to do the "is sticky" checks again on click, as clicking the header
// when sticky scrolls instead of collapses the list.
- &.mx_RoomSublist2_headerContainer_sticky {
+ &.mx_RoomSublist_headerContainer_sticky {
position: fixed;
height: 32px; // to match the header container
// width set by JS
width: calc(100% - 22px);
}
- &.mx_RoomSublist2_headerContainer_stickyBottom {
+ &.mx_RoomSublist_headerContainer_stickyBottom {
bottom: 0;
}
// We don't have a top style because the top is dependent on the room list header's
// height, and is therefore calculated in JS.
- // The class, mx_RoomSublist2_headerContainer_stickyTop, is applied though.
+ // The class, mx_RoomSublist_headerContainer_stickyTop, is applied though.
}
// Sticky Headers End
// ***************************
- .mx_RoomSublist2_badgeContainer {
+ .mx_RoomSublist_badgeContainer {
// Create another flexbox row because it's super easy to position the badge this way.
display: flex;
align-items: center;
@@ -93,14 +91,14 @@ limitations under the License.
}
}
- &:not(.mx_RoomSublist2_headerContainer_withAux) {
+ &:not(.mx_RoomSublist_headerContainer_withAux) {
.mx_NotificationBadge {
margin-right: 4px; // just to push it over a bit, aligning it with the other elements
}
}
- .mx_RoomSublist2_auxButton,
- .mx_RoomSublist2_menuButton {
+ .mx_RoomSublist_auxButton,
+ .mx_RoomSublist_menuButton {
margin-left: 8px; // should be the same as the notification badge
position: relative;
width: 24px;
@@ -122,21 +120,21 @@ limitations under the License.
}
// Hide the menu button by default
- .mx_RoomSublist2_menuButton {
+ .mx_RoomSublist_menuButton {
visibility: hidden;
width: 0;
margin: 0;
}
- .mx_RoomSublist2_auxButton::before {
+ .mx_RoomSublist_auxButton::before {
mask-image: url('$(res)/img/feather-customised/plus.svg');
}
- .mx_RoomSublist2_menuButton::before {
+ .mx_RoomSublist_menuButton::before {
mask-image: url('$(res)/img/element-icons/context-menu.svg');
}
- .mx_RoomSublist2_headerText {
+ .mx_RoomSublist_headerText {
flex: 1;
max-width: calc(100% - 16px); // 16px is the badge width
line-height: $font-16px;
@@ -148,7 +146,7 @@ limitations under the License.
overflow: hidden;
white-space: nowrap;
- .mx_RoomSublist2_collapseBtn {
+ .mx_RoomSublist_collapseBtn {
display: inline-block;
position: relative;
width: 12px;
@@ -169,7 +167,7 @@ limitations under the License.
mask-image: url('$(res)/img/feather-customised/chevron-down.svg');
}
- &.mx_RoomSublist2_collapseBtn_collapsed::before {
+ &.mx_RoomSublist_collapseBtn_collapsed::before {
mask-image: url('$(res)/img/feather-customised/chevron-right.svg');
}
}
@@ -181,12 +179,12 @@ limitations under the License.
// when scrolled to the top above the first sublist (whose header can only
// ever stick to top), so we force height to 0 for only that first header.
// See also https://github.com/vector-im/riot-web/issues/14429.
- &:first-child .mx_RoomSublist2_headerContainer {
+ &:first-child .mx_RoomSublist_headerContainer {
height: 0;
padding-bottom: 4px;
}
- .mx_RoomSublist2_resizeBox {
+ .mx_RoomSublist_resizeBox {
position: relative;
// Create another flexbox column for the tiles
@@ -194,7 +192,7 @@ limitations under the License.
flex-direction: column;
overflow: hidden;
- .mx_RoomSublist2_tiles {
+ .mx_RoomSublist_tiles {
flex: 1 0 0;
overflow: hidden;
// need this to be flex otherwise the overflow hidden from above
@@ -206,18 +204,18 @@ limitations under the License.
mask-image: linear-gradient(0deg, transparent, black 4px);
}
- .mx_RoomSublist2_resizerHandles_showNButton {
+ .mx_RoomSublist_resizerHandles_showNButton {
flex: 0 0 32px;
}
- .mx_RoomSublist2_resizerHandles {
+ .mx_RoomSublist_resizerHandles {
flex: 0 0 4px;
}
// Class name comes from the ResizableBox component
// The hover state needs to use the whole sublist, not just the resizable box,
// so that selector is below and one level higher.
- .mx_RoomSublist2_resizerHandle {
+ .mx_RoomSublist_resizerHandle {
cursor: ns-resize;
border-radius: 3px;
@@ -235,21 +233,21 @@ limitations under the License.
right: calc(50% - 32px) !important;
}
- &:hover, &.mx_RoomSublist2_hasMenuOpen {
- .mx_RoomSublist2_resizerHandle {
+ &:hover, &.mx_RoomSublist_hasMenuOpen {
+ .mx_RoomSublist_resizerHandle {
opacity: 0.8;
background-color: $primary-fg-color;
}
}
}
- .mx_RoomSublist2_showNButton {
+ .mx_RoomSublist_showNButton {
cursor: pointer;
font-size: $font-13px;
line-height: $font-18px;
- color: $roomtile2-preview-color;
+ color: $roomtile-preview-color;
- // Update the render() function for RoomSublist2 if these change
+ // Update the render() function for RoomSublist if these change
// Update the ListLayout class for minVisibleTiles if these change.
height: 24px;
padding-bottom: 4px;
@@ -258,7 +256,7 @@ limitations under the License.
display: flex;
align-items: center;
- .mx_RoomSublist2_showNButtonChevron {
+ .mx_RoomSublist_showNButtonChevron {
position: relative;
width: 16px;
height: 16px;
@@ -267,52 +265,52 @@ limitations under the License.
mask-position: center;
mask-size: contain;
mask-repeat: no-repeat;
- background: $roomtile2-preview-color;
+ background: $roomtile-preview-color;
}
- .mx_RoomSublist2_showMoreButtonChevron {
+ .mx_RoomSublist_showMoreButtonChevron {
mask-image: url('$(res)/img/feather-customised/chevron-down.svg');
}
- .mx_RoomSublist2_showLessButtonChevron {
+ .mx_RoomSublist_showLessButtonChevron {
mask-image: url('$(res)/img/feather-customised/chevron-up.svg');
}
}
- &.mx_RoomSublist2_hasMenuOpen,
- &:not(.mx_RoomSublist2_minimized) > .mx_RoomSublist2_headerContainer:focus-within,
- &:not(.mx_RoomSublist2_minimized) > .mx_RoomSublist2_headerContainer:hover {
- .mx_RoomSublist2_menuButton {
+ &.mx_RoomSublist_hasMenuOpen,
+ &:not(.mx_RoomSublist_minimized) > .mx_RoomSublist_headerContainer:focus-within,
+ &:not(.mx_RoomSublist_minimized) > .mx_RoomSublist_headerContainer:hover {
+ .mx_RoomSublist_menuButton {
visibility: visible;
width: 24px;
margin-left: 8px;
}
}
- &.mx_RoomSublist2_minimized {
- .mx_RoomSublist2_headerContainer {
+ &.mx_RoomSublist_minimized {
+ .mx_RoomSublist_headerContainer {
height: auto;
flex-direction: column;
position: relative;
- .mx_RoomSublist2_badgeContainer {
+ .mx_RoomSublist_badgeContainer {
order: 0;
align-self: flex-end;
margin-right: 0;
}
- .mx_RoomSublist2_stickable {
+ .mx_RoomSublist_stickable {
order: 1;
max-width: 100%;
}
- .mx_RoomSublist2_auxButton {
+ .mx_RoomSublist_auxButton {
order: 2;
visibility: visible;
width: 32px !important; // !important to override hover styles
height: 32px !important; // !important to override hover styles
margin-left: 0 !important; // !important to override hover styles
- background-color: $roomlist2-button-bg-color;
+ background-color: $roomlist-button-bg-color;
margin-top: 8px;
&::before {
@@ -322,25 +320,25 @@ limitations under the License.
}
}
- .mx_RoomSublist2_resizeBox {
+ .mx_RoomSublist_resizeBox {
align-items: center;
}
- .mx_RoomSublist2_showNButton {
+ .mx_RoomSublist_showNButton {
flex-direction: column;
- .mx_RoomSublist2_showNButtonChevron {
+ .mx_RoomSublist_showNButtonChevron {
margin-right: 12px; // to center
}
}
- .mx_RoomSublist2_menuButton {
+ .mx_RoomSublist_menuButton {
height: 16px;
}
- &.mx_RoomSublist2_hasMenuOpen,
- & > .mx_RoomSublist2_headerContainer:hover {
- .mx_RoomSublist2_menuButton {
+ &.mx_RoomSublist_hasMenuOpen,
+ & > .mx_RoomSublist_headerContainer:hover {
+ .mx_RoomSublist_menuButton {
visibility: visible;
position: absolute;
bottom: 48px; // align to middle of name, 40px for aux button (with padding) and 8px for alignment
@@ -352,7 +350,7 @@ limitations under the License.
// This is the same color as the left panel background because it needs
// to occlude the sublist title
- background-color: $roomlist2-bg-color;
+ background-color: $roomlist-bg-color;
&::before {
top: 0;
@@ -360,8 +358,8 @@ limitations under the License.
}
}
- &.mx_RoomSublist2_headerContainer:not(.mx_RoomSublist2_headerContainer_withAux) {
- .mx_RoomSublist2_menuButton {
+ &.mx_RoomSublist_headerContainer:not(.mx_RoomSublist_headerContainer_withAux) {
+ .mx_RoomSublist_menuButton {
bottom: 8px; // align to the middle of name, 40px less than the `bottom` above.
}
}
@@ -369,7 +367,7 @@ limitations under the License.
}
}
-.mx_RoomSublist2_contextMenu {
+.mx_RoomSublist_contextMenu {
padding: 20px 16px;
width: 250px;
@@ -377,11 +375,11 @@ limitations under the License.
margin-top: 16px;
margin-bottom: 16px;
margin-right: 16px; // additional 16px
- border: 1px solid $roomsublist2-divider-color;
+ border: 1px solid $roomsublist-divider-color;
opacity: 0.1;
}
- .mx_RoomSublist2_contextMenu_title {
+ .mx_RoomSublist_contextMenu_title {
font-size: $font-15px;
line-height: $font-20px;
font-weight: 600;
@@ -393,6 +391,6 @@ limitations under the License.
}
}
-.mx_RoomSublist2_addRoomTooltip {
+.mx_RoomSublist_addRoomTooltip {
margin-top: -3px;
}
diff --git a/res/css/views/rooms/_RoomTile.scss b/res/css/views/rooms/_RoomTile.scss
index 7f93da0bbf..9afbd44b20 100644
--- a/res/css/views/rooms/_RoomTile.scss
+++ b/res/css/views/rooms/_RoomTile.scss
@@ -1,6 +1,5 @@
/*
-Copyright 2015, 2016 OpenMarket Ltd
-Copyright 2019 The Matrix.org Foundation C.I.C.
+Copyright 2020 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -15,214 +14,226 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
+// Note: the room tile expects to be in a flexbox column container
.mx_RoomTile {
- display: flex;
- flex-direction: row;
- align-items: center;
- cursor: pointer;
- height: 34px;
- margin: 0;
- padding: 0 8px 0 10px;
- position: relative;
-
- .mx_RoomTile_menuButton {
- display: none;
- flex: 0 0 16px;
- height: 16px;
- background-image: url('$(res)/img/icon_context.svg');
- background-repeat: no-repeat;
- background-position: center;
- }
-
- .mx_UserOnlineDot {
- display: block;
- margin-right: 5px;
- }
-}
-
-.mx_RoomTile:focus {
- filter: none !important;
- background-color: $roomtile-focused-bg-color;
-}
-
-.mx_RoomTile_tooltip {
- display: inline-block;
- position: relative;
- top: -54px;
- left: -12px;
-}
-
-.mx_RoomTile_nameContainer {
- display: flex;
- align-items: center;
- flex: 1;
- vertical-align: middle;
- min-width: 0;
-}
-
-.mx_RoomTile_labelContainer {
- display: flex;
- flex-direction: column;
- flex: 1;
- min-width: 0;
-}
-
-.mx_RoomTile_subtext {
- display: inline-block;
- font-size: $font-11px;
- padding: 0 0 0 7px;
- margin: 0;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: clip;
- position: relative;
- bottom: 4px;
-}
-
-.mx_RoomTile_avatar_container {
- position: relative;
- display: flex;
-}
-
-.mx_RoomTile_avatar {
- flex: 0;
+ margin-bottom: 4px;
padding: 4px;
- width: 24px;
- vertical-align: middle;
-}
-.mx_RoomTile_hasSubtext .mx_RoomTile_avatar {
- padding-top: 0;
- vertical-align: super;
-}
+ // The tile is also a flexbox row itself
+ display: flex;
-.mx_RoomTile_dm {
- display: block;
- position: absolute;
- bottom: 0;
- right: -5px;
- z-index: 2;
-}
+ &.mx_RoomTile_selected,
+ &:hover,
+ &:focus-within,
+ &.mx_RoomTile_hasMenuOpen {
+ background-color: $roomtile-selected-bg-color;
+ border-radius: 8px;
+ }
-// Note we match .mx_E2EIcon to make sure this matches more tightly than just
-// .mx_E2EIcon on its own
-.mx_RoomTile_e2eIcon.mx_E2EIcon {
- height: 14px;
- width: 14px;
- display: block;
- position: absolute;
- bottom: -2px;
- right: -5px;
- z-index: 1;
- margin: 0;
-}
+ .mx_DecoratedRoomAvatar, .mx_RoomTile_avatarContainer {
+ margin-right: 8px;
+ }
-.mx_RoomTile_name {
- font-size: $font-14px;
- padding: 0 4px;
- color: $roomtile-name-color;
- white-space: nowrap;
- overflow-x: hidden;
- text-overflow: ellipsis;
-}
+ .mx_RoomTile_nameContainer {
+ flex-grow: 1;
+ min-width: 0; // allow flex to shrink it
+ margin-right: 8px; // spacing to buttons/badges
-.mx_RoomTile_badge {
- flex: 0 1 content;
- border-radius: 0.8em;
- padding: 0 0.4em;
- color: $roomtile-badge-fg-color;
- font-weight: 600;
- font-size: $font-12px;
-}
-
-.collapsed {
- .mx_RoomTile {
- margin: 0 6px;
- padding: 0 2px;
- position: relative;
+ // Create a new column layout flexbox for the name parts
+ display: flex;
+ flex-direction: column;
justify-content: center;
+
+ .mx_RoomTile_name,
+ .mx_RoomTile_messagePreview {
+ margin: 0 2px;
+ width: 100%;
+
+ // Ellipsize any text overflow
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ }
+
+ .mx_RoomTile_name {
+ font-size: $font-14px;
+ line-height: $font-18px;
+ }
+
+ .mx_RoomTile_name.mx_RoomTile_nameHasUnreadEvents {
+ font-weight: 600;
+ }
+
+ .mx_RoomTile_messagePreview {
+ font-size: $font-13px;
+ line-height: $font-18px;
+ color: $roomtile-preview-color;
+ }
+
+ .mx_RoomTile_nameWithPreview {
+ margin-top: -4px; // shift the name up a bit more
+ }
}
- .mx_RoomTile_name {
+ .mx_RoomTile_notificationsButton {
+ margin-left: 4px; // spacing between buttons
+ }
+
+ .mx_RoomTile_badgeContainer {
+ height: 16px;
+ // don't set width so that it takes no space when there is no badge to show
+ margin: auto 0; // vertically align
+
+ // Create a flexbox to make aligning dot badges easier
+ display: flex;
+ align-items: center;
+
+ .mx_NotificationBadge {
+ margin-right: 2px; // centering
+ }
+
+ .mx_NotificationBadge_dot {
+ // make the smaller dot occupy the same width for centering
+ margin-left: 5px;
+ margin-right: 7px;
+ }
+ }
+
+ // The context menu buttons are hidden by default
+ .mx_RoomTile_menuButton,
+ .mx_RoomTile_notificationsButton {
+ width: 20px;
+ min-width: 20px; // yay flex
+ height: 20px;
+ margin-top: auto;
+ margin-bottom: auto;
+ position: relative;
display: none;
+
+ &::before {
+ top: 2px;
+ left: 2px;
+ content: '';
+ width: 16px;
+ height: 16px;
+ position: absolute;
+ mask-position: center;
+ mask-size: contain;
+ mask-repeat: no-repeat;
+ background: $primary-fg-color;
+ }
}
- .mx_RoomTile_badge {
- position: absolute;
- right: 6px;
- top: 0px;
- border-radius: 16px;
- z-index: 3;
- border: 0.18em solid $secondary-accent-color;
- }
-
- .mx_RoomTile_menuButton {
- display: none; // no design for this for now
- }
- .mx_UserOnlineDot {
- display: none; // no design for this for now
- }
-}
-
-// toggle menuButton and badge on menu displayed
-.mx_RoomTile_menuDisplayed,
-// or on keyboard focus of room tile
-.mx_LeftPanel_container:not(.collapsed) .mx_RoomTile:focus-within,
-// or on pointer hover
-.mx_LeftPanel_container:not(.collapsed) .mx_RoomTile:hover {
- .mx_RoomTile_menuButton {
+ // If the room has an overriden notification setting then we always show the notifications menu button
+ .mx_RoomTile_notificationsButton.mx_RoomTile_notificationsButton_show {
display: block;
}
- .mx_UserOnlineDot {
- display: none;
+
+ .mx_RoomTile_menuButton::before {
+ mask-image: url('$(res)/img/element-icons/context-menu.svg');
+ }
+
+ &:not(.mx_RoomTile_minimized) {
+ &:hover,
+ &:focus-within,
+ &.mx_RoomTile_hasMenuOpen {
+ // Hide the badge container on hover because it'll be a menu button
+ .mx_RoomTile_badgeContainer {
+ width: 0;
+ height: 0;
+ display: none;
+ }
+
+ .mx_RoomTile_notificationsButton,
+ .mx_RoomTile_menuButton {
+ display: block;
+ }
+ }
+ }
+
+ &.mx_RoomTile_minimized {
+ flex-direction: column;
+ align-items: center;
+ position: relative;
+
+ .mx_DecoratedRoomAvatar, .mx_RoomTile_avatarContainer {
+ margin-right: 0;
+ }
}
}
-.mx_RoomTile_unreadNotify .mx_RoomTile_badge,
-.mx_RoomTile_badge.mx_RoomTile_badgeUnread {
- background-color: $roomtile-name-color;
+// We use these both in context menus and the room tiles
+.mx_RoomTile_iconBell::before {
+ mask-image: url('$(res)/img/element-icons/notifications.svg');
+}
+.mx_RoomTile_iconBellDot::before {
+ mask-image: url('$(res)/img/element-icons/roomlist/notifications-default.svg');
+}
+.mx_RoomTile_iconBellCrossed::before {
+ mask-image: url('$(res)/img/element-icons/roomlist/notifications-off.svg');
+}
+.mx_RoomTile_iconBellMentions::before {
+ mask-image: url('$(res)/img/element-icons/roomlist/notifications-dm.svg');
+}
+.mx_RoomTile_iconCheck::before {
+ mask-image: url('$(res)/img/element-icons/roomlist/checkmark.svg');
}
-.mx_RoomTile_highlight .mx_RoomTile_badge,
-.mx_RoomTile_badge.mx_RoomTile_badgeRed {
- color: $accent-fg-color;
- background-color: $warning-color;
-}
+.mx_RoomTile_contextMenu {
+ .mx_RoomTile_contextMenu_redRow {
+ .mx_AccessibleButton {
+ color: $warning-color !important; // !important to override styles from context menu
+ }
-.mx_RoomTile_unread, .mx_RoomTile_highlight {
- .mx_RoomTile_name {
- font-weight: 600;
- color: $roomtile-selected-color;
+ .mx_IconizedContextMenu_icon::before {
+ background-color: $warning-color;
+ }
+ }
+
+ .mx_RoomTile_contextMenu_activeRow {
+ &.mx_AccessibleButton, .mx_AccessibleButton {
+ color: $accent-color !important; // !important to override styles from context menu
+ }
+
+ .mx_IconizedContextMenu_icon::before {
+ background-color: $accent-color;
+ }
+ }
+
+ .mx_IconizedContextMenu_icon {
+ position: relative;
+ width: 16px;
+ height: 16px;
+
+ &::before {
+ content: '';
+ width: 16px;
+ height: 16px;
+ position: absolute;
+ mask-position: center;
+ mask-size: contain;
+ mask-repeat: no-repeat;
+ background: $primary-fg-color;
+ }
+ }
+
+ .mx_RoomTile_iconStar::before {
+ mask-image: url('$(res)/img/element-icons/roomlist/favorite.svg');
+ }
+
+ .mx_RoomTile_iconFavorite::before {
+ mask-image: url('$(res)/img/feather-customised/favourites.svg');
+ }
+
+ .mx_RoomTile_iconArrowDown::before {
+ mask-image: url('$(res)/img/element-icons/roomlist/low-priority.svg');
+ }
+
+ .mx_RoomTile_iconSettings::before {
+ mask-image: url('$(res)/img/element-icons/settings.svg');
+ }
+
+ .mx_RoomTile_iconSignOut::before {
+ mask-image: url('$(res)/img/element-icons/leave.svg');
}
}
-
-.mx_RoomTile_selected {
- border-radius: 4px;
- background-color: $roomtile-selected-bg-color;
-}
-
-.mx_DNDRoomTile {
- transform: none;
- transition: transform 0.2s;
-}
-
-.mx_DNDRoomTile_dragging {
- transform: scale(1.05, 1.05);
-}
-
-.mx_RoomTile_arrow {
- position: absolute;
- right: 0px;
-}
-
-.mx_RoomTile.mx_RoomTile_transparent {
- background-color: transparent;
-}
-
-.mx_RoomTile.mx_RoomTile_transparent:focus {
- background-color: $roomtile-transparent-focused-color;
-}
-
-.mx_GroupInviteTile .mx_RoomTile_name {
- flex: 1;
-}
diff --git a/res/css/views/rooms/_RoomTile2.scss b/res/css/views/rooms/_RoomTile2.scss
deleted file mode 100644
index 79b28598bd..0000000000
--- a/res/css/views/rooms/_RoomTile2.scss
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
-Copyright 2020 The Matrix.org Foundation C.I.C.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-// TODO: Rename on launch: https://github.com/vector-im/riot-web/issues/14367
-
-// Note: the room tile expects to be in a flexbox column container
-.mx_RoomTile2 {
- margin-bottom: 4px;
- padding: 4px;
-
- // The tile is also a flexbox row itself
- display: flex;
-
- &.mx_RoomTile2_selected,
- &:hover,
- &:focus-within,
- &.mx_RoomTile2_hasMenuOpen {
- background-color: $roomtile2-selected-bg-color;
- border-radius: 8px;
- }
-
- .mx_DecoratedRoomAvatar, .mx_RoomTile2_avatarContainer {
- margin-right: 8px;
- }
-
- .mx_RoomTile2_nameContainer {
- flex-grow: 1;
- min-width: 0; // allow flex to shrink it
- margin-right: 8px; // spacing to buttons/badges
-
- // Create a new column layout flexbox for the name parts
- display: flex;
- flex-direction: column;
- justify-content: center;
-
- .mx_RoomTile2_name,
- .mx_RoomTile2_messagePreview {
- margin: 0 2px;
- width: 100%;
-
- // Ellipsize any text overflow
- text-overflow: ellipsis;
- overflow: hidden;
- white-space: nowrap;
- }
-
- .mx_RoomTile2_name {
- font-size: $font-14px;
- line-height: $font-18px;
- }
-
- .mx_RoomTile2_name.mx_RoomTile2_nameHasUnreadEvents {
- font-weight: 600;
- }
-
- .mx_RoomTile2_messagePreview {
- font-size: $font-13px;
- line-height: $font-18px;
- color: $roomtile2-preview-color;
- }
-
- .mx_RoomTile2_nameWithPreview {
- margin-top: -4px; // shift the name up a bit more
- }
- }
-
- .mx_RoomTile2_notificationsButton {
- margin-left: 4px; // spacing between buttons
- }
-
- .mx_RoomTile2_badgeContainer {
- height: 16px;
- // don't set width so that it takes no space when there is no badge to show
- margin: auto 0; // vertically align
-
- // Create a flexbox to make aligning dot badges easier
- display: flex;
- align-items: center;
-
- .mx_NotificationBadge {
- margin-right: 2px; // centering
- }
-
- .mx_NotificationBadge_dot {
- // make the smaller dot occupy the same width for centering
- margin-left: 5px;
- margin-right: 7px;
- }
- }
-
- // The context menu buttons are hidden by default
- .mx_RoomTile2_menuButton,
- .mx_RoomTile2_notificationsButton {
- width: 20px;
- min-width: 20px; // yay flex
- height: 20px;
- margin-top: auto;
- margin-bottom: auto;
- position: relative;
- display: none;
-
- &::before {
- top: 2px;
- left: 2px;
- content: '';
- width: 16px;
- height: 16px;
- position: absolute;
- mask-position: center;
- mask-size: contain;
- mask-repeat: no-repeat;
- background: $primary-fg-color;
- }
- }
-
- // If the room has an overriden notification setting then we always show the notifications menu button
- .mx_RoomTile2_notificationsButton.mx_RoomTile2_notificationsButton_show {
- display: block;
- }
-
- .mx_RoomTile2_menuButton::before {
- mask-image: url('$(res)/img/element-icons/context-menu.svg');
- }
-
- &:not(.mx_RoomTile2_minimized) {
- &:hover,
- &:focus-within,
- &.mx_RoomTile2_hasMenuOpen {
- // Hide the badge container on hover because it'll be a menu button
- .mx_RoomTile2_badgeContainer {
- width: 0;
- height: 0;
- display: none;
- }
-
- .mx_RoomTile2_notificationsButton,
- .mx_RoomTile2_menuButton {
- display: block;
- }
- }
- }
-
- &.mx_RoomTile2_minimized {
- flex-direction: column;
- align-items: center;
- position: relative;
-
- .mx_DecoratedRoomAvatar, .mx_RoomTile2_avatarContainer {
- margin-right: 0;
- }
- }
-}
-
-// We use these both in context menus and the room tiles
-.mx_RoomTile2_iconBell::before {
- mask-image: url('$(res)/img/element-icons/notifications.svg');
-}
-.mx_RoomTile2_iconBellDot::before {
- mask-image: url('$(res)/img/element-icons/roomlist/notifications-default.svg');
-}
-.mx_RoomTile2_iconBellCrossed::before {
- mask-image: url('$(res)/img/element-icons/roomlist/notifications-off.svg');
-}
-.mx_RoomTile2_iconBellMentions::before {
- mask-image: url('$(res)/img/element-icons/roomlist/notifications-dm.svg');
-}
-.mx_RoomTile2_iconCheck::before {
- mask-image: url('$(res)/img/element-icons/roomlist/checkmark.svg');
-}
-
-.mx_RoomTile2_contextMenu {
- .mx_RoomTile2_contextMenu_redRow {
- .mx_AccessibleButton {
- color: $warning-color !important; // !important to override styles from context menu
- }
-
- .mx_IconizedContextMenu_icon::before {
- background-color: $warning-color;
- }
- }
-
- .mx_RoomTile2_contextMenu_activeRow {
- &.mx_AccessibleButton, .mx_AccessibleButton {
- color: $accent-color !important; // !important to override styles from context menu
- }
-
- .mx_IconizedContextMenu_icon::before {
- background-color: $accent-color;
- }
- }
-
- .mx_IconizedContextMenu_icon {
- position: relative;
- width: 16px;
- height: 16px;
-
- &::before {
- content: '';
- width: 16px;
- height: 16px;
- position: absolute;
- mask-position: center;
- mask-size: contain;
- mask-repeat: no-repeat;
- background: $primary-fg-color;
- }
- }
-
- .mx_RoomTile2_iconStar::before {
- mask-image: url('$(res)/img/element-icons/roomlist/favorite.svg');
- }
-
- .mx_RoomTile2_iconFavorite::before {
- mask-image: url('$(res)/img/feather-customised/favourites.svg');
- }
-
- .mx_RoomTile2_iconArrowDown::before {
- mask-image: url('$(res)/img/element-icons/roomlist/low-priority.svg');
- }
-
- .mx_RoomTile2_iconSettings::before {
- mask-image: url('$(res)/img/element-icons/settings.svg');
- }
-
- .mx_RoomTile2_iconSignOut::before {
- mask-image: url('$(res)/img/element-icons/leave.svg');
- }
-}
diff --git a/res/css/views/rooms/_RoomTileIcon.scss b/res/css/views/rooms/_RoomTileIcon.scss
index adc8ea2994..2f3afdd446 100644
--- a/res/css/views/rooms/_RoomTileIcon.scss
+++ b/res/css/views/rooms/_RoomTileIcon.scss
@@ -18,7 +18,7 @@ limitations under the License.
width: 12px;
height: 12px;
border-radius: 12px;
- background-color: $roomlist2-bg-color; // to match the room list itself
+ background-color: $roomlist-bg-color; // to match the room list itself
}
.mx_RoomTileIcon_globe::before {
diff --git a/res/css/views/rooms/_TopUnreadMessagesBar.scss b/res/css/views/rooms/_TopUnreadMessagesBar.scss
index 28eddf1fa2..c0545660c2 100644
--- a/res/css/views/rooms/_TopUnreadMessagesBar.scss
+++ b/res/css/views/rooms/_TopUnreadMessagesBar.scss
@@ -42,7 +42,7 @@ limitations under the License.
border-radius: 19px;
box-sizing: border-box;
background: $primary-bg-color;
- border: 1.3px solid $roomtile-name-color;
+ border: 1.3px solid $muted-fg-color;
cursor: pointer;
}
@@ -54,7 +54,7 @@ limitations under the License.
mask-image: url('$(res)/img/icon-jump-to-first-unread.svg');
mask-repeat: no-repeat;
mask-position: 9px 13px;
- background: $roomtile-name-color;
+ background: $muted-fg-color;
}
.mx_TopUnreadMessagesBar_markAsRead {
@@ -62,7 +62,7 @@ limitations under the License.
width: 18px;
height: 18px;
background: $primary-bg-color;
- border: 1.3px solid $roomtile-name-color;
+ border: 1.3px solid $muted-fg-color;
border-radius: 10px;
margin: 5px auto;
}
@@ -76,5 +76,5 @@ limitations under the License.
mask-repeat: no-repeat;
mask-size: 10px;
mask-position: 4px 4px;
- background: $roomtile-name-color;
+ background: $muted-fg-color;
}
diff --git a/res/css/views/rooms/_UserOnlineDot.scss b/res/css/views/rooms/_UserOnlineDot.scss
deleted file mode 100644
index f9da8648ed..0000000000
--- a/res/css/views/rooms/_UserOnlineDot.scss
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-Copyright 2019 The Matrix.org Foundation C.I.C.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-.mx_UserOnlineDot {
- border-radius: 50%;
- background-color: $accent-color;
- height: 6px;
- width: 6px;
- display: inline-block;
-}
diff --git a/res/css/views/voip/_CallContainer.scss b/res/css/views/voip/_CallContainer.scss
index e13c851716..8d1b68dd99 100644
--- a/res/css/views/voip/_CallContainer.scss
+++ b/res/css/views/voip/_CallContainer.scss
@@ -36,12 +36,12 @@ limitations under the License.
}
}
- .mx_IncomingCallBox2 {
+ .mx_IncomingCallBox {
min-width: 250px;
background-color: $primary-bg-color;
padding: 8px;
- .mx_IncomingCallBox2_CallerInfo {
+ .mx_IncomingCallBox_CallerInfo {
display: flex;
direction: row;
@@ -68,12 +68,12 @@ limitations under the License.
}
}
- .mx_IncomingCallBox2_buttons {
+ .mx_IncomingCallBox_buttons {
padding: 8px;
display: flex;
flex-direction: row;
- > .mx_IncomingCallBox2_spacer {
+ > .mx_IncomingCallBox_spacer {
width: 8px;
}
diff --git a/res/css/views/voip/_CallView.scss b/res/css/views/voip/_CallView.scss
index 4650f30c1d..f6f3d40308 100644
--- a/res/css/views/voip/_CallView.scss
+++ b/res/css/views/voip/_CallView.scss
@@ -1,5 +1,6 @@
/*
Copyright 2015, 2016 OpenMarket Ltd
+Copyright 2020 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -18,8 +19,76 @@ limitations under the License.
background-color: $accent-color;
color: $accent-fg-color;
cursor: pointer;
- text-align: center;
padding: 6px;
font-weight: bold;
- font-size: $font-13px;
+
+ border-radius: 8px;
+ min-width: 200px;
+
+ display: flex;
+ align-items: center;
+
+ img {
+ margin: 4px;
+ margin-right: 10px;
+ }
+
+ > div {
+ display: flex;
+ flex-direction: column;
+ // Hacky vertical align
+ padding-top: 3px;
+ }
+
+ > div > p,
+ > div > h1 {
+ padding: 0;
+ margin: 0;
+ font-size: $font-13px;
+ line-height: $font-15px;
+ }
+
+ > div > p {
+ font-weight: bold;
+ }
+
+ > * {
+ flex-grow: 0;
+ flex-shrink: 0;
+ }
+}
+
+.mx_CallView_hangup {
+ position: absolute;
+
+ right: 8px;
+ bottom: 10px;
+
+ height: 35px;
+ width: 35px;
+
+ border-radius: 35px;
+
+ background-color: $notice-primary-color;
+
+ z-index: 101;
+
+ cursor: pointer;
+
+ &::before {
+ content: '';
+ position: absolute;
+
+ height: 20px;
+ width: 20px;
+
+ top: 6.5px;
+ left: 7.5px;
+
+ mask: url('$(res)/img/hangup.svg');
+ mask-size: contain;
+ background-size: contain;
+
+ background-color: $primary-fg-color;
+ }
}
diff --git a/res/css/views/voip/_CallView2.scss b/res/css/views/voip/_CallView2.scss
deleted file mode 100644
index 3b66e7a175..0000000000
--- a/res/css/views/voip/_CallView2.scss
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
-Copyright 2015, 2016 OpenMarket Ltd
-Copyright 2020 The Matrix.org Foundation C.I.C.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-// TODO: Rename on launch: https://github.com/vector-im/riot-web/issues/14231
-
-.mx_CallView2_voice {
- background-color: $accent-color;
- color: $accent-fg-color;
- cursor: pointer;
- padding: 6px;
- font-weight: bold;
-
- border-radius: 8px;
- min-width: 200px;
-
- display: flex;
- align-items: center;
-
- img {
- margin: 4px;
- margin-right: 10px;
- }
-
- > div {
- display: flex;
- flex-direction: column;
- // Hacky vertical align
- padding-top: 3px;
- }
-
- > div > p,
- > div > h1 {
- padding: 0;
- margin: 0;
- font-size: $font-13px;
- line-height: $font-15px;
- }
-
- > div > p {
- font-weight: bold;
- }
-
- > * {
- flex-grow: 0;
- flex-shrink: 0;
- }
-}
-
-.mx_CallView2_hangup {
- position: absolute;
-
- right: 8px;
- bottom: 10px;
-
- height: 35px;
- width: 35px;
-
- border-radius: 35px;
-
- background-color: $notice-primary-color;
-
- z-index: 101;
-
- cursor: pointer;
-
- &::before {
- content: '';
- position: absolute;
-
- height: 20px;
- width: 20px;
-
- top: 6.5px;
- left: 7.5px;
-
- mask: url('$(res)/img/hangup.svg');
- mask-size: contain;
- background-size: contain;
-
- background-color: $primary-fg-color;
- }
-}
diff --git a/res/css/views/voip/_IncomingCallbox.scss b/res/css/views/voip/_IncomingCallbox.scss
deleted file mode 100644
index ed33de470d..0000000000
--- a/res/css/views/voip/_IncomingCallbox.scss
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-Copyright 2015, 2016 OpenMarket Ltd
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-.mx_IncomingCallBox {
- text-align: center;
- border: 1px solid #a4a4a4;
- border-radius: 8px;
- background-color: $primary-bg-color;
- position: fixed;
- z-index: 1000;
- padding: 6px;
- margin-top: -3px;
- margin-left: -20px;
- width: 200px;
-}
-
-.mx_IncomingCallBox_chevron {
- padding: 12px;
- position: absolute;
- left: -21px;
- top: 0px;
-}
-
-.mx_IncomingCallBox_title {
- padding: 6px;
- font-weight: bold;
-}
-
-.mx_IncomingCallBox_buttons {
- display: flex;
-}
-
-.mx_IncomingCallBox_buttons_cell {
- vertical-align: middle;
- padding: 6px;
- flex: 1;
-}
-
-.mx_IncomingCallBox_buttons_decline,
-.mx_IncomingCallBox_buttons_accept {
- vertical-align: middle;
- width: 80px;
- height: 36px;
- line-height: $font-36px;
- border-radius: 36px;
- color: $accent-fg-color;
- margin: auto;
-}
-
-.mx_IncomingCallBox_buttons_decline {
- background-color: $voip-decline-color;
-}
-
-.mx_IncomingCallBox_buttons_accept {
- background-color: $voip-accept-color;
-}
diff --git a/res/themes/dark/css/_dark.scss b/res/themes/dark/css/_dark.scss
index 370c30d4f2..15155ba854 100644
--- a/res/themes/dark/css/_dark.scss
+++ b/res/themes/dark/css/_dark.scss
@@ -108,32 +108,20 @@ $composer-e2e-icon-color: $header-panel-text-primary-color;
// ********************
-// V2 Room List
-// TODO: Remove the 2 from all of these when the new list takes over
-
$theme-button-bg-color: #e3e8f0;
+$roomlist-button-bg-color: rgba(141, 151, 165, 0.2); // Buttons include the filter box, explore button, and sublist buttons
+$roomlist-bg-color: rgba(33, 38, 44, 0.90);
+$roomlist-header-color: #8E99A4;
+$roomsublist-divider-color: $primary-fg-color;
-$roomlist2-button-bg-color: rgba(141, 151, 165, 0.2); // Buttons include the filter box, explore button, and sublist buttons
-$roomlist2-bg-color: rgba(33, 38, 44, 0.90);
-$roomlist2-header-color: #8E99A4;
-$roomsublist2-divider-color: $primary-fg-color;
-
-$roomtile2-preview-color: #A9B2BC;
-$roomtile2-default-badge-bg-color: #61708b;
-$roomtile2-selected-bg-color: rgba(141, 151, 165, 0.2);
+$roomtile-preview-color: #A9B2BC;
+$roomtile-default-badge-bg-color: #61708b;
+$roomtile-selected-bg-color: rgba(141, 151, 165, 0.2);
// ********************
-$notice-secondary-color: $roomlist2-header-color;
-
-$roomtile-name-color: $header-panel-text-primary-color;
-$roomtile-selected-color: $text-primary-color;
-$roomtile-notified-color: $text-primary-color;
-$roomtile-selected-bg-color: $room-highlight-color;
-$roomtile-focused-bg-color: $room-highlight-color;
-
-$roomtile-transparent-focused-color: rgba(0, 0, 0, 0.1);
+$notice-secondary-color: $roomlist-header-color;
$panel-divider-color: transparent;
diff --git a/res/themes/legacy-dark/css/_legacy-dark.scss b/res/themes/legacy-dark/css/_legacy-dark.scss
index 6671afb929..7ecfcf13d9 100644
--- a/res/themes/legacy-dark/css/_legacy-dark.scss
+++ b/res/themes/legacy-dark/css/_legacy-dark.scss
@@ -107,30 +107,19 @@ $composer-e2e-icon-color: $header-panel-text-primary-color;
// ********************
-// V2 Room List
-// TODO: Remove the 2 from all of these when the new list takes over
-
$theme-button-bg-color: #e3e8f0;
-$roomlist2-button-bg-color: #1A1D23; // Buttons include the filter box, explore button, and sublist buttons
-$roomlist2-bg-color: $header-panel-bg-color;
+$roomlist-button-bg-color: #1A1D23; // Buttons include the filter box, explore button, and sublist buttons
+$roomlist-bg-color: $header-panel-bg-color;
-$roomsublist2-divider-color: $primary-fg-color;
+$roomsublist-divider-color: $primary-fg-color;
-$roomtile2-preview-color: #9e9e9e;
-$roomtile2-default-badge-bg-color: #61708b;
-$roomtile2-selected-bg-color: #1A1D23;
+$roomtile-preview-color: #9e9e9e;
+$roomtile-default-badge-bg-color: #61708b;
+$roomtile-selected-bg-color: #1A1D23;
// ********************
-$roomtile-name-color: $header-panel-text-primary-color;
-$roomtile-selected-color: $text-primary-color;
-$roomtile-notified-color: $text-primary-color;
-$roomtile-selected-bg-color: $room-highlight-color;
-$roomtile-focused-bg-color: $room-highlight-color;
-
-$roomtile-transparent-focused-color: rgba(0, 0, 0, 0.1);
-
$panel-divider-color: $header-panel-border-color;
$widget-menu-bar-bg-color: $header-panel-bg-color;
diff --git a/res/themes/legacy-light/css/_legacy-light.scss b/res/themes/legacy-light/css/_legacy-light.scss
index 822b65d57d..3465aa307e 100644
--- a/res/themes/legacy-light/css/_legacy-light.scss
+++ b/res/themes/legacy-light/css/_legacy-light.scss
@@ -174,19 +174,16 @@ $header-divider-color: #91a1c0;
// ********************
-// V2 Room List
-// TODO: Remove the 2 from all of these when the new list takes over
-
$theme-button-bg-color: #e3e8f0;
-$roomlist2-button-bg-color: #fff; // Buttons include the filter box, explore button, and sublist buttons
-$roomlist2-bg-color: $header-panel-bg-color;
-$roomlist2-header-color: $primary-fg-color;
-$roomsublist2-divider-color: $primary-fg-color;
+$roomlist-button-bg-color: #fff; // Buttons include the filter box, explore button, and sublist buttons
+$roomlist-bg-color: $header-panel-bg-color;
+$roomlist-header-color: $primary-fg-color;
+$roomsublist-divider-color: $primary-fg-color;
-$roomtile2-preview-color: #9e9e9e;
-$roomtile2-default-badge-bg-color: #61708b;
-$roomtile2-selected-bg-color: #fff;
+$roomtile-preview-color: #9e9e9e;
+$roomtile-default-badge-bg-color: #61708b;
+$roomtile-selected-bg-color: #fff;
$presence-online: $accent-color;
$presence-away: #d9b072;
@@ -194,13 +191,6 @@ $presence-offline: #e3e8f0;
// ********************
-$roomtile-name-color: #61708b;
-$roomtile-badge-fg-color: $accent-fg-color;
-$roomtile-selected-color: #212121;
-$roomtile-notified-color: #212121;
-$roomtile-selected-bg-color: #fff;
-$roomtile-focused-bg-color: #fff;
-
$username-variant1-color: #368bd6;
$username-variant2-color: #ac3ba8;
$username-variant3-color: #03b381;
@@ -210,13 +200,6 @@ $username-variant6-color: #2dc2c5;
$username-variant7-color: #5c56f5;
$username-variant8-color: #74d12c;
-$roomtile-transparent-focused-color: rgba(0, 0, 0, 0.1);
-
-$roomsublist-background: $secondary-accent-color;
-$roomsublist-label-fg-color: $roomtile-name-color;
-$roomsublist-label-bg-color: $tertiary-accent-color;
-$roomsublist-chevron-color: $accent-color;
-
$panel-divider-color: #dee1f3;
// ********************
@@ -292,7 +275,7 @@ $progressbar-color: #000;
$room-warning-bg-color: $yellow-background;
-$memberstatus-placeholder-color: $roomtile-name-color;
+$memberstatus-placeholder-color: $muted-fg-color;
$authpage-bg-color: #2e3649;
$authpage-modal-bg-color: rgba(255, 255, 255, 0.59);
diff --git a/res/themes/light-custom/css/_custom.scss b/res/themes/light-custom/css/_custom.scss
index b492006247..b830e86e02 100644
--- a/res/themes/light-custom/css/_custom.scss
+++ b/res/themes/light-custom/css/_custom.scss
@@ -25,7 +25,6 @@ $button-link-fg-color: var(--accent-color);
$button-primary-bg-color: var(--accent-color);
$input-valid-border-color: var(--accent-color);
$reaction-row-button-selected-border-color: var(--accent-color);
-$roomsublist-chevron-color: var(--accent-color);
$tab-label-active-bg-color: var(--accent-color);
$togglesw-on-color: var(--accent-color);
$username-variant3-color: var(--accent-color);
@@ -40,7 +39,6 @@ $menu-bg-color: var(--timeline-background-color);
$avatar-bg-color: var(--timeline-background-color);
$message-action-bar-bg-color: var(--timeline-background-color);
$primary-bg-color: var(--timeline-background-color);
-$roomtile-focused-bg-color: var(--timeline-background-color);
$togglesw-ball-color: var(--timeline-background-color);
$droptarget-bg-color: var(--timeline-background-color-50pct); //still needs alpha at .5
$authpage-modal-bg-color: var(--timeline-background-color-50pct); //still needs alpha at .59
@@ -48,14 +46,13 @@ $roomheader-bg-color: var(--timeline-background-color);
//
// --roomlist-highlights-color
$roomtile-selected-bg-color: var(--roomlist-highlights-color);
-$roomtile2-selected-bg-color: var(--roomlist-highlights-color);
//
// --sidebar-color
$interactive-tooltip-bg-color: var(--sidebar-color);
$tagpanel-bg-color: var(--sidebar-color);
$tooltip-timeline-bg-color: var(--sidebar-color);
$dialog-backdrop-color: var(--sidebar-color-50pct);
-$roomlist2-button-bg-color: var(--sidebar-color-15pct);
+$roomlist-button-bg-color: var(--sidebar-color-15pct);
//
// --roomlist-background-color
$header-panel-bg-color: var(--roomlist-background-color);
@@ -65,12 +62,10 @@ $panel-gradient: var(--roomlist-background-color-0pct), var(--roomlist-backgroun
$dark-panel-bg-color: var(--roomlist-background-color);
$input-lighter-bg-color: var(--roomlist-background-color);
$plinth-bg-color: var(--roomlist-background-color);
-$roomsublist-background: var(--roomlist-background-color);
$secondary-accent-color: var(--roomlist-background-color);
$selected-color: var(--roomlist-background-color);
$widget-menu-bar-bg-color: var(--roomlist-background-color);
-$roomtile-badge-fg-color: var(--roomlist-background-color);
-$roomlist2-bg-color: var(--roomlist-background-color);
+$roomlist-bg-color: var(--roomlist-background-color);
//
// --timeline-text-color
$message-action-bar-fg-color: var(--timeline-text-color);
@@ -87,23 +82,17 @@ $tab-label-fg-color: var(--timeline-text-color);
// was #4e5054
$authpage-lang-color: var(--timeline-text-color);
$roomheader-color: var(--timeline-text-color);
-//
-// --roomlist-text-color
-$roomtile-notified-color: var(--roomlist-text-color);
-$roomtile-selected-color: var(--roomlist-text-color);
// --roomlist-text-secondary-color
-$roomsublist-label-fg-color: var(--roomlist-text-secondary-color);
-$roomtile-name-color: var(--roomlist-text-secondary-color);
-$roomtile2-preview-color: var(--roomlist-text-secondary-color);
-$roomlist2-header-color: var(--roomlist-text-secondary-color);
-$roomtile2-default-badge-bg-color: var(--roomlist-text-secondary-color);
+$roomtile-preview-color: var(--roomlist-text-secondary-color);
+$roomlist-header-color: var(--roomlist-text-secondary-color);
+$roomtile-default-badge-bg-color: var(--roomlist-text-secondary-color);
//
// --roomlist-separator-color
$input-darker-bg-color: var(--roomlist-separator-color);
$panel-divider-color: var(--roomlist-separator-color);// originally #dee1f3, but close enough
$primary-hairline-color: var(--roomlist-separator-color);// originally #e5e5e5, but close enough
-$roomsublist2-divider-color: var(--roomlist-separator-color);
+$roomsublist-divider-color: var(--roomlist-separator-color);
//
// --timeline-text-secondary-color
$authpage-secondary-color: var(--timeline-text-secondary-color);
diff --git a/res/themes/light/css/_light.scss b/res/themes/light/css/_light.scss
index 657d3bfd13..e317683963 100644
--- a/res/themes/light/css/_light.scss
+++ b/res/themes/light/css/_light.scss
@@ -19,8 +19,8 @@ $accent-bg-color: rgba(3, 179, 129, 0.16);
$notice-primary-color: #ff4b55;
$notice-primary-bg-color: rgba(255, 75, 85, 0.16);
$primary-fg-color: #2e2f32;
-$roomlist2-header-color: $primary-fg-color;
-$notice-secondary-color: $roomlist2-header-color;
+$roomlist-header-color: $primary-fg-color;
+$notice-secondary-color: $roomlist-header-color;
$header-panel-bg-color: #f3f8fd;
// typical text (dark-on-white in light skin)
@@ -174,32 +174,22 @@ $header-divider-color: #91A1C0;
// ********************
-// V2 Room List
-// TODO: Remove the 2 from all of these when the new list takes over
-
$theme-button-bg-color: #e3e8f0;
-$roomlist2-button-bg-color: #fff; // Buttons include the filter box, explore button, and sublist buttons
-$roomlist2-bg-color: rgba(245, 245, 245, 0.90);
-$roomsublist2-divider-color: $primary-fg-color;
+$roomlist-button-bg-color: #fff; // Buttons include the filter box, explore button, and sublist buttons
+$roomlist-bg-color: rgba(245, 245, 245, 0.90);
+$roomsublist-divider-color: $primary-fg-color;
-$roomtile2-preview-color: #737D8C;
-$roomtile2-default-badge-bg-color: #61708b;
-$roomtile2-selected-bg-color: #FFF;
+$roomtile-preview-color: #737D8C;
+$roomtile-default-badge-bg-color: #61708b;
+$roomtile-selected-bg-color: #FFF;
$presence-online: $accent-color;
-$presence-away: orange; // TODO: Get color
+$presence-away: #d9b072;
$presence-offline: #E3E8F0;
// ********************
-$roomtile-name-color: #61708b;
-$roomtile-badge-fg-color: $accent-fg-color;
-$roomtile-selected-color: #212121;
-$roomtile-notified-color: #212121;
-$roomtile-selected-bg-color: #fff;
-$roomtile-focused-bg-color: #fff;
-
$username-variant1-color: #368bd6;
$username-variant2-color: #ac3ba8;
$username-variant3-color: #0DBD8B;
@@ -209,13 +199,6 @@ $username-variant6-color: #2dc2c5;
$username-variant7-color: #5c56f5;
$username-variant8-color: #74d12c;
-$roomtile-transparent-focused-color: rgba(0, 0, 0, 0.1);
-
-$roomsublist-background: $secondary-accent-color;
-$roomsublist-label-fg-color: $roomtile-name-color;
-$roomsublist-label-bg-color: $tertiary-accent-color;
-$roomsublist-chevron-color: $accent-color;
-
$panel-divider-color: transparent;
// ********************
@@ -291,7 +274,7 @@ $progressbar-color: #000;
$room-warning-bg-color: $yellow-background;
-$memberstatus-placeholder-color: $roomtile-name-color;
+$memberstatus-placeholder-color: $muted-fg-color;
$authpage-bg-color: #2e3649;
$authpage-modal-bg-color: rgba(245, 245, 245, 0.90);
diff --git a/res/themes/light/css/_mods.scss b/res/themes/light/css/_mods.scss
index 810e0375ba..9a59acba8e 100644
--- a/res/themes/light/css/_mods.scss
+++ b/res/themes/light/css/_mods.scss
@@ -5,7 +5,7 @@
// it can be blurred by the tag panel and room list
@supports (backdrop-filter: none) {
- .mx_LeftPanel2 {
+ .mx_LeftPanel {
background-image: var(--avatar-url);
background-repeat: no-repeat;
background-size: cover;
@@ -16,12 +16,12 @@
backdrop-filter: blur($tagpanel-background-blur-amount);
}
- .mx_LeftPanel2 .mx_LeftPanel2_roomListContainer {
+ .mx_LeftPanel .mx_LeftPanel_roomListContainer {
backdrop-filter: blur($roomlist-background-blur-amount);
}
}
-.mx_RoomSublist2_showNButton {
+.mx_RoomSublist_showNButton {
background-color: transparent !important;
}
diff --git a/src/@types/global.d.ts b/src/@types/global.d.ts
index 9424cdcd17..f556ff8b5c 100644
--- a/src/@types/global.d.ts
+++ b/src/@types/global.d.ts
@@ -20,7 +20,7 @@ import { IMatrixClientPeg } from "../MatrixClientPeg";
import ToastStore from "../stores/ToastStore";
import DeviceListener from "../DeviceListener";
import RebrandListener from "../RebrandListener";
-import { RoomListStore2 } from "../stores/room-list/RoomListStore2";
+import { RoomListStoreClass } from "../stores/room-list/RoomListStore";
import { PlatformPeg } from "../PlatformPeg";
import RoomListLayoutStore from "../stores/room-list/RoomListLayoutStore";
import {IntegrationManagers} from "../integrations/IntegrationManagers";
@@ -37,7 +37,7 @@ declare global {
mx_ToastStore: ToastStore;
mx_DeviceListener: DeviceListener;
mx_RebrandListener: RebrandListener;
- mx_RoomListStore2: RoomListStore2;
+ mx_RoomListStore: RoomListStoreClass;
mx_RoomListLayoutStore: RoomListLayoutStore;
mxPlatformPeg: PlatformPeg;
mxIntegrationManagers: typeof IntegrationManagers;
diff --git a/src/SlashCommands.tsx b/src/SlashCommands.tsx
index ed69dd2204..40bf0a8e49 100644
--- a/src/SlashCommands.tsx
+++ b/src/SlashCommands.tsx
@@ -1049,7 +1049,7 @@ export function parseCommandString(input) {
// trim any trailing whitespace, as it can confuse the parser for
// IRC-style commands
input = input.replace(/\s+$/, '');
- if (input[0] !== '/') return null; // not a command
+ if (input[0] !== '/') return {}; // not a command
const bits = input.match(/^(\S+?)(?: +((.|\n)*))?$/);
let cmd;
diff --git a/src/actions/RoomListActions.ts b/src/actions/RoomListActions.ts
index e15e1b0c65..da07bcb169 100644
--- a/src/actions/RoomListActions.ts
+++ b/src/actions/RoomListActions.ts
@@ -16,7 +16,6 @@ limitations under the License.
*/
import { asyncAction } from './actionCreators';
-import { TAG_DM } from '../stores/RoomListStore';
import Modal from '../Modal';
import * as Rooms from '../Rooms';
import { _t } from '../languageHandler';
@@ -24,7 +23,9 @@ import * as sdk from '../index';
import { MatrixClient } from "matrix-js-sdk/src/client";
import { Room } from "matrix-js-sdk/src/models/room";
import { AsyncActionPayload } from "../dispatcher/payloads";
-import { RoomListStoreTempProxy } from "../stores/room-list/RoomListStoreTempProxy";
+import RoomListStore from "../stores/room-list/RoomListStore";
+import { SortAlgorithm } from "../stores/room-list/algorithms/models";
+import { DefaultTagID } from "../stores/room-list/models";
export default class RoomListActions {
/**
@@ -51,9 +52,9 @@ export default class RoomListActions {
let metaData = null;
// Is the tag ordered manually?
- if (newTag && !newTag.match(/^(m\.lowpriority|im\.vector\.fake\.(invite|recent|direct|archived))$/)) {
- const lists = RoomListStoreTempProxy.getRoomLists();
- const newList = [...lists[newTag]];
+ const store = RoomListStore.instance;
+ if (newTag && store.getTagSorting(newTag) === SortAlgorithm.Manual) {
+ const newList = [...store.orderedLists[newTag]];
newList.sort((a, b) => a.tags[newTag].order - b.tags[newTag].order);
@@ -81,11 +82,11 @@ export default class RoomListActions {
const roomId = room.roomId;
// Evil hack to get DMs behaving
- if ((oldTag === undefined && newTag === TAG_DM) ||
- (oldTag === TAG_DM && newTag === undefined)
+ if ((oldTag === undefined && newTag === DefaultTagID.DM) ||
+ (oldTag === DefaultTagID.DM && newTag === undefined)
) {
return Rooms.guessAndSetDMRoom(
- room, newTag === TAG_DM,
+ room, newTag === DefaultTagID.DM,
).catch((err) => {
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
console.error("Failed to set direct chat tag " + err);
@@ -102,7 +103,7 @@ export default class RoomListActions {
// but we avoid ever doing a request with TAG_DM.
//
// if we moved lists, remove the old tag
- if (oldTag && oldTag !== TAG_DM &&
+ if (oldTag && oldTag !== DefaultTagID.DM &&
hasChangedSubLists
) {
const promiseToDelete = matrixClient.deleteRoomTag(
@@ -120,7 +121,7 @@ export default class RoomListActions {
}
// if we moved lists or the ordering changed, add the new tag
- if (newTag && newTag !== TAG_DM &&
+ if (newTag && newTag !== DefaultTagID.DM &&
(hasChangedSubLists || metaData)
) {
// metaData is the body of the PUT to set the tag, so it must
diff --git a/src/components/structures/LeftPanel.js b/src/components/structures/LeftPanel.js
deleted file mode 100644
index bae69b5631..0000000000
--- a/src/components/structures/LeftPanel.js
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
-Copyright 2015, 2016 OpenMarket Ltd
-Copyright 2019 The Matrix.org Foundation C.I.C.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-import React from 'react';
-import createReactClass from 'create-react-class';
-import PropTypes from 'prop-types';
-import classNames from 'classnames';
-import { Key } from '../../Keyboard';
-import * as sdk from '../../index';
-import dis from '../../dispatcher/dispatcher';
-import * as VectorConferenceHandler from '../../VectorConferenceHandler';
-import SettingsStore from '../../settings/SettingsStore';
-import {_t} from "../../languageHandler";
-import Analytics from "../../Analytics";
-import {Action} from "../../dispatcher/actions";
-
-
-const LeftPanel = createReactClass({
- displayName: 'LeftPanel',
-
- // NB. If you add props, don't forget to update
- // shouldComponentUpdate!
- propTypes: {
- collapsed: PropTypes.bool.isRequired,
- },
-
- getInitialState: function() {
- return {
- searchFilter: '',
- breadcrumbs: false,
- };
- },
-
- // TODO: [REACT-WARNING] Move this to constructor
- UNSAFE_componentWillMount: function() {
- this.focusedElement = null;
-
- this._breadcrumbsWatcherRef = SettingsStore.watchSetting(
- "breadcrumbs", null, this._onBreadcrumbsChanged);
- this._tagPanelWatcherRef = SettingsStore.watchSetting(
- "TagPanel.enableTagPanel", null, () => this.forceUpdate());
-
- const useBreadcrumbs = !!SettingsStore.getValue("breadcrumbs");
- Analytics.setBreadcrumbs(useBreadcrumbs);
- this.setState({breadcrumbs: useBreadcrumbs});
- },
-
- componentWillUnmount: function() {
- SettingsStore.unwatchSetting(this._breadcrumbsWatcherRef);
- SettingsStore.unwatchSetting(this._tagPanelWatcherRef);
- },
-
- shouldComponentUpdate: function(nextProps, nextState) {
- // MatrixChat will update whenever the user switches
- // rooms, but propagating this change all the way down
- // the react tree is quite slow, so we cut this off
- // here. The RoomTiles listen for the room change
- // events themselves to know when to update.
- // We just need to update if any of these things change.
- if (
- this.props.collapsed !== nextProps.collapsed ||
- this.props.disabled !== nextProps.disabled
- ) {
- return true;
- }
-
- if (this.state.searchFilter !== nextState.searchFilter) {
- return true;
- }
- if (this.state.searchExpanded !== nextState.searchExpanded) {
- return true;
- }
-
- return false;
- },
-
- componentDidUpdate(prevProps, prevState) {
- if (prevState.breadcrumbs !== this.state.breadcrumbs) {
- Analytics.setBreadcrumbs(this.state.breadcrumbs);
- }
- },
-
- _onBreadcrumbsChanged: function(settingName, roomId, level, valueAtLevel, value) {
- // Features are only possible at a single level, so we can get away with using valueAtLevel.
- // The SettingsStore runs on the same tick as the update, so `value` will be wrong.
- this.setState({breadcrumbs: valueAtLevel});
-
- // For some reason the setState doesn't trigger a render of the component, so force one.
- // Probably has to do with the change happening outside of a change detector cycle.
- this.forceUpdate();
- },
-
- _onFocus: function(ev) {
- this.focusedElement = ev.target;
- },
-
- _onBlur: function(ev) {
- this.focusedElement = null;
- },
-
- _onFilterKeyDown: function(ev) {
- if (!this.focusedElement) return;
-
- switch (ev.key) {
- // On enter of rooms filter select and activate first room if such one exists
- case Key.ENTER: {
- const firstRoom = ev.target.closest(".mx_LeftPanel").querySelector(".mx_RoomTile");
- if (firstRoom) {
- firstRoom.click();
- }
- break;
- }
- }
- },
-
- _onKeyDown: function(ev) {
- if (!this.focusedElement) return;
-
- switch (ev.key) {
- case Key.ARROW_UP:
- this._onMoveFocus(ev, true, true);
- break;
- case Key.ARROW_DOWN:
- this._onMoveFocus(ev, false, true);
- break;
- }
- },
-
- _onMoveFocus: function(ev, up, trap) {
- let element = this.focusedElement;
-
- // unclear why this isn't needed
- // var descending = (up == this.focusDirection) ? this.focusDescending : !this.focusDescending;
- // this.focusDirection = up;
-
- let descending = false; // are we currently descending or ascending through the DOM tree?
- let classes;
-
- do {
- const child = up ? element.lastElementChild : element.firstElementChild;
- const sibling = up ? element.previousElementSibling : element.nextElementSibling;
-
- if (descending) {
- if (child) {
- element = child;
- } else if (sibling) {
- element = sibling;
- } else {
- descending = false;
- element = element.parentElement;
- }
- } else {
- if (sibling) {
- element = sibling;
- descending = true;
- } else {
- element = element.parentElement;
- }
- }
-
- if (element) {
- classes = element.classList;
- }
- } while (element && !(
- classes.contains("mx_RoomTile") ||
- classes.contains("mx_RoomSubList_label") ||
- classes.contains("mx_LeftPanel_filterRooms")));
-
- if (element) {
- ev.stopPropagation();
- ev.preventDefault();
- element.focus();
- this.focusedElement = element;
- } else if (trap) {
- // if navigation is via up/down arrow-keys, trap in the widget so it doesn't send to composer
- ev.stopPropagation();
- ev.preventDefault();
- }
- },
-
- onSearch: function(term) {
- this.setState({ searchFilter: term });
- },
-
- onSearchCleared: function(source) {
- if (source === "keyboard") {
- dis.fire(Action.FocusComposer);
- }
- this.setState({searchExpanded: false});
- },
-
- collectRoomList: function(ref) {
- this._roomList = ref;
- },
-
- _onSearchFocus: function() {
- this.setState({searchExpanded: true});
- },
-
- _onSearchBlur: function(event) {
- if (event.target.value.length === 0) {
- this.setState({searchExpanded: false});
- }
- },
-
- render: function() {
- const RoomList = sdk.getComponent('rooms.RoomList');
- const RoomBreadcrumbs = sdk.getComponent('rooms.RoomBreadcrumbs');
- const TagPanel = sdk.getComponent('structures.TagPanel');
- const CustomRoomTagPanel = sdk.getComponent('structures.CustomRoomTagPanel');
- const TopLeftMenuButton = sdk.getComponent('structures.TopLeftMenuButton');
- const SearchBox = sdk.getComponent('structures.SearchBox');
- const CallPreview = sdk.getComponent('voip.CallPreview');
- const AccessibleButton = sdk.getComponent('elements.AccessibleButton');
-
- const tagPanelEnabled = SettingsStore.getValue("TagPanel.enableTagPanel");
- let tagPanelContainer;
-
- const isCustomTagsEnabled = SettingsStore.isFeatureEnabled("feature_custom_tags");
-
- if (tagPanelEnabled) {
- tagPanelContainer = (
-
- { isCustomTagsEnabled ? : undefined }
-
);
- }
-
- const containerClasses = classNames(
- "mx_LeftPanel_container", "mx_fadable",
- {
- "collapsed": this.props.collapsed,
- "mx_LeftPanel_container_hasTagPanel": tagPanelEnabled,
- "mx_fadable_faded": this.props.disabled,
- },
- );
-
- let exploreButton;
- if (!this.props.collapsed) {
- exploreButton = (
-
-
dis.fire(Action.ViewRoomDirectory)}>{_t("Explore")}
-
- );
- }
-
- const searchBox = ();
-
- let breadcrumbs;
- if (this.state.breadcrumbs) {
- breadcrumbs = ();
- }
-
- const roomList = ;
-
- return (
-
- { tagPanelContainer }
-
-
- );
- },
-});
-
-export default LeftPanel;
diff --git a/src/components/structures/LeftPanel2.tsx b/src/components/structures/LeftPanel.tsx
similarity index 82%
rename from src/components/structures/LeftPanel2.tsx
rename to src/components/structures/LeftPanel.tsx
index 54da7446ac..dfefeacde5 100644
--- a/src/components/structures/LeftPanel2.tsx
+++ b/src/components/structures/LeftPanel.tsx
@@ -20,24 +20,21 @@ import TagPanel from "./TagPanel";
import classNames from "classnames";
import dis from "../../dispatcher/dispatcher";
import { _t } from "../../languageHandler";
-import RoomList2 from "../views/rooms/RoomList2";
-import { HEADER_HEIGHT } from "../views/rooms/RoomSublist2";
+import RoomList from "../views/rooms/RoomList";
+import { HEADER_HEIGHT } from "../views/rooms/RoomSublist";
import { Action } from "../../dispatcher/actions";
import UserMenu from "./UserMenu";
import RoomSearch from "./RoomSearch";
-import AccessibleButton from "../views/elements/AccessibleButton";
-import RoomBreadcrumbs2 from "../views/rooms/RoomBreadcrumbs2";
+import RoomBreadcrumbs from "../views/rooms/RoomBreadcrumbs";
import { BreadcrumbsStore } from "../../stores/BreadcrumbsStore";
import { UPDATE_EVENT } from "../../stores/AsyncStore";
import ResizeNotifier from "../../utils/ResizeNotifier";
import SettingsStore from "../../settings/SettingsStore";
-import RoomListStore, { LISTS_UPDATE_EVENT } from "../../stores/room-list/RoomListStore2";
+import RoomListStore, { LISTS_UPDATE_EVENT } from "../../stores/room-list/RoomListStore";
import {Key} from "../../Keyboard";
import IndicatorScrollbar from "../structures/IndicatorScrollbar";
import AccessibleTooltipButton from "../views/elements/AccessibleTooltipButton";
-// TODO: Rename on launch: https://github.com/vector-im/riot-web/issues/14367
-
interface IProps {
isMinimized: boolean;
resizeNotifier: ResizeNotifier;
@@ -53,12 +50,12 @@ interface IState {
const cssClasses = [
"mx_RoomSearch_input",
"mx_RoomSearch_icon", // minimized
- "mx_RoomSublist2_headerText",
- "mx_RoomTile2",
- "mx_RoomSublist2_showNButton",
+ "mx_RoomSublist_headerText",
+ "mx_RoomTile",
+ "mx_RoomSublist_showNButton",
];
-export default class LeftPanel2 extends React.Component {
+export default class LeftPanel extends React.Component {
private listContainerRef: React.RefObject = createRef();
private tagPanelWatcherRef: string;
private focusedElement = null;
@@ -122,7 +119,7 @@ export default class LeftPanel2 extends React.Component {
private doStickyHeaders(list: HTMLDivElement) {
const topEdge = list.scrollTop;
const bottomEdge = list.offsetHeight + list.scrollTop;
- const sublists = list.querySelectorAll(".mx_RoomSublist2");
+ const sublists = list.querySelectorAll(".mx_RoomSublist");
const headerRightMargin = 16; // calculated from margins and widths to align with non-sticky tiles
const headerStickyWidth = list.clientWidth - headerRightMargin;
@@ -138,7 +135,7 @@ export default class LeftPanel2 extends React.Component {
let lastTopHeader;
let firstBottomHeader;
for (const sublist of sublists) {
- const header = sublist.querySelector(".mx_RoomSublist2_stickable");
+ const header = sublist.querySelector(".mx_RoomSublist_stickable");
header.style.removeProperty("display"); // always clear display:none first
// When an element is <=40% off screen, make it take over
@@ -174,8 +171,8 @@ export default class LeftPanel2 extends React.Component {
}
if (style.stickyTop) {
- if (!header.classList.contains("mx_RoomSublist2_headerContainer_stickyTop")) {
- header.classList.add("mx_RoomSublist2_headerContainer_stickyTop");
+ if (!header.classList.contains("mx_RoomSublist_headerContainer_stickyTop")) {
+ header.classList.add("mx_RoomSublist_headerContainer_stickyTop");
}
const newTop = `${list.parentElement.offsetTop}px`;
@@ -183,8 +180,8 @@ export default class LeftPanel2 extends React.Component {
header.style.top = newTop;
}
} else {
- if (header.classList.contains("mx_RoomSublist2_headerContainer_stickyTop")) {
- header.classList.remove("mx_RoomSublist2_headerContainer_stickyTop");
+ if (header.classList.contains("mx_RoomSublist_headerContainer_stickyTop")) {
+ header.classList.remove("mx_RoomSublist_headerContainer_stickyTop");
}
if (header.style.top) {
header.style.removeProperty('top');
@@ -192,18 +189,18 @@ export default class LeftPanel2 extends React.Component {
}
if (style.stickyBottom) {
- if (!header.classList.contains("mx_RoomSublist2_headerContainer_stickyBottom")) {
- header.classList.add("mx_RoomSublist2_headerContainer_stickyBottom");
+ if (!header.classList.contains("mx_RoomSublist_headerContainer_stickyBottom")) {
+ header.classList.add("mx_RoomSublist_headerContainer_stickyBottom");
}
} else {
- if (header.classList.contains("mx_RoomSublist2_headerContainer_stickyBottom")) {
- header.classList.remove("mx_RoomSublist2_headerContainer_stickyBottom");
+ if (header.classList.contains("mx_RoomSublist_headerContainer_stickyBottom")) {
+ header.classList.remove("mx_RoomSublist_headerContainer_stickyBottom");
}
}
if (style.stickyTop || style.stickyBottom) {
- if (!header.classList.contains("mx_RoomSublist2_headerContainer_sticky")) {
- header.classList.add("mx_RoomSublist2_headerContainer_sticky");
+ if (!header.classList.contains("mx_RoomSublist_headerContainer_sticky")) {
+ header.classList.add("mx_RoomSublist_headerContainer_sticky");
}
const newWidth = `${headerStickyWidth}px`;
@@ -211,8 +208,8 @@ export default class LeftPanel2 extends React.Component {
header.style.width = newWidth;
}
} else if (!style.stickyTop && !style.stickyBottom) {
- if (header.classList.contains("mx_RoomSublist2_headerContainer_sticky")) {
- header.classList.remove("mx_RoomSublist2_headerContainer_sticky");
+ if (header.classList.contains("mx_RoomSublist_headerContainer_sticky")) {
+ header.classList.remove("mx_RoomSublist_headerContainer_sticky");
}
if (header.style.width) {
header.style.removeProperty('width');
@@ -222,16 +219,16 @@ export default class LeftPanel2 extends React.Component {
// add appropriate sticky classes to wrapper so it has
// the necessary top/bottom padding to put the sticky header in
- const listWrapper = list.parentElement; // .mx_LeftPanel2_roomListWrapper
+ const listWrapper = list.parentElement; // .mx_LeftPanel_roomListWrapper
if (lastTopHeader) {
- listWrapper.classList.add("mx_LeftPanel2_roomListWrapper_stickyTop");
+ listWrapper.classList.add("mx_LeftPanel_roomListWrapper_stickyTop");
} else {
- listWrapper.classList.remove("mx_LeftPanel2_roomListWrapper_stickyTop");
+ listWrapper.classList.remove("mx_LeftPanel_roomListWrapper_stickyTop");
}
if (firstBottomHeader) {
- listWrapper.classList.add("mx_LeftPanel2_roomListWrapper_stickyBottom");
+ listWrapper.classList.add("mx_LeftPanel_roomListWrapper_stickyBottom");
} else {
- listWrapper.classList.remove("mx_LeftPanel2_roomListWrapper_stickyBottom");
+ listWrapper.classList.remove("mx_LeftPanel_roomListWrapper_stickyBottom");
}
}
@@ -267,7 +264,7 @@ export default class LeftPanel2 extends React.Component {
};
private onEnter = () => {
- const firstRoom = this.listContainerRef.current.querySelector(".mx_RoomTile2");
+ const firstRoom = this.listContainerRef.current.querySelector(".mx_RoomTile");
if (firstRoom) {
firstRoom.click();
return true; // to get the field to clear
@@ -315,7 +312,7 @@ export default class LeftPanel2 extends React.Component {
private renderHeader(): React.ReactNode {
return (
-
+
);
@@ -325,13 +322,13 @@ export default class LeftPanel2 extends React.Component
{
if (this.state.showBreadcrumbs && !this.props.isMinimized) {
return (
-
+
);
}
@@ -340,7 +337,7 @@ export default class LeftPanel2 extends React.Component {
private renderSearchExplore(): React.ReactNode {
return (
{
onEnter={this.onEnter}
/>
@@ -362,12 +359,12 @@ export default class LeftPanel2 extends React.Component
{
public render(): React.ReactNode {
const tagPanel = !this.state.showTagPanel ? null : (
-
+
);
- const roomList =
{
/>;
const containerClasses = classNames({
- "mx_LeftPanel2": true,
- "mx_LeftPanel2_hasTagPanel": !!tagPanel,
- "mx_LeftPanel2_minimized": this.props.isMinimized,
+ "mx_LeftPanel": true,
+ "mx_LeftPanel_hasTagPanel": !!tagPanel,
+ "mx_LeftPanel_minimized": this.props.isMinimized,
});
const roomListClasses = classNames(
- "mx_LeftPanel2_actualRoomListContainer",
+ "mx_LeftPanel_actualRoomListContainer",
"mx_AutoHideScrollbar",
);
return (
{tagPanel}
-