"use client"; import React, { useRef, useState } from "react"; import Link from "next/link"; import { useRouter } from "next/navigation"; import { Turnstile, type TurnstileRef } from "nextjs-turnstile"; import { Loader2 } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { loginViaCookie } from "@/lib/auth-api"; import { AuthSocialButtons } from "@/components/auth-social-buttons"; import { cn } from "@/lib/utils"; const TURNSTILE_SITE_KEY = process.env.NEXT_PUBLIC_TURNSTILE_SITE_KEY ?? process.env.NEXT_PUBLIC_CLOUD_FLARE_SITE_KEY ?? ""; export default function LoginPage() { const router = useRouter(); const turnstileRef = useRef(null); const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const [turnstileToken, setTurnstileToken] = useState(null); const [error, setError] = useState(null); const [loading, setLoading] = useState(false); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(null); if (!email.trim()) { setError("E-posta gerekli."); return; } if (!password) { setError("Şifre gerekli."); return; } if (TURNSTILE_SITE_KEY && !turnstileToken) { setError("Lütfen doğrulamayı tamamlayın."); return; } setLoading(true); try { await loginViaCookie(email.trim(), password); if (typeof window !== "undefined") window.dispatchEvent(new Event("auth-change")); router.push("/"); router.refresh(); } catch (err) { setError(err instanceof Error ? err.message : "Giriş yapılamadı."); turnstileRef.current?.reset(); setTurnstileToken(null); } finally { setLoading(false); } }; return (

Giriş yap

Hesabınıza giriş yapın

{error && (
{error}
)}
setEmail(e.target.value)} disabled={loading} className={cn( "w-full rounded-lg border-neutral-200 dark:border-neutral-700" )} />
setPassword(e.target.value)} disabled={loading} className="w-full rounded-lg border-neutral-200 dark:border-neutral-700" />
{TURNSTILE_SITE_KEY && (
setTurnstileToken(null)} onError={() => setTurnstileToken(null)} />
)}

Hesabınız yok mu?{" "} Kayıt olun

); }