'use client'; import { useState } from 'react'; import Link from 'next/link'; import { useLanguage } from '@/context/LanguageContext'; import { useAuth } from '@/context/AuthContext'; import Card from '@/components/ui/Card'; import Button from '@/components/ui/Button'; import Input from '@/components/ui/Input'; import GoogleSignInButton from '@/components/GoogleSignInButton'; import { redirectAfterAuth } from '@/lib/authRedirect'; import toast from 'react-hot-toast'; const REDIRECT_TO = '/dashboard'; export default function RegisterPage() { const { t, locale: language } = useLanguage(); const { register } = useAuth(); const [loading, setLoading] = useState(false); const [redirecting, setRedirecting] = useState(false); const [formData, setFormData] = useState({ name: '', email: '', password: '', phone: '', }); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); try { await register(formData); toast.success(language === 'es' ? 'Cuenta creada exitosamente!' : 'Account created successfully!'); // Deliberately leaves `loading` set: the button must stay disabled until the // browser replaces this page. setRedirecting(true); redirectAfterAuth(REDIRECT_TO); } catch (error: any) { toast.error(error.message || t('auth.errors.emailExists')); setLoading(false); } }; return (

{t('auth.register.title')}

{t('auth.register.subtitle')}

{/* Google Sign-In Button */} {/* Or Divider */}
{language === 'es' ? 'o registrarse con email' : 'or register with email'}
setFormData({ ...formData, name: e.target.value })} required minLength={2} /> setFormData({ ...formData, email: e.target.value })} required /> setFormData({ ...formData, password: e.target.value })} required minLength={8} /> setFormData({ ...formData, phone: e.target.value })} /> {redirecting && (

{t('auth.login.redirecting')}

)}

{t('auth.register.hasAccount')}{' '} {t('auth.register.login')}

); }