diff --git a/res/css/views/rooms/_RoomHeader.pcss b/res/css/views/rooms/_RoomHeader.pcss new file mode 100644 index 000000000000..8fa887c5647e --- /dev/null +++ b/res/css/views/rooms/_RoomHeader.pcss @@ -0,0 +1,53 @@ +/* +Copyright 2023 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. +*/ + +:root { + --RoomHeader-indicator-dot-size: 8px; + --RoomHeader-indicator-dot-offset: -3px; + --RoomHeader-indicator-pulseColor: $alert; +} + +.mx_RoomHeader { + flex: 0 0 50px; + border-bottom: 1px solid $primary-hairline-color; + background-color: $background; +} + +.mx_RoomHeader_wrapper { + height: 44px; + display: flex; + align-items: center; + min-width: 0; + margin: 0 20px 0 16px; + padding-top: 6px; + border-bottom: 1px solid $separator; +} + +.mx_RoomHeader_name { + flex: 0 1 auto; + overflow: hidden; + color: $primary-content; + font: var(--cpd-font-heading-sm-semibold); + font-weight: var(--cpd-font-weight-semibold); + min-height: 24px; + align-items: center; + border-radius: 6px; + margin: 0 3px; + padding: 1px 4px; + display: flex; + user-select: none; + cursor: pointer; +} diff --git a/src/components/views/rooms/RoomHeader.tsx b/src/components/views/rooms/RoomHeader.tsx new file mode 100644 index 000000000000..918a2370f6c6 --- /dev/null +++ b/src/components/views/rooms/RoomHeader.tsx @@ -0,0 +1,54 @@ +/* +Copyright 2023 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 type { Room } from "matrix-js-sdk/src/models/room"; +import { _t } from "../../../languageHandler"; +import RoomName from "../elements/RoomName"; +import { IOOBData } from "../../../stores/ThreepidInviteStore"; + +export default function RoomHeader({ room, oobData }: { room?: Room; oobData?: IOOBData }): JSX.Element { + let oobName = _t("Join Room"); + if (oobData && oobData.name) { + oobName = oobData.name; + } + + return ( +
+
+ {room && ( + + {(name) => { + const roomName = name || oobName; + return ( +
+ {roomName} +
+ ); + }} +
+ )} +
+
+ ); +}