From 72e7e67b2950bf19d5c5731a976522a842ce3652 Mon Sep 17 00:00:00 2001
From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
Date: Sat, 13 Apr 2024 07:48:31 -0500
Subject: [PATCH] filtering
---
web/src/components/filter/ZoneMaskFilter.tsx | 130 +++++++
web/src/components/settings/MasksAndZones.tsx | 342 ++++++++++--------
web/src/components/settings/PolygonCanvas.tsx | 68 ++--
web/src/pages/Settings.tsx | 10 +-
web/src/types/frigateConfig.ts | 2 +-
5 files changed, 367 insertions(+), 185 deletions(-)
create mode 100644 web/src/components/filter/ZoneMaskFilter.tsx
diff --git a/web/src/components/filter/ZoneMaskFilter.tsx b/web/src/components/filter/ZoneMaskFilter.tsx
new file mode 100644
index 000000000..071d9ece0
--- /dev/null
+++ b/web/src/components/filter/ZoneMaskFilter.tsx
@@ -0,0 +1,130 @@
+import { Button } from "../ui/button";
+import { FaFilter } from "react-icons/fa";
+import { isMobile } from "react-device-detect";
+import { Drawer, DrawerContent, DrawerTrigger } from "../ui/drawer";
+import { Popover, PopoverContent, PopoverTrigger } from "../ui/popover";
+import { PolygonType } from "@/types/canvas";
+import { Label } from "../ui/label";
+import { Switch } from "../ui/switch";
+import { DropdownMenuSeparator } from "../ui/dropdown-menu";
+
+type ZoneMaskFilterButtonProps = {
+ selectedZoneMask?: PolygonType[];
+ updateZoneMaskFilter: (labels: PolygonType[] | undefined) => void;
+};
+export function ZoneMaskFilterButton({
+ selectedZoneMask,
+ updateZoneMaskFilter,
+}: ZoneMaskFilterButtonProps) {
+ const trigger = (
+
+ );
+ const content = (
+