'use client' import { Suspense, useEffect, useState } from 'react' import Link from 'next/link' import { useSearchParams } from 'next/navigation' import { CheckCircle2, AlertCircle, Sparkles } from 'lucide-react' import { useLanguage } from '@/lib/i18n' import { confirmEmail } from '@/app/actions/auth-verify' function VerifyEmailContent() { const { t } = useLanguage() const searchParams = useSearchParams() const token = searchParams.get('token') const [status, setStatus] = useState<'loading' | 'ok' | 'invalid' | 'expired'>('loading') useEffect(() => { if (!token) { setStatus('invalid') return } let cancelled = false ;(async () => { const result = await confirmEmail(token) if (cancelled) return if (result.success) setStatus('ok') else setStatus(result.error === 'expired' ? 'expired' : 'invalid') })() return () => { cancelled = true } }, [token]) if (status === 'loading') { return (

{t('auth.verifyLoading')}

) } if (status === 'ok') { return (

{t('auth.verifySuccessTitle')}

{t('auth.verifySuccessDescription')}

) } return (

{status === 'expired' ? t('auth.verifyExpiredTitle') : t('auth.verifyInvalidTitle')}

{status === 'expired' ? t('auth.verifyExpiredDescription') : t('auth.verifyInvalidDescription')}

) } export default function VerifyEmailPage() { return ( …}> ) }