Datentypen in Prod DB vorbereiten für release #69
@@ -38,13 +38,9 @@ export const ProfileForm = ({
|
|||||||
const canEdit = penaltys.length === 0 && !user.isBanned;
|
const canEdit = penaltys.length === 0 && !user.isBanned;
|
||||||
|
|
||||||
const schema = z.object({
|
const schema = z.object({
|
||||||
firstname: z.string().min(2).max(30),
|
|
||||||
lastname: z.string().min(2).max(30),
|
|
||||||
email: z
|
email: z
|
||||||
.string()
|
.string()
|
||||||
.email({
|
.email({ message: "Gebe eine gültige E-Mail-Adresse ein" })
|
||||||
message: "Bitte gebe eine gültige E-Mail Adresse ein",
|
|
||||||
})
|
|
||||||
.refine(
|
.refine(
|
||||||
(value) => {
|
(value) => {
|
||||||
// Regex to check for email aliases like + or %
|
// Regex to check for email aliases like + or %
|
||||||
@@ -55,6 +51,28 @@ export const ProfileForm = ({
|
|||||||
message: "Email-Aliase (wie + oder %) sind nicht erlaubt",
|
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(),
|
settingsHideLastname: z.boolean(),
|
||||||
emailVerified: z.boolean().optional(),
|
emailVerified: z.boolean().optional(),
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ export const Register = () => {
|
|||||||
.max(30, {
|
.max(30, {
|
||||||
message: "Der Nachname darf maximal 30 Zeichen lang sein",
|
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",
|
message: "Der Nachname muss mit einem Großbuchstaben beginnen",
|
||||||
}),
|
}),
|
||||||
password: z.string().min(12, {
|
password: z.string().min(12, {
|
||||||
|
|||||||
Reference in New Issue
Block a user