From e33da68fff411cbbfa28ae4977db829e1624d01e Mon Sep 17 00:00:00 2001
From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
Date: Mon, 18 May 2026 14:04:55 -0500
Subject: [PATCH] add reordering save text to camera management view
---
web/public/locales/en/views/settings.json | 2 +
.../views/settings/CameraManagementView.tsx | 98 ++++++++++++++++---
2 files changed, 84 insertions(+), 16 deletions(-)
diff --git a/web/public/locales/en/views/settings.json b/web/public/locales/en/views/settings.json
index edfbb19360..05e272f76f 100644
--- a/web/public/locales/en/views/settings.json
+++ b/web/public/locales/en/views/settings.json
@@ -482,6 +482,8 @@
"disableDesc": "Enable a camera that is currently not visible in the UI and disabled in the configuration. A restart of Frigate is required after enabling.",
"enableSuccess": "Enabled {{cameraName}} in configuration. Restart Frigate to apply the changes.",
"reorderHandle": "Drag to reorder",
+ "saving": "Saving…",
+ "saved": "Saved",
"friendlyName": {
"edit": "Edit camera display name",
"title": "Edit Display Name",
diff --git a/web/src/views/settings/CameraManagementView.tsx b/web/src/views/settings/CameraManagementView.tsx
index 08f6e9d8e4..83f2111c6c 100644
--- a/web/src/views/settings/CameraManagementView.tsx
+++ b/web/src/views/settings/CameraManagementView.tsx
@@ -15,6 +15,7 @@ import CameraEditForm from "@/components/settings/CameraEditForm";
import CameraWizardDialog from "@/components/settings/CameraWizardDialog";
import DeleteCameraDialog from "@/components/overlay/dialog/DeleteCameraDialog";
import {
+ LuCheck,
LuExternalLink,
LuGripVertical,
LuPencil,
@@ -52,6 +53,10 @@ import {
SelectValue,
} from "@/components/ui/select";
+const REORDER_SAVED_INDICATOR_MS = 1500;
+
+type ReorderSaveStatus = "idle" | "saving" | "saved";
+
type CameraManagementViewProps = {
setUnsavedChanges: React.Dispatch