'use client'; import { Suspense, useState } from 'react'; import { useRouter, useSearchParams } from 'next/navigation'; import Link from 'next/link'; import { useAuth } from '@/contexts/AuthContext'; function RegisterForm() { const { register } = useAuth(); const router = useRouter(); const searchParams = useSearchParams(); const returnTo = searchParams.get('returnTo') ?? '/'; const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [confirm, setConfirm] = useState(''); const [error, setError] = useState(''); const [loading, setLoading] = useState(false); const [done, setDone] = useState(false); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(''); if (password !== confirm) { setError('Las contraseñas no coinciden'); return; } setLoading(true); const result = await register(email, password); setLoading(false); if (result.ok) { router.push(returnTo); } else { setError(result.error || 'Error al crear cuenta'); } }; if (done) { return (

¡Revisa tu correo!

Hemos enviado un enlace de confirmación a {email}.
Haz clic en el enlace para activar tu cuenta.

¿No lo recibiste? Inténtalo de nuevo

); } return (

Crear cuenta

{error && (
{error} {error.includes('ya está registrado') && (
Inicia sesión con tu cuenta existente
)}
)}
setEmail(e.target.value)} className="w-full px-4 py-3 border border-gray-300 rounded-xl focus:ring-2 focus:ring-[#70ad47] focus:border-transparent outline-none" />
setPassword(e.target.value)} minLength={8} className="w-full px-4 py-3 border border-gray-300 rounded-xl focus:ring-2 focus:ring-[#70ad47] focus:border-transparent outline-none" />
setConfirm(e.target.value)} className="w-full px-4 py-3 border border-gray-300 rounded-xl focus:ring-2 focus:ring-[#70ad47] focus:border-transparent outline-none" />

¿Ya tienes cuenta? Inicia sesión

); } export default function RegisterPage() { return ( ); }