Do not render tooltip when RA is displayed on TAC (#12472)

pull/28217/head
Florian Duros 2024-05-01 22:39:08 +02:00 committed by GitHub
parent 5dc3ad546c
commit ad7f626e22
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 21 additions and 2 deletions

View File

@ -82,6 +82,7 @@ export function ThreadsActivityCentre({ displayButtonLabel }: ThreadsActivityCen
closeLabel={_t("action|ok")} closeLabel={_t("action|ok")}
> >
<ThreadsActivityCentreButton <ThreadsActivityCentreButton
disableTooltip={true}
displayLabel={displayButtonLabel} displayLabel={displayButtonLabel}
notificationLevel={roomsAndNotifications.greatestNotificationLevel} notificationLevel={roomsAndNotifications.greatestNotificationLevel}
/> />

View File

@ -26,6 +26,10 @@ import { NotificationLevel } from "../../../../stores/notifications/Notification
import { notificationLevelToIndicator } from "../../../../utils/notifications"; import { notificationLevelToIndicator } from "../../../../utils/notifications";
interface ThreadsActivityCentreButtonProps extends ComponentProps<typeof IconButton> { interface ThreadsActivityCentreButtonProps extends ComponentProps<typeof IconButton> {
/**
* Whether to disable the tooltip.
*/
disableTooltip?: boolean;
/** /**
* Display the `Threads` label next to the icon. * Display the `Threads` label next to the icon.
*/ */
@ -40,9 +44,12 @@ interface ThreadsActivityCentreButtonProps extends ComponentProps<typeof IconBut
* A button to open the thread activity centre. * A button to open the thread activity centre.
*/ */
export const ThreadsActivityCentreButton = forwardRef<HTMLButtonElement, ThreadsActivityCentreButtonProps>( export const ThreadsActivityCentreButton = forwardRef<HTMLButtonElement, ThreadsActivityCentreButtonProps>(
function ThreadsActivityCentreButton({ displayLabel, notificationLevel, ...props }, ref): React.JSX.Element { function ThreadsActivityCentreButton(
{ displayLabel, notificationLevel, disableTooltip, ...props },
ref,
): React.JSX.Element {
// Disable tooltip when the label is displayed // Disable tooltip when the label is displayed
const openTooltip = displayLabel ? false : undefined; const openTooltip = disableTooltip || displayLabel ? false : undefined;
return ( return (
<Tooltip label={_t("common|threads")} placement="right" open={openTooltip}> <Tooltip label={_t("common|threads")} placement="right" open={openTooltip}>

View File

@ -118,6 +118,17 @@ describe("ThreadsActivityCentre", () => {
expect(document.body).toMatchSnapshot(); expect(document.body).toMatchSnapshot();
}); });
it("should render not display the tooltip when the release announcement is displayed", async () => {
// Enable release announcement
await SettingsStore.setValue("feature_release_announcement", null, SettingLevel.DEVICE, true);
renderTAC();
// The tooltip should not be displayed
await userEvent.hover(getTACButton());
expect(screen.queryByRole("tooltip")).toBeNull();
});
it("should render the threads activity centre button and the display label", async () => { it("should render the threads activity centre button and the display label", async () => {
renderTAC({ displayButtonLabel: true }); renderTAC({ displayButtonLabel: true });
expect(getTACButton()).toBeInTheDocument(); expect(getTACButton()).toBeInTheDocument();