diff --git a/web/src/pages/Live.tsx b/web/src/pages/Live.tsx index bae56b6bb..5449fef9b 100644 --- a/web/src/pages/Live.tsx +++ b/web/src/pages/Live.tsx @@ -83,7 +83,7 @@ function Live() { } if (selectedCamera) { - return ; + return ; } return ( diff --git a/web/src/views/live/LiveCameraView.tsx b/web/src/views/live/LiveCameraView.tsx index cc27b72bf..3d3ea23c7 100644 --- a/web/src/views/live/LiveCameraView.tsx +++ b/web/src/views/live/LiveCameraView.tsx @@ -20,7 +20,7 @@ import { import { TooltipProvider } from "@/components/ui/tooltip"; import { useResizeObserver } from "@/hooks/resize-observer"; import useKeyboardListener from "@/hooks/use-keyboard-listener"; -import { CameraConfig } from "@/types/frigateConfig"; +import { CameraConfig, FrigateConfig } from "@/types/frigateConfig"; import { LiveStreamMetadata, VideoResolutionType } from "@/types/live"; import { CameraPtzInfo } from "@/types/ptz"; import { RecordingStartingPoint } from "@/types/record"; @@ -75,9 +75,13 @@ import { TransformWrapper, TransformComponent } from "react-zoom-pan-pinch"; import useSWR from "swr"; type LiveCameraViewProps = { + config?: FrigateConfig; camera: CameraConfig; }; -export default function LiveCameraView({ camera }: LiveCameraViewProps) { +export default function LiveCameraView({ + config, + camera, +}: LiveCameraViewProps) { const navigate = useNavigate(); const { isPortrait } = useMobileOrientation(); const mainRef = useRef(null); @@ -86,8 +90,17 @@ export default function LiveCameraView({ camera }: LiveCameraViewProps) { // supported features + const isRestreamed = useMemo( + () => + config && + Object.keys(config.go2rtc.streams || {}).includes( + camera.live.stream_name, + ), + [camera, config], + ); + const { data: cameraMetadata } = useSWR( - `go2rtc/streams/${camera.live.stream_name}`, + isRestreamed ? `go2rtc/streams/${camera.live.stream_name}` : null, { revalidateOnFocus: false, },