mirror of
https://github.com/blakeblackshear/frigate.git
synced 2025-09-26 19:41:29 +08:00
Fix webUI generating HTTP500s when camera disabled (#17305)
* Check camera enabled state before querying go2rtc * lint * Add change to CameraStreamingDialog
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
import { useState, useCallback, useEffect, useMemo } from "react";
|
import { useState, useCallback, useEffect, useMemo } from "react";
|
||||||
|
import { useEnabledState } from "@/api/ws";
|
||||||
import { IoIosWarning } from "react-icons/io";
|
import { IoIosWarning } from "react-icons/io";
|
||||||
import { Button } from "@/components/ui/button";
|
import { Button } from "@/components/ui/button";
|
||||||
import {
|
import {
|
||||||
@@ -63,6 +64,10 @@ export function CameraStreamingDialog({
|
|||||||
|
|
||||||
// metadata
|
// metadata
|
||||||
|
|
||||||
|
// camera enabled state
|
||||||
|
const { payload: enabledState } = useEnabledState(camera);
|
||||||
|
const cameraEnabled = enabledState === "ON";
|
||||||
|
|
||||||
const isRestreamed = useMemo(
|
const isRestreamed = useMemo(
|
||||||
() =>
|
() =>
|
||||||
config &&
|
config &&
|
||||||
@@ -71,7 +76,7 @@ export function CameraStreamingDialog({
|
|||||||
);
|
);
|
||||||
|
|
||||||
const { data: cameraMetadata } = useSWR<LiveStreamMetadata>(
|
const { data: cameraMetadata } = useSWR<LiveStreamMetadata>(
|
||||||
isRestreamed ? `go2rtc/streams/${streamName}` : null,
|
cameraEnabled && isRestreamed ? `go2rtc/streams/${streamName}` : null,
|
||||||
{
|
{
|
||||||
revalidateOnFocus: false,
|
revalidateOnFocus: false,
|
||||||
},
|
},
|
||||||
|
@@ -142,8 +142,11 @@ export default function LiveCameraView({
|
|||||||
const [{ width: windowWidth, height: windowHeight }] =
|
const [{ width: windowWidth, height: windowHeight }] =
|
||||||
useResizeObserver(window);
|
useResizeObserver(window);
|
||||||
|
|
||||||
// supported features
|
// camera enabled state
|
||||||
|
const { payload: enabledState } = useEnabledState(camera.name);
|
||||||
|
const cameraEnabled = enabledState === "ON";
|
||||||
|
|
||||||
|
// supported features
|
||||||
const [streamName, setStreamName] = usePersistence<string>(
|
const [streamName, setStreamName] = usePersistence<string>(
|
||||||
`${camera.name}-stream`,
|
`${camera.name}-stream`,
|
||||||
Object.values(camera.live.streams)[0],
|
Object.values(camera.live.streams)[0],
|
||||||
@@ -157,7 +160,7 @@ export default function LiveCameraView({
|
|||||||
);
|
);
|
||||||
|
|
||||||
const { data: cameraMetadata } = useSWR<LiveStreamMetadata>(
|
const { data: cameraMetadata } = useSWR<LiveStreamMetadata>(
|
||||||
isRestreamed ? `go2rtc/streams/${streamName}` : null,
|
cameraEnabled && isRestreamed ? `go2rtc/streams/${streamName}` : null,
|
||||||
{
|
{
|
||||||
revalidateOnFocus: false,
|
revalidateOnFocus: false,
|
||||||
},
|
},
|
||||||
@@ -192,10 +195,6 @@ export default function LiveCameraView({
|
|||||||
);
|
);
|
||||||
}, [cameraMetadata]);
|
}, [cameraMetadata]);
|
||||||
|
|
||||||
// camera enabled state
|
|
||||||
const { payload: enabledState } = useEnabledState(camera.name);
|
|
||||||
const cameraEnabled = enabledState === "ON";
|
|
||||||
|
|
||||||
// click overlay for ptzs
|
// click overlay for ptzs
|
||||||
|
|
||||||
const [clickOverlay, setClickOverlay] = useState(false);
|
const [clickOverlay, setClickOverlay] = useState(false);
|
||||||
|
Reference in New Issue
Block a user