From 4b3c0b019d880d25781ecc903c91f3bf60743a04 Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Thu, 11 Dec 2025 15:08:02 -0600 Subject: [PATCH] don't require restart when deleting zone or mask --- web/src/components/settings/PolygonItem.tsx | 24 ++++++++++++--------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/web/src/components/settings/PolygonItem.tsx b/web/src/components/settings/PolygonItem.tsx index 8efcafad8..a734ccaa5 100644 --- a/web/src/components/settings/PolygonItem.tsx +++ b/web/src/components/settings/PolygonItem.tsx @@ -26,7 +26,7 @@ import { toRGBColorString, } from "@/utils/canvasUtil"; import { Polygon, PolygonType } from "@/types/canvas"; -import { useCallback, useContext, useMemo, useState } from "react"; +import { useCallback, useMemo, useState } from "react"; import axios from "axios"; import { Toaster } from "@/components/ui/sonner"; import { toast } from "sonner"; @@ -34,7 +34,6 @@ import useSWR from "swr"; import { FrigateConfig } from "@/types/frigateConfig"; import { reviewQueries } from "@/utils/zoneEdutUtil"; import IconWrapper from "../ui/icon-wrapper"; -import { StatusBarMessagesContext } from "@/context/statusbar-provider"; import { buttonVariants } from "../ui/button"; import { Trans, useTranslation } from "react-i18next"; @@ -61,7 +60,6 @@ export default function PolygonItem({ const { data: config, mutate: updateConfig } = useSWR("config"); const [deleteDialogOpen, setDeleteDialogOpen] = useState(false); - const { addMessage } = useContext(StatusBarMessagesContext)!; const [isLoading, setIsLoading] = useState(false); const cameraConfig = useMemo(() => { @@ -171,10 +169,22 @@ export default function PolygonItem({ } } + const updateTopicType = + polygon.type === "zone" + ? "zones" + : polygon.type === "motion_mask" + ? "motion" + : polygon.type === "object_mask" + ? "objects" + : polygon.type; + setIsLoading(true); await axios - .put(`config/set?${url}`, { requires_restart: 0 }) + .put(`config/set?${url}`, { + requires_restart: 0, + update_topic: `config/cameras/${polygon.camera}/${updateTopicType}`, + }) .then((res) => { if (res.status === 200) { toast.success( @@ -220,12 +230,6 @@ export default function PolygonItem({ const handleDelete = () => { setActivePolygonIndex(undefined); saveToConfig(polygon); - addMessage( - "masks_zones", - t("masksAndZones.restart_required"), - undefined, - "masks_zones", - ); }; return (