mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-01-22 20:18:30 +03:00
validate idb stored stream name and reset if invalid
fixes https://github.com/blakeblackshear/frigate/discussions/21311
This commit is contained in:
parent
361cb13cb6
commit
7c2f4b5d1e
@ -147,10 +147,11 @@ export default function LiveCameraView({
|
|||||||
|
|
||||||
// supported features
|
// supported features
|
||||||
|
|
||||||
const [streamName, setStreamName] = useUserPersistence<string>(
|
const [streamName, setStreamName, streamNameLoaded] =
|
||||||
`${camera.name}-stream`,
|
useUserPersistence<string>(
|
||||||
Object.values(camera.live.streams)[0],
|
`${camera.name}-stream`,
|
||||||
);
|
Object.values(camera.live.streams)[0],
|
||||||
|
);
|
||||||
|
|
||||||
const isRestreamed = useMemo(
|
const isRestreamed = useMemo(
|
||||||
() =>
|
() =>
|
||||||
@ -159,6 +160,19 @@ export default function LiveCameraView({
|
|||||||
[config, streamName],
|
[config, streamName],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// validate stored stream name and reset if now invalid
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!streamNameLoaded) return;
|
||||||
|
|
||||||
|
const available = Object.values(camera.live.streams || {});
|
||||||
|
if (available.length === 0) return;
|
||||||
|
|
||||||
|
if (streamName != null && !available.includes(streamName)) {
|
||||||
|
setStreamName(available[0]);
|
||||||
|
}
|
||||||
|
}, [streamNameLoaded, camera.live.streams, streamName, setStreamName]);
|
||||||
|
|
||||||
const { data: cameraMetadata } = useSWR<LiveStreamMetadata>(
|
const { data: cameraMetadata } = useSWR<LiveStreamMetadata>(
|
||||||
isRestreamed ? `go2rtc/streams/${streamName}` : null,
|
isRestreamed ? `go2rtc/streams/${streamName}` : null,
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user