From 82d291003943088f7b4708c32e14167096365e8e Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Mon, 15 Jul 2024 09:34:41 -0600 Subject: [PATCH] Fix camera filtering logic (#12457) * Fix camera filtering logic * Cleanup * Simplify and consider birdseye only group in logic * Don't add filter when group is birdseye only --- web/src/pages/Events.tsx | 4 +++- web/src/pages/Live.tsx | 2 +- web/src/views/live/LiveDashboardView.tsx | 23 +++++++++++++++++++++-- 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/web/src/pages/Events.tsx b/web/src/pages/Events.tsx index ff998803c..e106f0827 100644 --- a/web/src/pages/Events.tsx +++ b/web/src/pages/Events.tsx @@ -71,8 +71,10 @@ export default function Events() { useSearchEffect("group", (reviewGroup) => { if (config && reviewGroup) { const group = config.camera_groups[reviewGroup]; + const isBirdseyeOnly = + group.cameras.length == 1 && group.cameras[0] == "birdseye"; - if (group) { + if (group && !isBirdseyeOnly) { setReviewFilter({ ...reviewFilter, cameras: group.cameras, diff --git a/web/src/pages/Live.tsx b/web/src/pages/Live.tsx index fc2a2bf8f..cd8cc6b0a 100644 --- a/web/src/pages/Live.tsx +++ b/web/src/pages/Live.tsx @@ -113,7 +113,7 @@ function Live() { ) : ( void; fullscreen: boolean; @@ -64,12 +64,31 @@ export default function LiveDashboardView({ // recent events const eventUpdate = useFrigateReviews(); + + const alertCameras = useMemo(() => { + if (!config || cameraGroup == "default") { + return null; + } + + if (includeBirdseye && cameras.length == 0) { + return Object.values(config.cameras) + .filter((cam) => cam.birdseye.enabled) + .map((cam) => cam.name) + .join(","); + } + + return cameras + .map((cam) => cam.name) + .filter((cam) => config.camera_groups[cameraGroup].cameras.includes(cam)) + .join(","); + }, [cameras, cameraGroup, config, includeBirdseye]); + const { data: allEvents, mutate: updateEvents } = useSWR([ "review", { limit: 10, severity: "alert", - cameras: cameraGroup && cameras.filter((cam) => cam.name).join(","), + cameras: alertCameras, }, ]);