From eb1aad04218a70c4c95868326c1c4aca65e043db Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Tue, 26 May 2026 12:10:05 -0500 Subject: [PATCH] radio and checkbox tweaks --- .../components/settings/CloneCameraDialog.tsx | 184 +++++++++++------- 1 file changed, 117 insertions(+), 67 deletions(-) diff --git a/web/src/components/settings/CloneCameraDialog.tsx b/web/src/components/settings/CloneCameraDialog.tsx index 11c9161b95..8c981f39a0 100644 --- a/web/src/components/settings/CloneCameraDialog.tsx +++ b/web/src/components/settings/CloneCameraDialog.tsx @@ -37,12 +37,14 @@ import { cn } from "@/lib/utils"; import { isReplayCamera, processCameraName } from "@/utils/cameraUtil"; import type { FrigateConfig } from "@/types/frigateConfig"; import { Checkbox } from "@/components/ui/checkbox"; -import { Alert, AlertDescription } from "@/components/ui/alert"; +import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; +import { Label } from "@/components/ui/label"; import { LuTriangleAlert } from "react-icons/lu"; import { CLONE_CATEGORIES, type CloneCategoryKey, type CloneCategoryGroup, + type RawCameraPaths, getCategoryDefaults, resolutionsMatch, buildClonedCameraPayloads, @@ -74,6 +76,7 @@ export default function CloneCameraDialog({ }: CloneCameraDialogProps) { const { t } = useTranslation(["views/settings", "common"]); const { data: config } = useSWR("config"); + const { data: rawPaths } = useSWR("config/raw_paths"); const [isSubmitting, setIsSubmitting] = useState(false); const otherCameras = useMemo(() => { @@ -225,16 +228,18 @@ export default function CloneCameraDialog({ selectedKeys: selectedCategories, fullConfig: config, fullSchema, + rawPaths, }); }, [ config, fullSchema, srcCfg, + sourceCamera, targetIsNew, existingTarget, watchedNewName, selectedCategories, - sourceCamera, + rawPaths, ]); const previewTarget = targetIsNew @@ -388,10 +393,10 @@ export default function CloneCameraDialog({
-
- +
+
-
- -
{targetMode === "new" && ( - + {t( "cameraManagement.clone.target.newNameLabel", @@ -446,16 +459,21 @@ export default function CloneCameraDialog({ )}
-
+
- +
{targetMode === "existing" && otherCameras.length > 0 && ( @@ -478,7 +496,7 @@ export default function CloneCameraDialog({ control={form.control} name="existingTarget" render={({ field: tgtField }) => ( - +