Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -36,7 +36,7 @@ const loginSchema = z.object({
|
||||
email: z.string().email({ message: "Email invalide" }),
|
||||
password: z
|
||||
.string()
|
||||
.min(6, { message: "Le mot de passe doit faire au moins 6 caractères" }),
|
||||
.min(8, { message: "Le mot de passe doit faire au moins 8 caractères" }),
|
||||
});
|
||||
|
||||
type LoginFormValues = z.infer<typeof loginSchema>;
|
||||
|
||||
@@ -29,11 +29,24 @@ import { useAuth } from "@/providers/auth-provider";
|
||||
const registerSchema = z.object({
|
||||
username: z
|
||||
.string()
|
||||
.min(3, { message: "Le pseudo doit faire au moins 3 caractères" }),
|
||||
.min(3, { message: "Le pseudo doit faire au moins 3 caractères" })
|
||||
.regex(/^[a-z0-9_]+$/, {
|
||||
message: "Le pseudo ne doit contenir que des minuscules, chiffres et underscores",
|
||||
}),
|
||||
email: z.string().email({ message: "Email invalide" }),
|
||||
password: z
|
||||
.string()
|
||||
.min(6, { message: "Le mot de passe doit faire au moins 6 caractères" }),
|
||||
.min(8, { message: "Le mot de passe doit faire au moins 8 caractères" })
|
||||
.regex(/[A-Z]/, {
|
||||
message: "Le mot de passe doit contenir au moins une majuscule",
|
||||
})
|
||||
.regex(/[a-z]/, {
|
||||
message: "Le mot de passe doit contenir au moins une minuscule",
|
||||
})
|
||||
.regex(/[0-9]/, { message: "Le mot de passe doit contenir au moins un chiffre" })
|
||||
.regex(/[^A-Za-z0-9]/, {
|
||||
message: "Le mot de passe doit contenir au moins un caractère spécial",
|
||||
}),
|
||||
displayName: z.string().optional(),
|
||||
});
|
||||
|
||||
@@ -84,12 +97,25 @@ export default function RegisterPage() {
|
||||
<CardContent>
|
||||
<Form {...form}>
|
||||
<form onSubmit={form.handleSubmit(onSubmit)} className="space-y-4">
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="displayName"
|
||||
render={({ field }) => (
|
||||
<FormItem>
|
||||
<FormLabel>Nom d'affichage (Optionnel)</FormLabel>
|
||||
<FormControl>
|
||||
<Input placeholder="Le Roi des Chèvres" {...field} />
|
||||
</FormControl>
|
||||
<FormMessage />
|
||||
</FormItem>
|
||||
)}
|
||||
/>
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="username"
|
||||
render={({ field }) => (
|
||||
<FormItem>
|
||||
<FormLabel>Pseudo</FormLabel>
|
||||
<FormLabel>Pseudo (minuscule)</FormLabel>
|
||||
<FormControl>
|
||||
<Input placeholder="supergoat" {...field} />
|
||||
</FormControl>
|
||||
@@ -110,19 +136,6 @@ export default function RegisterPage() {
|
||||
</FormItem>
|
||||
)}
|
||||
/>
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="displayName"
|
||||
render={({ field }) => (
|
||||
<FormItem>
|
||||
<FormLabel>Nom d'affichage (Optionnel)</FormLabel>
|
||||
<FormControl>
|
||||
<Input placeholder="Le Roi des Chèvres" {...field} />
|
||||
</FormControl>
|
||||
<FormMessage />
|
||||
</FormItem>
|
||||
)}
|
||||
/>
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="password"
|
||||
|
||||
Reference in New Issue
Block a user