"use client"; import React, { useRef, useState } from "react"; import Link from "next/link"; 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 { register } 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 RegisterPage() { const turnstileRef = useRef(null); const [email, setEmail] = useState(""); const [firstName, setFirstName] = useState(""); const [lastName, setLastName] = useState(""); const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [turnstileToken, setTurnstileToken] = useState(null); const [error, setError] = useState(null); const [loading, setLoading] = useState(false); const [success, setSuccess] = useState(null); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(null); setSuccess(null); if (!email.trim()) { setError("E-posta gerekli."); return; } if (!firstName.trim()) { setError("Ad gerekli."); return; } if (!lastName.trim()) { setError("Soyad gerekli."); return; } if (!username.trim()) { setError("Kullanıcı adı gerekli."); return; } if (password.length < 6) { setError("Şifre en az 6 karakter olmalıdır."); return; } if (TURNSTILE_SITE_KEY && !turnstileToken) { setError("Lütfen doğrulamayı tamamlayın."); return; } setLoading(true); try { const res = await register({ email: email.trim(), first_name: firstName.trim(), last_name: lastName.trim(), username: username.trim(), password, }); setSuccess( res.message ?? "Kayıt başarılı. Giriş yapmadan önce e-posta doğrulaması yapın." ); turnstileRef.current?.reset(); setTurnstileToken(null); } catch (err) { setError(err instanceof Error ? err.message : "Kayıt oluşturulamadı."); turnstileRef.current?.reset(); setTurnstileToken(null); } finally { setLoading(false); } }; return (

Kayıt ol

Yeni hesap oluşturun

{error && (
{error}
)} {success && (
{success}
)}
setFirstName(e.target.value)} disabled={loading} className="rounded-lg border-neutral-200 dark:border-neutral-700" />
setLastName(e.target.value)} disabled={loading} className="rounded-lg border-neutral-200 dark:border-neutral-700" />
setUsername(e.target.value)} disabled={loading} className={cn( "w-full rounded-lg border-neutral-200 dark:border-neutral-700" )} />
setEmail(e.target.value)} disabled={loading} className="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)} />
)}

Zaten hesabınız var mı?{" "} Giriş yapın

); }