diff --git a/web/src/pages/Replay.tsx b/web/src/pages/Replay.tsx index 2a6ea9ad1..493bb39a9 100644 --- a/web/src/pages/Replay.tsx +++ b/web/src/pages/Replay.tsx @@ -42,6 +42,7 @@ import { CameraConfig, FrigateConfig } from "@/types/frigateConfig"; import { getIconForLabel } from "@/utils/iconUtil"; import { getTranslatedLabel } from "@/utils/i18n"; import { Card } from "@/components/ui/card"; +import { Progress } from "@/components/ui/progress"; import { ObjectType } from "@/types/ws"; import WsMessageFeed from "@/components/ws/WsMessageFeed"; import { ConfigSectionTemplate } from "@/components/config-form/sections/ConfigSectionTemplate"; @@ -56,8 +57,18 @@ import { useDocDomain } from "@/hooks/use-doc-domain"; import DebugDrawingLayer from "@/components/overlay/DebugDrawingLayer"; import { IoMdArrowRoundBack } from "react-icons/io"; +type ReplayState = + | "idle" + | "preparing_clip" + | "starting_camera" + | "active" + | "error"; + type DebugReplayStatus = { active: boolean; + state: ReplayState; + progress_percent: number | null; + error_message: string | null; replay_camera: string | null; source_camera: string | null; start_time: number | null; @@ -238,7 +249,7 @@ export default function Replay() { } // No active session - if (!status?.active) { + if (!status?.active && status?.state !== "error") { return (
+ {status.error_message} +
+ )} + ++ {t("page.preparingClipDesc")} +
+ )} + +