import { useState, useEffect } from 'react'; import { Link, useSearchParams } from 'react-router-dom'; import { useLanguage } from '../contexts/LanguageContext'; import { CheckCircle, XCircle, Loader2, Mail } from 'lucide-react'; import BrandLogo from '../components/BrandLogo'; import api from '../services/api'; export default function VerifyEmail() { const [searchParams] = useSearchParams(); const token = searchParams.get('token'); const { t } = useLanguage(); const [status, setStatus] = useState('loading'); // loading | success | error const [message, setMessage] = useState(''); useEffect(() => { if (!token) { setStatus('error'); setMessage(t('auth.verifyTokenMissing')); return; } api.get(`/auth/verify-email?token=${token}`) .then(() => { setStatus('success'); setMessage(t('auth.verifySuccess')); }) .catch(err => { setStatus('error'); setMessage(err.response?.data?.error || t('auth.verifyFailed')); }); }, [token]); return (
{/* Animated background */}
{status === 'loading' && (

{t('auth.verifying')}

)} {status === 'success' && (

{t('auth.verifySuccessTitle')}

{message}

{t('auth.login')}
)} {status === 'error' && (

{t('auth.verifyFailedTitle')}

{message}

{t('auth.register')}
)} {t('auth.backToHome')}
); }