diff --git a/apps/hub/app/(app)/settings/_components/forms.tsx b/apps/hub/app/(app)/settings/_components/forms.tsx index 06eb93fa..7b22104c 100644 --- a/apps/hub/app/(app)/settings/_components/forms.tsx +++ b/apps/hub/app/(app)/settings/_components/forms.tsx @@ -38,13 +38,9 @@ export const ProfileForm = ({ const canEdit = penaltys.length === 0 && !user.isBanned; const schema = z.object({ - firstname: z.string().min(2).max(30), - lastname: z.string().min(2).max(30), email: z .string() - .email({ - message: "Bitte gebe eine gültige E-Mail Adresse ein", - }) + .email({ message: "Gebe eine gültige E-Mail-Adresse ein" }) .refine( (value) => { // Regex to check for email aliases like + or % @@ -55,6 +51,28 @@ export const ProfileForm = ({ message: "Email-Aliase (wie + oder %) sind nicht erlaubt", }, ), + firstname: z + .string() + .min(2, { + message: "Der Vorname muss mindestens 2 Zeichen lang sein", + }) + .max(30, { + message: "Der Vorname darf maximal 30 Zeichen lang sein", + }) + .refine((val) => val.length === 0 || (/^[A-ZÄÖÜ]/.test(val) && val.split(" ").length > 1), { + message: "Der Vorname muss mit einem Großbuchstaben beginnen", + }), + lastname: z + .string() + .min(2, { + message: "Der Nachname muss mindestens 2 Zeichen lang sein", + }) + .max(30, { + message: "Der Nachname darf maximal 30 Zeichen lang sein", + }) + .refine((val) => val.length === 0 || val.includes(" ") || /^[A-ZÄÖÜ]/.test(val), { + message: "Der Nachname muss mit einem Großbuchstaben beginnen", + }), settingsHideLastname: z.boolean(), emailVerified: z.boolean().optional(), }); diff --git a/apps/hub/app/(auth)/register/_components/Register.tsx b/apps/hub/app/(auth)/register/_components/Register.tsx index 30d31961..29d9d854 100644 --- a/apps/hub/app/(auth)/register/_components/Register.tsx +++ b/apps/hub/app/(auth)/register/_components/Register.tsx @@ -45,7 +45,7 @@ export const Register = () => { .max(30, { message: "Der Nachname darf maximal 30 Zeichen lang sein", }) - .refine((val) => val.length === 0 || /^[A-ZÄÖÜ]/.test(val), { + .refine((val) => val.length === 0 || val.includes(" ") || /^[A-ZÄÖÜ]/.test(val), { message: "Der Nachname muss mit einem Großbuchstaben beginnen", }), password: z.string().min(12, {