diff --git a/web/src/components/filter/CamerasFilterButton.tsx b/web/src/components/filter/CamerasFilterButton.tsx index 1b36102b8..5a7372954 100644 --- a/web/src/components/filter/CamerasFilterButton.tsx +++ b/web/src/components/filter/CamerasFilterButton.tsx @@ -1,6 +1,6 @@ import { Button } from "../ui/button"; import { CameraGroupConfig } from "@/types/frigateConfig"; -import { useMemo, useState } from "react"; +import { useEffect, useMemo, useState } from "react"; import { DropdownMenu, DropdownMenuContent, @@ -53,6 +53,20 @@ export function CamerasFilterButton({ }`; }, [allCamerasSelected, currentCameras]); + // ui + + useEffect( + () => { + setCurrentCameras( + selectedCameras === undefined ? [...allCameras] : selectedCameras, + ); + setAllCamerasSelected(selectedCameras === undefined); + }, + // only refresh when state changes + // eslint-disable-next-line react-hooks/exhaustive-deps + [selectedCameras], + ); + const trigger = (