diff --git a/web/src/hooks/use-stats.ts b/web/src/hooks/use-stats.ts index 5141742c0..cc48b5fed 100644 --- a/web/src/hooks/use-stats.ts +++ b/web/src/hooks/use-stats.ts @@ -61,10 +61,11 @@ export default function useStats(stats: FrigateStats | undefined) { return; } + const cameraName = config.cameras?.[name]?.nickname ?? name; if (config.cameras[name].enabled && cam["camera_fps"] == 0) { problems.push({ text: t("stats.cameraIsOffline", { - camera: capitalizeFirstLetter(name.replaceAll("_", " ")), + camera: capitalizeFirstLetter(cameraName), }), color: "text-danger", relevantLink: "logs", @@ -81,10 +82,11 @@ export default function useStats(stats: FrigateStats | undefined) { memoizedStats["cpu_usages"][cam["pid"]]?.cpu_average, ); + const cameraName = config?.cameras?.[name]?.nickname ?? name; if (!isNaN(ffmpegAvg) && ffmpegAvg >= CameraFfmpegThreshold.error) { problems.push({ text: t("stats.ffmpegHighCpuUsage", { - camera: capitalizeFirstLetter(name.replaceAll("_", " ")), + camera: capitalizeFirstLetter(cameraName), ffmpegAvg, }), color: "text-danger", @@ -95,7 +97,7 @@ export default function useStats(stats: FrigateStats | undefined) { if (!isNaN(detectAvg) && detectAvg >= CameraDetectThreshold.error) { problems.push({ text: t("stats.detectHighCpuUsage", { - camera: capitalizeFirstLetter(name.replaceAll("_", " ")), + camera: capitalizeFirstLetter(cameraName), detectAvg, }), color: "text-danger", diff --git a/web/src/views/settings/NotificationsSettingsView.tsx b/web/src/views/settings/NotificationsSettingsView.tsx index 7f5115e93..6742a09f8 100644 --- a/web/src/views/settings/NotificationsSettingsView.tsx +++ b/web/src/views/settings/NotificationsSettingsView.tsx @@ -11,7 +11,6 @@ import { } from "@/components/ui/form"; import Heading from "@/components/ui/heading"; import { Input } from "@/components/ui/input"; -import { Label } from "@/components/ui/label"; import { Separator } from "@/components/ui/separator"; import { Toaster } from "@/components/ui/sonner"; import { StatusBarMessagesContext } from "@/context/statusbar-provider"; @@ -46,6 +45,7 @@ import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; import { Trans, useTranslation } from "react-i18next"; import { useDateLocale } from "@/hooks/use-date-locale"; import { useDocDomain } from "@/hooks/use-doc-domain"; +import { CameraNameLabel } from "@/components/camera/CameraNameLabel"; const NOTIFICATION_SERVICE_WORKER = "notifications-worker.js"; @@ -698,12 +698,11 @@ export function CameraNotificationSwitch({ )}
- + camera={camera} + /> {!isSuspended ? (