diff --git a/web/src/components/settings/MotionMaskEditPane.tsx b/web/src/components/settings/MotionMaskEditPane.tsx index e5734d07a7..4fa09837ca 100644 --- a/web/src/components/settings/MotionMaskEditPane.tsx +++ b/web/src/components/settings/MotionMaskEditPane.tsx @@ -156,7 +156,7 @@ export default function MotionMaskEditPane({ message: t("masksAndZones.form.name.error.mustNotBeEmpty"), }), enabled: z.boolean(), - isFinished: z.boolean().refine(() => polygon?.isFinished === true, { + isFinished: z.boolean().refine((val) => val === true, { message: t("masksAndZones.form.polygonDrawing.error.mustBeFinished"), }), }); @@ -172,6 +172,12 @@ export default function MotionMaskEditPane({ }, }); + useEffect(() => { + if (polygon?.isFinished !== undefined) { + form.setValue("isFinished", polygon.isFinished, { shouldValidate: true }); + } + }, [polygon?.isFinished, form]); + const saveToConfig = useCallback( async ({ name: maskId, diff --git a/web/src/components/settings/ObjectMaskEditPane.tsx b/web/src/components/settings/ObjectMaskEditPane.tsx index dde87f55e2..4bff73c288 100644 --- a/web/src/components/settings/ObjectMaskEditPane.tsx +++ b/web/src/components/settings/ObjectMaskEditPane.tsx @@ -144,7 +144,7 @@ export default function ObjectMaskEditPane({ }), enabled: z.boolean(), objects: z.string(), - isFinished: z.boolean().refine(() => polygon?.isFinished === true, { + isFinished: z.boolean().refine((val) => val === true, { message: t("masksAndZones.form.polygonDrawing.error.mustBeFinished"), }), }); @@ -161,6 +161,12 @@ export default function ObjectMaskEditPane({ }, }); + useEffect(() => { + if (polygon?.isFinished !== undefined) { + form.setValue("isFinished", polygon.isFinished, { shouldValidate: true }); + } + }, [polygon?.isFinished, form]); + const saveToConfig = useCallback( async ({ name: maskId, diff --git a/web/src/components/settings/ZoneEditPane.tsx b/web/src/components/settings/ZoneEditPane.tsx index ef9a3c3cba..0affaff079 100644 --- a/web/src/components/settings/ZoneEditPane.tsx +++ b/web/src/components/settings/ZoneEditPane.tsx @@ -208,7 +208,7 @@ export default function ZoneEditPane({ }) .optional() .or(z.literal("")), - isFinished: z.boolean().refine(() => polygon?.isFinished === true, { + isFinished: z.boolean().refine((val) => val === true, { message: t("masksAndZones.form.polygonDrawing.error.mustBeFinished"), }), objects: z.array(z.string()).optional(), @@ -334,6 +334,12 @@ export default function ZoneEditPane({ } }, [polygon, form, t, watchSpeedEstimation]); + useEffect(() => { + if (polygon?.isFinished !== undefined) { + form.setValue("isFinished", polygon.isFinished, { shouldValidate: true }); + } + }, [polygon?.isFinished, form]); + const saveToConfig = useCallback( async ( {