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")}