diff --git a/web/src/pages/Events.tsx b/web/src/pages/Events.tsx index 88a210400e..bdf4bab4c4 100644 --- a/web/src/pages/Events.tsx +++ b/web/src/pages/Events.tsx @@ -84,6 +84,11 @@ export default function Events() { .map((conf) => conf.name); }, [allowedCameras, config?.cameras]); + const reviewCamerasParam = useMemo( + () => reviewCameras.join(","), + [reviewCameras], + ); + const selectedMotionSearchCamera = useMemo(() => { if (!motionSearchCamera) { return null; @@ -450,15 +455,17 @@ export default function Events() { // review summary const { data: reviewSummary, mutate: updateSummary } = useSWR( - [ - "review/summary", - { - timezone: timezone, - cameras: reviewSearchParams["cameras"] ?? null, - labels: reviewSearchParams["labels"] ?? null, - zones: reviewSearchParams["zones"] ?? null, - }, - ], + timezone + ? [ + "review/summary", + { + timezone: timezone, + cameras: reviewSearchParams["cameras"] ?? reviewCamerasParam, + labels: reviewSearchParams["labels"] ?? null, + zones: reviewSearchParams["zones"] ?? null, + }, + ] + : null, { revalidateOnFocus: true, refreshInterval: 30000, @@ -473,13 +480,17 @@ export default function Events() { // recordings summary - const { data: recordingsSummary } = useSWR([ - "recordings/summary", - { - timezone: timezone, - cameras: reviewSearchParams["cameras"] ?? null, - }, - ]); + const { data: recordingsSummary } = useSWR( + timezone + ? [ + "recordings/summary", + { + timezone: timezone, + cameras: reviewSearchParams["cameras"] ?? reviewCamerasParam, + }, + ] + : null, + ); // preview videos const previewTimes = useMemo(() => { diff --git a/web/src/views/events/EventView.tsx b/web/src/views/events/EventView.tsx index dd89e78780..50236b284a 100644 --- a/web/src/views/events/EventView.tsx +++ b/web/src/views/events/EventView.tsx @@ -1024,6 +1024,9 @@ function MotionReview({ if (!allowedCameras.includes(cam.name)) { return false; } + if (cam.ui?.review === false) { + return false; + } if (selectedCams && !selectedCams.includes(cam.name)) { return false; } @@ -1033,6 +1036,11 @@ function MotionReview({ return cameras.sort((a, b) => a.ui.order - b.ui.order); }, [config, filter, allowedCameras]); + const reviewCamerasParam = useMemo( + () => reviewCameras.map((cam) => cam.name).join(","), + [reviewCameras], + ); + const videoPlayersRef = useRef<{ [camera: string]: PreviewController }>({}); // motion data @@ -1052,7 +1060,7 @@ function MotionReview({ before: alignedBefore, after: alignedAfter, scale: segmentDuration / 2, - cameras: filter?.cameras?.join(",") ?? null, + cameras: reviewCamerasParam, }, ]); @@ -1061,7 +1069,7 @@ function MotionReview({ { before: alignedBefore, after: alignedAfter, - cameras: filter?.cameras?.join(",") ?? null, + cameras: reviewCamerasParam, }, ]);