"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 (
Doğrulanıyor, lütfen bekleyin... {message} {message} Doğrulama bağlantısı geçersiz veya eksik.Başarılı!
Hata!
Geçersiz Bağlantı