"use client" import { useState, useEffect } from "react" import { useRouter } from "next/navigation" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@/components/ui/card" import { AlertCircle, Loader2 } from "lucide-react" import { sendVerificationCode, verifyCode } from "@/lib/sms/verification-actions" import { createClient } from "@/lib/supabase-browser" export default function Verify2FAPage() { const router = useRouter() const [code, setCode] = useState("") const [loading, setLoading] = useState(false) const [error, setError] = useState(null) const [sent, setSent] = useState(false) const [maskedPhone, setMaskedPhone] = useState("") useEffect(() => { // Init: Send code automatically const init = async () => { setLoading(true) const result = await sendVerificationCode() setLoading(false) if (result.error) { setError(result.error) } else { setSent(true) setMaskedPhone(result.phone || "") } } init() }, []) const handleVerify = async (e: React.FormEvent) => { e.preventDefault() setLoading(true) setError(null) try { const result = await verifyCode(code) if (result.error) { setError(result.error) } else { router.push("/dashboard") router.refresh() } } catch { setError("Bir hata oluştu.") } finally { setLoading(false) } } const handleResend = async () => { setLoading(true) setError(null) const result = await sendVerificationCode() setLoading(false) if (result.error) { setError(result.error) } else { setSent(true) } } return (
SMS Doğrulama {sent ? `Telefonunuza (***${maskedPhone}) gönderilen 6 haneli kodu girin.` : "Doğrulama kodu gönderiliyor..."} {error && (
{error}
)}
setCode(e.target.value)} maxLength={6} className="text-center text-lg tracking-widest" required />
) }