'use client'; import { useState } from 'react'; import { signIn } from 'next-auth/react'; import { useRouter } from 'next/navigation'; import Link from 'next/link'; import { RocketIcon } from '@/components/ui'; export default function RegisterPage() { const router = useRouter(); const [error, setError] = useState(null); const [loading, setLoading] = useState(false); async function handleSubmit(e: React.FormEvent) { e.preventDefault(); setError(null); setLoading(true); const formData = new FormData(e.currentTarget); const name = formData.get('name') as string; const email = formData.get('email') as string; const password = formData.get('password') as string; const confirmPassword = formData.get('confirmPassword') as string; if (password !== confirmPassword) { setError('Les mots de passe ne correspondent pas'); setLoading(false); return; } if (password.length < 6) { setError('Le mot de passe doit contenir au moins 6 caractères'); setLoading(false); return; } try { const res = await fetch('/api/auth/register', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name, email, password }), }); const data = await res.json(); if (!res.ok) { setError(data.error || 'Une erreur est survenue'); setLoading(false); return; } // Auto sign in after registration const result = await signIn('credentials', { email, password, redirect: false, }); if (result?.error) { setError('Compte créé mais erreur de connexion. Veuillez vous connecter manuellement.'); } else { router.push('/sessions'); router.refresh(); } } catch { setError('Une erreur est survenue'); } finally { setLoading(false); } } return (
Workshop Manager

Créez votre compte

{error && (
{error}
)}

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

); }