diff --git a/web/src/components/settings/CameraStreamingDialog.tsx b/web/src/components/settings/CameraStreamingDialog.tsx index cb16acaf2..b9bd8a4b6 100644 --- a/web/src/components/settings/CameraStreamingDialog.tsx +++ b/web/src/components/settings/CameraStreamingDialog.tsx @@ -1,5 +1,4 @@ import { useState, useCallback, useEffect, useMemo } from "react"; -import { useCameraActivity } from "@/hooks/use-camera-activity"; import { IoIosWarning } from "react-icons/io"; import { Button } from "@/components/ui/button"; import { @@ -24,7 +23,6 @@ import { Checkbox } from "@/components/ui/checkbox"; import { Label } from "@/components/ui/label"; import { FrigateConfig, - CameraConfig, GroupStreamingSettings, StreamType, } from "@/types/frigateConfig"; @@ -65,11 +63,6 @@ export function CameraStreamingDialog({ // metadata - // camera enabled state - const { enabled: isCameraEnabled } = useCameraActivity( - config?.cameras[camera] ?? ({} as CameraConfig), - ); - const isRestreamed = useMemo( () => config && @@ -78,7 +71,7 @@ export function CameraStreamingDialog({ ); const { data: cameraMetadata } = useSWR( - isCameraEnabled && isRestreamed ? `go2rtc/streams/${streamName}` : null, + isRestreamed ? `go2rtc/streams/${streamName}` : null, { revalidateOnFocus: false, }, diff --git a/web/src/views/live/LiveCameraView.tsx b/web/src/views/live/LiveCameraView.tsx index e067db157..34d61d684 100644 --- a/web/src/views/live/LiveCameraView.tsx +++ b/web/src/views/live/LiveCameraView.tsx @@ -112,7 +112,6 @@ import { SelectTrigger, } from "@/components/ui/select"; import { usePersistence } from "@/hooks/use-persistence"; -import { useCameraActivity } from "@/hooks/use-camera-activity"; import { Label } from "@/components/ui/label"; import { Switch } from "@/components/ui/switch"; import axios from "axios"; @@ -143,12 +142,8 @@ export default function LiveCameraView({ const [{ width: windowWidth, height: windowHeight }] = useResizeObserver(window); - // camera enabled state - const { enabled: isCameraEnabled } = useCameraActivity( - config?.cameras[camera.name] ?? ({} as CameraConfig), - ); - // supported features + const [streamName, setStreamName] = usePersistence( `${camera.name}-stream`, Object.values(camera.live.streams)[0], @@ -162,7 +157,7 @@ export default function LiveCameraView({ ); const { data: cameraMetadata } = useSWR( - isCameraEnabled && isRestreamed ? `go2rtc/streams/${streamName}` : null, + isRestreamed ? `go2rtc/streams/${streamName}` : null, { revalidateOnFocus: false, }, @@ -197,6 +192,10 @@ export default function LiveCameraView({ ); }, [cameraMetadata]); + // camera enabled state + const { payload: enabledState } = useEnabledState(camera.name); + const cameraEnabled = enabledState === "ON"; + // click overlay for ptzs const [clickOverlay, setClickOverlay] = useState(false); @@ -522,7 +521,7 @@ export default function LiveCameraView({ setPip(false); } }} - disabled={!isCameraEnabled} + disabled={!cameraEnabled} /> )} {supports2WayTalk && ( @@ -544,7 +543,7 @@ export default function LiveCameraView({ setAudio(true); } }} - disabled={!isCameraEnabled} + disabled={!cameraEnabled} /> )} {supportsAudioOutput && preferredLiveMode != "jsmpeg" && ( @@ -561,7 +560,7 @@ export default function LiveCameraView({ t("button.cameraAudio", { ns: "common" }) } onClick={() => setAudio(!audio)} - disabled={!isCameraEnabled} + disabled={!cameraEnabled} /> )}