From 9c566ba299e63720abc242bc12e56812f4c5f2c7 Mon Sep 17 00:00:00 2001
From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
Date: Fri, 29 May 2026 07:59:40 -0500
Subject: [PATCH] remove redundant per-view toasters in settings
---
.../config-form/sectionExtras/NotificationsSettingsExtras.tsx | 2 --
web/src/components/settings/MotionMaskEditPane.tsx | 2 --
web/src/components/settings/ObjectMaskEditPane.tsx | 2 --
web/src/components/settings/PolygonItem.tsx | 3 ---
web/src/components/settings/ZoneEditPane.tsx | 2 --
web/src/pages/Settings.tsx | 4 ++--
web/src/views/settings/AuthenticationView.tsx | 2 --
web/src/views/settings/DetectorsAndModelSettingsView.tsx | 2 --
web/src/views/settings/FrigatePlusSettingsView.tsx | 2 --
web/src/views/settings/MasksAndZonesView.tsx | 2 --
web/src/views/settings/MediaSyncSettingsView.tsx | 2 --
web/src/views/settings/MotionTunerView.tsx | 2 --
web/src/views/settings/RegionGridSettingsView.tsx | 2 --
web/src/views/settings/TriggerView.tsx | 2 --
web/src/views/settings/UiSettingsView.tsx | 3 +--
15 files changed, 3 insertions(+), 31 deletions(-)
diff --git a/web/src/components/config-form/sectionExtras/NotificationsSettingsExtras.tsx b/web/src/components/config-form/sectionExtras/NotificationsSettingsExtras.tsx
index fb53055bcc..e52c474004 100644
--- a/web/src/components/config-form/sectionExtras/NotificationsSettingsExtras.tsx
+++ b/web/src/components/config-form/sectionExtras/NotificationsSettingsExtras.tsx
@@ -10,7 +10,6 @@ import {
FormMessage,
} from "@/components/ui/form";
import { Input } from "@/components/ui/input";
-import { Toaster } from "@/components/ui/sonner";
import { StatusBarMessagesContext } from "@/context/statusbar-provider";
import { FrigateConfig } from "@/types/frigateConfig";
import { zodResolver } from "@hookform/resolvers/zod";
@@ -491,7 +490,6 @@ export default function NotificationsSettingsExtras({
return (
-
{isAdmin && (
diff --git a/web/src/components/settings/MotionMaskEditPane.tsx b/web/src/components/settings/MotionMaskEditPane.tsx
index 961b0f9277..7bc3a9e379 100644
--- a/web/src/components/settings/MotionMaskEditPane.tsx
+++ b/web/src/components/settings/MotionMaskEditPane.tsx
@@ -22,7 +22,6 @@ import { FrigateConfig } from "@/types/frigateConfig";
import { flattenPoints, interpolatePoints } from "@/utils/canvasUtil";
import axios from "axios";
import { toast } from "sonner";
-import { Toaster } from "../ui/sonner";
import ActivityIndicator from "../indicators/activity-indicator";
import { Link } from "react-router-dom";
import { LuExternalLink } from "react-icons/lu";
@@ -327,7 +326,6 @@ export default function MotionMaskEditPane({
return (
<>
-
{polygon.name.length
? t("masksAndZones.motionMasks.edit")
diff --git a/web/src/components/settings/ObjectMaskEditPane.tsx b/web/src/components/settings/ObjectMaskEditPane.tsx
index 5ec090122a..546d32df56 100644
--- a/web/src/components/settings/ObjectMaskEditPane.tsx
+++ b/web/src/components/settings/ObjectMaskEditPane.tsx
@@ -31,7 +31,6 @@ import { FaCheckCircle } from "react-icons/fa";
import { flattenPoints, interpolatePoints } from "@/utils/canvasUtil";
import axios from "axios";
import { toast } from "sonner";
-import { Toaster } from "../ui/sonner";
import ActivityIndicator from "../indicators/activity-indicator";
import { useTranslation } from "react-i18next";
import { getTranslatedLabel } from "@/utils/i18n";
@@ -335,7 +334,6 @@ export default function ObjectMaskEditPane({
return (
<>
-
{polygon.name.length
? t("masksAndZones.objectMasks.edit")
diff --git a/web/src/components/settings/PolygonItem.tsx b/web/src/components/settings/PolygonItem.tsx
index af2e7813ac..803cd49fd2 100644
--- a/web/src/components/settings/PolygonItem.tsx
+++ b/web/src/components/settings/PolygonItem.tsx
@@ -24,7 +24,6 @@ import { toRGBColorString } from "@/utils/canvasUtil";
import { Polygon, PolygonType } from "@/types/canvas";
import { useCallback, useMemo, useState } from "react";
import axios from "axios";
-import { Toaster } from "@/components/ui/sonner";
import { toast } from "sonner";
import useSWR from "swr";
import { FrigateConfig } from "@/types/frigateConfig";
@@ -368,8 +367,6 @@ export default function PolygonItem({
return (
<>
-
-
-
{polygon.name.length
? t("masksAndZones.zones.edit")
diff --git a/web/src/pages/Settings.tsx b/web/src/pages/Settings.tsx
index d46b372abd..f49c657b40 100644
--- a/web/src/pages/Settings.tsx
+++ b/web/src/pages/Settings.tsx
@@ -1616,7 +1616,7 @@ export default function Settings() {
if (isMobile) {
return (
<>
-
+
{!contentMobileOpen && (
-
+
diff --git a/web/src/views/settings/AuthenticationView.tsx b/web/src/views/settings/AuthenticationView.tsx
index 225de37f8f..006640bea6 100644
--- a/web/src/views/settings/AuthenticationView.tsx
+++ b/web/src/views/settings/AuthenticationView.tsx
@@ -1,7 +1,6 @@
import { useCallback, useEffect, useMemo, useState } from "react";
import ActivityIndicator from "@/components/indicators/activity-indicator";
import { FrigateConfig } from "@/types/frigateConfig";
-import { Toaster } from "@/components/ui/sonner";
import useSWR from "swr";
import Heading from "@/components/ui/heading";
import { User } from "@/types/user";
@@ -790,7 +789,6 @@ export default function AuthenticationView({
return (
-
{section === "users" && UsersSection}
{section === "roles" && RolesSection}
diff --git a/web/src/views/settings/DetectorsAndModelSettingsView.tsx b/web/src/views/settings/DetectorsAndModelSettingsView.tsx
index ebbad2b523..78f28124d4 100644
--- a/web/src/views/settings/DetectorsAndModelSettingsView.tsx
+++ b/web/src/views/settings/DetectorsAndModelSettingsView.tsx
@@ -22,7 +22,6 @@ import ActivityIndicator from "@/components/indicators/activity-indicator";
import Heading from "@/components/ui/heading";
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
-import { Toaster } from "@/components/ui/sonner";
import { Label } from "@/components/ui/label";
import { Switch } from "@/components/ui/switch";
import {
@@ -598,7 +597,6 @@ export default function DetectorsAndModelSettingsView({
return (
-
{t("detectorsAndModel.title")}
diff --git a/web/src/views/settings/FrigatePlusSettingsView.tsx b/web/src/views/settings/FrigatePlusSettingsView.tsx
index c45817b164..7bc60fa1f7 100644
--- a/web/src/views/settings/FrigatePlusSettingsView.tsx
+++ b/web/src/views/settings/FrigatePlusSettingsView.tsx
@@ -4,7 +4,6 @@ import { Link, useNavigate } from "react-router-dom";
import useSWR from "swr";
import { CheckCircle2, XCircle } from "lucide-react";
import { LuExternalLink } from "react-icons/lu";
-import { Toaster } from "@/components/ui/sonner";
import ActivityIndicator from "@/components/indicators/activity-indicator";
import { Button } from "@/components/ui/button";
import Heading from "@/components/ui/heading";
@@ -35,7 +34,6 @@ export default function FrigatePlusSettingsView(_props: SettingsPageProps) {
return (
-
diff --git a/web/src/views/settings/MasksAndZonesView.tsx b/web/src/views/settings/MasksAndZonesView.tsx
index 84b27d51af..17b8f5f6cf 100644
--- a/web/src/views/settings/MasksAndZonesView.tsx
+++ b/web/src/views/settings/MasksAndZonesView.tsx
@@ -15,7 +15,6 @@ import {
} from "@/components/ui/hover-card";
import copy from "copy-to-clipboard";
import { toast } from "sonner";
-import { Toaster } from "@/components/ui/sonner";
import { Button } from "@/components/ui/button";
import {
Tooltip,
@@ -730,7 +729,6 @@ export default function MasksAndZonesView({
<>
{cameraConfig && editingPolygons && (
-
{editPane == "zone" && (
-
diff --git a/web/src/views/settings/MotionTunerView.tsx b/web/src/views/settings/MotionTunerView.tsx
index 2989f58276..ea226b4128 100644
--- a/web/src/views/settings/MotionTunerView.tsx
+++ b/web/src/views/settings/MotionTunerView.tsx
@@ -15,7 +15,6 @@ import {
import { Skeleton } from "@/components/ui/skeleton";
import { Button } from "@/components/ui/button";
import { Switch } from "@/components/ui/switch";
-import { Toaster } from "@/components/ui/sonner";
import { toast } from "sonner";
import { Separator } from "@/components/ui/separator";
import { Link } from "react-router-dom";
@@ -184,7 +183,6 @@ export default function MotionTunerView({
return (
-
{t("motionDetectionTuner.title")}
diff --git a/web/src/views/settings/RegionGridSettingsView.tsx b/web/src/views/settings/RegionGridSettingsView.tsx
index 8ab571a3f3..a7ecd5c4d9 100644
--- a/web/src/views/settings/RegionGridSettingsView.tsx
+++ b/web/src/views/settings/RegionGridSettingsView.tsx
@@ -10,7 +10,6 @@ import {
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";
@@ -59,7 +58,6 @@ export default function RegionGridSettingsView({
return (
<>
-
{t("maintenance.regionGrid.title")}
diff --git a/web/src/views/settings/TriggerView.tsx b/web/src/views/settings/TriggerView.tsx
index 204fd4dc9f..ece43078e3 100644
--- a/web/src/views/settings/TriggerView.tsx
+++ b/web/src/views/settings/TriggerView.tsx
@@ -1,7 +1,6 @@
import { useCallback, useEffect, useMemo, useState } from "react";
import { Trans, useTranslation } from "react-i18next";
import { toast } from "sonner";
-import { Toaster } from "@/components/ui/sonner";
import useSWR from "swr";
import axios from "axios";
import { Button } from "@/components/ui/button";
@@ -443,7 +442,6 @@ export default function TriggerView({
return (