"use client" import React, { useEffect, useState, Suspense } from 'react' import { useSearchParams } from 'next/navigation' import { Card, CardContent, CardHeader, CardTitle, CardDescription, CardFooter } from '@/components/ui/card' import { Button } from '@/components/ui/button' import { Loader2, CheckCircle2, XCircle, AlertCircle } from 'lucide-react' import Link from 'next/link' const VerifyEmailContent = () => { const searchParams = useSearchParams() const token = searchParams.get('token') const [status, setStatus] = useState<'loading' | 'success' | 'error' | 'invalid'>(token ? 'loading' : 'invalid') const [message, setMessage] = useState('') useEffect(() => { if (!token) { return } const verifyEmail = async () => { try { const apiUrl = process.env.NEXT_PUBLIC_API_URL || 'http://localhost:8080' const response = await fetch(`${apiUrl}/api/v1/auth/verify-email?token=${token}`, { method: 'GET', headers: { 'Accept': 'application/json' } }) // Backend responses might modify status const data = await response.json().catch(() => ({})) if (response.ok) { setStatus('success') setMessage(data.message || 'E-posta adresiniz başarıyla doğrulandı.') } else { setStatus('error') setMessage(data.error || data.message || 'Doğrulama işlemi başarısız oldu. Link süresi dolmuş veya geçersiz olabilir.') } } catch { setStatus('error') setMessage('Sunucu ile iletişim kurulurken bir hata oluştu.') } } verifyEmail() }, [token]) return ( E-posta Doğrulama Hesap aktivasyon durumu {status === 'loading' && ( <>

Doğrulanıyor, lütfen bekleyin...

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

Başarılı!

{message}

)} {status === 'error' && ( <>

Hata!

{message}

)} {status === 'invalid' && ( <>

Geçersiz Bağlantı

Doğrulama bağlantısı geçersiz veya eksik.

)}
{status === 'loading' ? ( ) : ( )}
) } const VerifyEmailPage = () => { return (
Yükleniyor...
}> ) } export default VerifyEmailPage