diff --git a/packages/shared-components/src/composer/Banner/Banner.tsx b/packages/shared-components/src/composer/Banner/Banner.tsx index 8f052c97e6..377e18ac12 100644 --- a/packages/shared-components/src/composer/Banner/Banner.tsx +++ b/packages/shared-components/src/composer/Banner/Banner.tsx @@ -12,7 +12,7 @@ import React, { type ReactNode, type PropsWithChildren, useMemo, - HTMLAttributes, + type HTMLAttributes, } from "react"; import { Button } from "@vector-im/compound-web"; import CheckCircleIcon from "@vector-im/compound-design-tokens/assets/web/icons/check-circle"; @@ -73,7 +73,7 @@ export function Banner({ default: return ; } - }, [type, props]); + }, [type]); return (
diff --git a/packages/shared-components/src/room/RoomStatusBar/RoomStatusBarView.stories.tsx b/packages/shared-components/src/room/RoomStatusBar/RoomStatusBarView.stories.tsx index d84ac20deb..38f8d86f1d 100644 --- a/packages/shared-components/src/room/RoomStatusBar/RoomStatusBarView.stories.tsx +++ b/packages/shared-components/src/room/RoomStatusBar/RoomStatusBarView.stories.tsx @@ -6,6 +6,7 @@ */ import { type Meta, type StoryFn } from "@storybook/react-vite"; import React, { type JSX } from "react"; +import { fn } from "storybook/test"; import { useMockedViewModel } from "../../useMockedViewModel"; import { @@ -14,7 +15,6 @@ import { type RoomStatusBarViewActions, type RoomStatusBarViewSnapshot, } from "./RoomStatusBarView"; -import { fn } from "storybook/test"; type RoomStatusBarProps = RoomStatusBarViewSnapshot & RoomStatusBarViewActions; diff --git a/packages/shared-components/src/room/RoomStatusBar/RoomStatusBarView.test.tsx b/packages/shared-components/src/room/RoomStatusBar/RoomStatusBarView.test.tsx index 3ac63a691c..22b9204ab0 100644 --- a/packages/shared-components/src/room/RoomStatusBar/RoomStatusBarView.test.tsx +++ b/packages/shared-components/src/room/RoomStatusBar/RoomStatusBarView.test.tsx @@ -8,9 +8,9 @@ import React from "react"; import { render } from "jest-matrix-react"; import { composeStories } from "@storybook/react-vite"; +import userEvent from "@testing-library/user-event"; import * as stories from "./RoomStatusBarView.stories.tsx"; -import userEvent from "@testing-library/user-event"; const { WithConnectionLost, WithConsentLink, WithResourceLimit, WithUnsentMessages, WithLocalRoomRetry } = composeStories(stories); diff --git a/packages/shared-components/src/room/RoomStatusBar/RoomStatusBarView.tsx b/packages/shared-components/src/room/RoomStatusBar/RoomStatusBarView.tsx index bcd50fb414..57bf028d24 100644 --- a/packages/shared-components/src/room/RoomStatusBar/RoomStatusBarView.tsx +++ b/packages/shared-components/src/room/RoomStatusBar/RoomStatusBarView.tsx @@ -6,13 +6,13 @@ */ import React, { useCallback, useId, type JSX } from "react"; +import { RestartIcon, DeleteIcon } from "@vector-im/compound-design-tokens/assets/web/icons"; +import { Button, InlineSpinner, Text } from "@vector-im/compound-web"; import styles from "./RoomStatusBarView.module.css"; import { useViewModel } from "../../useViewModel"; import { type ViewModel } from "../../viewmodel"; -import { RestartIcon, DeleteIcon } from "@vector-im/compound-design-tokens/assets/web/icons"; import { useI18n } from "../../utils/i18nContext"; -import { Button, InlineSpinner, Text } from "@vector-im/compound-web"; import { Banner } from "../../composer/Banner"; export interface RoomStatusBarViewActions { /** @@ -109,7 +109,7 @@ export function RoomStatusBarView({ vm }: Readonly): JSX ev.preventDefault(); vm.onDeleteAllClick?.(); }, - [vm.onDeleteAllClick], + [vm], ); const resendClick = useCallback>( @@ -117,7 +117,7 @@ export function RoomStatusBarView({ vm }: Readonly): JSX ev.preventDefault(); vm.onResendAllClick?.(); }, - [vm.onResendAllClick], + [vm], ); const retryRoomCreationClick = useCallback>( @@ -125,13 +125,13 @@ export function RoomStatusBarView({ vm }: Readonly): JSX ev.preventDefault(); vm.onRetryRoomCreationClick?.(); }, - [vm.onRetryRoomCreationClick], + [vm], ); const termsAndConditionsClicked = useCallback>(() => { // Allow the link to go through. vm.onTermsAndConditionsClicked?.(); - }, [vm.onTermsAndConditionsClicked]); + }, [vm]); if (snapshot.state === null) { // Nothing to show! @@ -180,12 +180,6 @@ export function RoomStatusBarView({ vm }: Readonly): JSX ); case RoomStatusBarState.ResourceLimited: - const title = - { - monthly_active_user: _t("room|status_bar|monthly_user_limit_reached_title"), - hs_disabled: _t("room|status_bar|homeserver_blocked_title"), - }[snapshot.resourceLimit] || _t("room|status_bar|exceeded_resource_limit_title"); - return ( ): JSX >
- {title} + {{ + monthly_active_user: _t("room|status_bar|monthly_user_limit_reached_title"), + hs_disabled: _t("room|status_bar|homeserver_blocked_title"), + }[snapshot.resourceLimit] || _t("room|status_bar|exceeded_resource_limit_title")} {_t("room|status_bar|exceeded_resource_limit_description")} @@ -240,38 +237,43 @@ export function RoomStatusBarView({ vm }: Readonly): JSX ); case RoomStatusBarState.UnsentMessages: - const actions = snapshot.isResending ? ( - - ) : ( - <> - {vm.onDeleteAllClick && ( - - )} - {vm.onResendAllClick && ( - - )} - - ); - return ( - + + ) : ( + <> + {vm.onDeleteAllClick && ( + + )} + {vm.onResendAllClick && ( + + )} + + ) + } + aria-labelledby={bannerTitleId} + >
{_t("room|status_bar|some_messages_not_sent")}