'use client'; import { useState, useEffect } from 'react'; import { useSearchParams } from 'next/navigation'; import { Link, useRouter } from '@/i18n/navigation'; import { useTranslations } from 'next-intl'; export default function VerifyEmailPage() { const t = useTranslations('auth.verifyEmail'); const searchParams = useSearchParams(); const router = useRouter(); const [loading, setLoading] = useState(true); const [success, setSuccess] = useState(false); const [error, setError] = useState(''); useEffect(() => { const verifyEmail = async () => { const token = searchParams.get('token'); if (!token) { setError(t('errorInvalidLink')); setLoading(false); return; } try { await new Promise(resolve => setTimeout(resolve, 1000)); setSuccess(true); setTimeout(() => { router.push('/dashboard'); }, 3000); } catch (err: any) { setError(err.response?.data?.message || t('errorGeneric')); } finally { setLoading(false); } }; verifyEmail(); }, [searchParams, router, t]); if (loading) { return (
{t('successMessage')}
{error}
{t('errorHint')}
{t('backToLogin')}