From 54f967efd588c0120ed470fdbcdb5db1086e3a4a Mon Sep 17 00:00:00 2001 From: Will Hunt Date: Mon, 3 Nov 2025 13:25:08 +0000 Subject: [PATCH] Hide room header buttons if the room hasn't been created yet. (#31092) * Hide room header buttons if the room isn't ready * update test * update unit tests * Remove on-click actions --- .../send-your-first-message-view-linux.png | Bin 27946 -> 25775 bytes .../views/rooms/RoomHeader/RoomHeader.tsx | 236 ++++++----- .../__snapshots__/RoomView-test.tsx.snap | 394 +----------------- 3 files changed, 141 insertions(+), 489 deletions(-) diff --git a/playwright/snapshots/invite/invite-dialog.spec.ts/send-your-first-message-view-linux.png b/playwright/snapshots/invite/invite-dialog.spec.ts/send-your-first-message-view-linux.png index ec2d8d5443e05bcff3ea0bb3f03e625b0c751e75..36ba4b247d8765eb138abc1fae8689c0fd65e6eb 100644 GIT binary patch literal 25775 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 GZ~qPZzii_G diff --git a/src/components/views/rooms/RoomHeader/RoomHeader.tsx b/src/components/views/rooms/RoomHeader/RoomHeader.tsx index 8c162216ba..cdc0a1b8a7 100644 --- a/src/components/views/rooms/RoomHeader/RoomHeader.tsx +++ b/src/components/views/rooms/RoomHeader/RoomHeader.tsx @@ -7,7 +7,7 @@ Please see LICENSE files in the repository root for full details. */ import React, { type JSX, useCallback, useMemo, useState } from "react"; -import { Body as BodyText, Button, IconButton, Menu, MenuItem, Tooltip } from "@vector-im/compound-web"; +import { Text, Button, IconButton, Menu, MenuItem, Tooltip } from "@vector-im/compound-web"; import VideoCallIcon from "@vector-im/compound-design-tokens/assets/web/icons/video-call-solid"; import VoiceCallIcon from "@vector-im/compound-design-tokens/assets/web/icons/voice-call-solid"; import CloseCallIcon from "@vector-im/compound-design-tokens/assets/web/icons/close"; @@ -54,22 +54,15 @@ import { RoomSettingsTab } from "../../dialogs/RoomSettingsDialog.tsx"; import { useScopedRoomContext } from "../../../../contexts/ScopedRoomContext.tsx"; import { ToggleableIcon } from "./toggle/ToggleableIcon.tsx"; import { CurrentRightPanelPhaseContextProvider } from "../../../../contexts/CurrentRightPanelPhaseContext.tsx"; -import { type LocalRoom } from "../../../../models/LocalRoom.ts"; +import { LocalRoom } from "../../../../models/LocalRoom.ts"; -export default function RoomHeader({ +function RoomHeaderButtons({ room, additionalButtons, - oobData, }: { - room: Room | LocalRoom; + room: Room; additionalButtons?: ViewRoomOpts["buttons"]; - oobData?: IOOBData; }): JSX.Element { - const client = useMatrixClientContext(); - - const roomName = useRoomName(room); - const joinRule = useRoomState(room, (state) => state.getJoinRule()); - const members = useRoomMembers(room, 2500); const memberCount = useRoomMemberCount(room, { throttleWait: 2500, includeInvited: true }); @@ -101,12 +94,9 @@ export default function RoomHeader({ const dmMember = useDmMember(room); const isDirectMessage = !!dmMember; - const e2eStatus = useEncryptionStatus(client, room); const notificationsEnabled = useFeatureEnabled("feature_notifications"); - const askToJoinEnabled = useFeatureEnabled("feature_ask_to_join"); - const videoClick = useCallback( (ev: React.MouseEvent) => videoCallClick(ev, callOptions[0]), [callOptions, videoCallClick], @@ -242,7 +232,118 @@ export default function RoomHeader({ isVideoRoom || roomContext.mainSplitContentType === MainSplitContentType.MaximisedWidget || roomContext.mainSplitContentType === MainSplitContentType.Call; + return ( + <> + {additionalButtons?.map((props) => { + const label = props.label(); + return ( + + { + event.stopPropagation(); + props.onClick(); + }} + > + {typeof props.icon === "function" ? props.icon() : props.icon} + + + ); + })} + + {isViewingCall && } + + {hasActiveCallSession && !isConnectedToCall && !isViewingCall ? ( + joinCallButton + ) : ( + <> + {!isVideoRoom && videoCallButton} + {!useElementCallExclusively && !isVideoRoom && voiceCallButton} + + )} + + {showChatButton && } + + + { + evt.stopPropagation(); + RightPanelStore.instance.showOrHidePhase(RightPanelPhases.ThreadPanel); + PosthogTrackers.trackInteraction("WebRoomHeaderButtonsThreadsButton", evt); + }} + aria-label={_t("common|threads")} + > + + + + {notificationsEnabled && ( + + { + evt.stopPropagation(); + RightPanelStore.instance.showOrHidePhase(RightPanelPhases.NotificationPanel); + }} + aria-label={_t("notifications|enable_prompt_toast_title")} + > + + + + )} + + + { + evt.stopPropagation(); + RightPanelStore.instance.showOrHidePhase(RightPanelPhases.RoomSummary); + }} + aria-label={_t("right_panel|room_summary_card|title")} + > + + + + + {!isDirectMessage && ( + + { + RightPanelStore.instance.showOrHidePhase(RightPanelPhases.MemberList); + e.stopPropagation(); + }} + aria-label={_t("common|n_members", { count: memberCount })} + > + {formatCount(memberCount)} + + + )} + + ); +} + +export default function RoomHeader({ + room, + additionalButtons, + oobData, +}: { + room: Room | LocalRoom; + additionalButtons?: ViewRoomOpts["buttons"]; + oobData?: IOOBData; +}): JSX.Element { + const client = useMatrixClientContext(); + const roomName = useRoomName(room); + const joinRule = useRoomState(room, (state) => state.getJoinRule()); + const dmMember = useDmMember(room); + const isDirectMessage = !!dmMember; + const e2eStatus = useEncryptionStatus(client, room); + const askToJoinEnabled = useFeatureEnabled("feature_ask_to_join"); const onAvatarClick = (): void => { defaultDispatcher.dispatch({ action: "open_room_settings", @@ -256,23 +357,29 @@ export default function RoomHeader({ {/* We hide this from the tabIndex list as it is a pointer shortcut and superfluous for a11y */} + {/* Disable on-click actions until the room is created */} + {/* Disable on-click actions until the room is created */} - - {additionalButtons?.map((props) => { - const label = props.label(); - - return ( - - { - event.stopPropagation(); - props.onClick(); - }} - > - {typeof props.icon === "function" ? props.icon() : props.icon} - - - ); - })} - - {isViewingCall && } - - {hasActiveCallSession && !isConnectedToCall && !isViewingCall ? ( - joinCallButton - ) : ( - <> - {!isVideoRoom && videoCallButton} - {!useElementCallExclusively && !isVideoRoom && voiceCallButton} - - )} - - {showChatButton && } - - - { - evt.stopPropagation(); - RightPanelStore.instance.showOrHidePhase(RightPanelPhases.ThreadPanel); - PosthogTrackers.trackInteraction("WebRoomHeaderButtonsThreadsButton", evt); - }} - aria-label={_t("common|threads")} - > - - - - {notificationsEnabled && ( - - { - evt.stopPropagation(); - RightPanelStore.instance.showOrHidePhase(RightPanelPhases.NotificationPanel); - }} - aria-label={_t("notifications|enable_prompt_toast_title")} - > - - - - )} - - - { - evt.stopPropagation(); - RightPanelStore.instance.showOrHidePhase(RightPanelPhases.RoomSummary); - }} - aria-label={_t("right_panel|room_summary_card|title")} - > - - - - - {!isDirectMessage && ( - - { - RightPanelStore.instance.showOrHidePhase(RightPanelPhases.MemberList); - e.stopPropagation(); - }} - aria-label={_t("common|n_members", { count: memberCount })} - > - {formatCount(memberCount)} - - + {/* If the room is local-only then we don't want to show any additional buttons, as it won't work */} + {room instanceof LocalRoom === false && ( + )} {askToJoinEnabled && } diff --git a/test/unit-tests/components/structures/__snapshots__/RoomView-test.tsx.snap b/test/unit-tests/components/structures/__snapshots__/RoomView-test.tsx.snap index d8ffc52308..77a8440bb6 100644 --- a/test/unit-tests/components/structures/__snapshots__/RoomView-test.tsx.snap +++ b/test/unit-tests/components/structures/__snapshots__/RoomView-test.tsx.snap @@ -9,19 +9,18 @@ exports[`RoomView for a local room in state CREATING should match the snapshot 1 class="flex mx_RoomHeader light-panel" style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: center; --mx-flex-justify: start; --mx-flex-gap: var(--cpd-space-3x); --mx-flex-wrap: nowrap;" > - + - - -
-
-
- - u - - - u - -
- 2 -
-
- +
- - -
-
-
- - u - - - u - -
- 2 -
-
- + - - -
-
-
- - u - - - u - -
- 2 -
-
- + -
- - - -
- - -
-
-
- - u - - - u - -
- 2 -
-