enforce at least one letter in zone names (#20561)
Some checks failed
CI / AMD64 Build (push) Has been cancelled
CI / ARM Build (push) Has been cancelled
CI / Jetson Jetpack 6 (push) Has been cancelled
CI / AMD64 Extra Build (push) Has been cancelled
CI / ARM Extra Build (push) Has been cancelled
CI / Synaptics Build (push) Has been cancelled
CI / Assemble and push default build (push) Has been cancelled

This commit is contained in:
Josh Hawkins 2025-10-19 06:21:15 -05:00 committed by GitHub
parent 4c689dde8e
commit 4319118e94
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 2 deletions

View File

@ -385,7 +385,8 @@
"mustNotBeSameWithCamera": "Zone name must not be the same as camera name.", "mustNotBeSameWithCamera": "Zone name must not be the same as camera name.",
"alreadyExists": "A zone with this name already exists for this camera.", "alreadyExists": "A zone with this name already exists for this camera.",
"mustNotContainPeriod": "Zone name must not contain periods.", "mustNotContainPeriod": "Zone name must not contain periods.",
"hasIllegalCharacter": "Zone name contains illegal characters." "hasIllegalCharacter": "Zone name contains illegal characters.",
"mustHaveAtLeastOneLetter": "Zone name must have at least one letter."
} }
}, },
"distance": { "distance": {
@ -443,7 +444,7 @@
"name": { "name": {
"title": "Name", "title": "Name",
"inputPlaceHolder": "Enter a name…", "inputPlaceHolder": "Enter a name…",
"tips": "Name must be at least 2 characters and must not be the name of a camera or another zone." "tips": "Name must be at least 2 characters, must have at least one letter, and must not be the name of a camera or another zone."
}, },
"inertia": { "inertia": {
"title": "Inertia", "title": "Inertia",

View File

@ -149,6 +149,11 @@ export default function ZoneEditPane({
) )
.refine((value: string) => /^[a-zA-Z0-9_-]+$/.test(value), { .refine((value: string) => /^[a-zA-Z0-9_-]+$/.test(value), {
message: t("masksAndZones.form.zoneName.error.hasIllegalCharacter"), message: t("masksAndZones.form.zoneName.error.hasIllegalCharacter"),
})
.refine((value: string) => /[a-zA-Z]/.test(value), {
message: t(
"masksAndZones.form.zoneName.error.mustHaveAtLeastOneLetter",
),
}), }),
inertia: z.coerce inertia: z.coerce
.number() .number()