"use client"; import { zodResolver } from "@hookform/resolvers/zod"; import { ArrowLeft } from "lucide-react"; import Link from "next/link"; import * as React from "react"; import { useForm } from "react-hook-form"; import * as z from "zod"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, } from "@/components/ui/card"; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; 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" }) .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(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(), }); type RegisterFormValues = z.infer; export default function RegisterPage() { const { register } = useAuth(); const [loading, setLoading] = React.useState(false); const form = useForm({ resolver: zodResolver(registerSchema), defaultValues: { username: "", email: "", password: "", displayName: "", }, }); async function onSubmit(values: RegisterFormValues) { setLoading(true); try { await register(values); } catch (_error) { // Error handled in useAuth } finally { setLoading(false); } } return (
Retour à l'accueil Inscription Rejoignez la communauté MemeGoat dès aujourd'hui.
( Nom d'affichage (Optionnel) )} /> ( Pseudo (minuscule) )} /> ( Email )} /> ( Mot de passe )} />

Vous avez déjà un compte ?{" "} Se connecter

); }