import Heading from "@/components/ui/heading"; import { Button, buttonVariants } from "@/components/ui/button"; import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from "@/components/ui/alert-dialog"; import { Toaster } from "@/components/ui/sonner"; import { useCallback, useContext, useState } from "react"; import { useTranslation } from "react-i18next"; import axios from "axios"; import { toast } from "sonner"; import { StatusBarMessagesContext } from "@/context/statusbar-provider"; import { cn } from "@/lib/utils"; type RegionGridSettingsViewProps = { selectedCamera: string; }; export default function RegionGridSettingsView({ selectedCamera, }: RegionGridSettingsViewProps) { const { t } = useTranslation("views/settings"); const { addMessage } = useContext(StatusBarMessagesContext)!; const [isConfirmOpen, setIsConfirmOpen] = useState(false); const [isClearing, setIsClearing] = useState(false); const [imageKey, setImageKey] = useState(0); const handleClear = useCallback(async () => { setIsClearing(true); try { await axios.delete(`${selectedCamera}/region_grid`); toast.success(t("maintenance.regionGrid.clearSuccess"), { position: "top-center", }); setImageKey((prev) => prev + 1); addMessage( "region_grid_restart", t("maintenance.regionGrid.restartRequired"), undefined, "region_grid_settings", ); } catch { toast.error(t("maintenance.regionGrid.clearError"), { position: "top-center", }); } finally { setIsClearing(false); setIsConfirmOpen(false); } }, [selectedCamera, t, addMessage]); return ( <>
{t("maintenance.regionGrid.title")}

{t("maintenance.regionGrid.desc")}

{t("maintenance.regionGrid.title")}
{t("maintenance.regionGrid.clearConfirmTitle")} {t("maintenance.regionGrid.clearConfirmDesc")} {t("button.cancel", { ns: "common" })} {t("maintenance.regionGrid.clear")} ); }