From 96d081fad5893b0a87a4463b5e3f61ac9fb23647 Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Sat, 16 May 2026 16:29:11 -0500 Subject: [PATCH] Always require restart on save since model changes also need one --- web/public/locales/en/views/settings.json | 3 +-- .../DetectorsAndModelSettingsView.tsx | 26 +++++++------------ 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/web/public/locales/en/views/settings.json b/web/public/locales/en/views/settings.json index 447d7491b1..a1b60dfd8a 100644 --- a/web/public/locales/en/views/settings.json +++ b/web/public/locales/en/views/settings.json @@ -1173,8 +1173,7 @@ "noModelSelected": "Select a Frigate+ model" }, "toast": { - "saveSuccess": "Detector and model settings saved", - "saveSuccessRestart": "Detector changed — restart Frigate to apply", + "saveSuccess": "Settings saved — restart Frigate to apply", "saveError": "Failed to save detector and model settings" }, "unsavedChanges": "Unsaved detector and model changes" diff --git a/web/src/views/settings/DetectorsAndModelSettingsView.tsx b/web/src/views/settings/DetectorsAndModelSettingsView.tsx index ee024ca5ce..ffbf564046 100644 --- a/web/src/views/settings/DetectorsAndModelSettingsView.tsx +++ b/web/src/views/settings/DetectorsAndModelSettingsView.tsx @@ -3,7 +3,6 @@ import { useTranslation } from "react-i18next"; import { Link } from "react-router-dom"; import { LuExternalLink, LuFilter } from "react-icons/lu"; import { toast } from "sonner"; -import isEqual from "lodash/isEqual"; import axios from "axios"; import useSWR from "swr"; import { useSWRConfig } from "swr"; @@ -285,7 +284,6 @@ export default function DetectorsAndModelSettingsView({ const onSave = useCallback(async () => { if (!state || !snapshot) return; - const detectorChanged = !isEqual(state.detectors, snapshot.detectors); const tabChanged = state.modelTab !== snapshot.modelTab; const modelPayload = @@ -303,7 +301,7 @@ export default function DetectorsAndModelSettingsView({ } await axios.put("config/set", { - requires_restart: detectorChanged ? 1 : 0, + requires_restart: 1, config_data: { detectors: state.detectors, model: modelPayload, @@ -318,20 +316,14 @@ export default function DetectorsAndModelSettingsView({ setChildPending({}); setResetKey((k) => k + 1); - if (detectorChanged) { - toast.success(t("detectorsAndModel.toast.saveSuccessRestart"), { - position: "top-center", - action: ( - - ), - }); - } else { - toast.success(t("detectorsAndModel.toast.saveSuccess"), { - position: "top-center", - }); - } + toast.success(t("detectorsAndModel.toast.saveSuccess"), { + position: "top-center", + action: ( + + ), + }); } catch (error) { const err = error as { response?: { data?: { message?: string; detail?: string } };