"use client" import Link from "next/link" import { useState } from "react" import { useRouter } from "next/navigation" import { useForm } from "react-hook-form" import { zodResolver } from "@hookform/resolvers/zod" import { Button } from "@/components/ui/button" import { Card, CardContent } from "@/components/ui/card" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { Mail, Lock, AlertCircle, CheckCircle } from "lucide-react" import { useAuth } from "@/lib/auth-context" import { registerSchema, type RegisterFormData } from "@/lib/validation" export default function RegisterPage() { const router = useRouter() const { register: registerUser, isLoading } = useAuth() const [apiError, setApiError] = useState("") const [success, setSuccess] = useState(false) const { register, handleSubmit, formState: { errors, isSubmitting }, } = useForm({ resolver: zodResolver(registerSchema), }) const onSubmit = async (data: RegisterFormData) => { setApiError("") setSuccess(false) try { await registerUser(data.email, data.password, data.firstName, data.lastName, data.citizenId) setSuccess(true) setTimeout(() => { router.push("/dashboard") }, 500) } catch (err) { setApiError("Une erreur s'est produite lors de l'inscription") } } return (
{/* Left side - Illustration */}
🗳️

Rejoignez-nous

Créez un compte pour participer à des élections sécurisées et transparentes

Inscription gratuite

Sécurité maximale

Aucune données

{/* Right side - Form */}

S'inscrire

Créez votre compte E-Voting

{apiError && (

Erreur

{apiError}

)} {success && (

Succès

Votre compte a été créé avec succès

)}
{errors.firstName && (

{errors.firstName.message}

)}
{errors.lastName && (

{errors.lastName.message}

)}
{errors.email && (

{errors.email.message}

)}
{errors.citizenId && (

{errors.citizenId.message}

)}
{errors.password && (

{errors.password.message}

)}
{errors.passwordConfirm && (

{errors.passwordConfirm.message}

)}

Déjà un compte?{" "} Se connecter

) }