"use client"; import { useState } from "react"; import { Plus, Edit2, Trash2, X } from "lucide-react"; import { createAdmin, updateAdmin, deleteAdmin } from "@/app/actions/admin"; type Admin = { id: string; name: string; email: string; createdAt: Date; }; export default function AdminsClient({ initialAdmins }: { initialAdmins: Admin[] }) { const [admins, setAdmins] = useState(initialAdmins); const [isModalOpen, setIsModalOpen] = useState(false); const [editingAdmin, setEditingAdmin] = useState(null); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const openModal = (admin?: Admin) => { setEditingAdmin(admin || null); setError(null); setIsModalOpen(true); }; const closeModal = () => { setIsModalOpen(false); setEditingAdmin(null); setError(null); }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); setError(null); const formData = new FormData(e.currentTarget); let result; if (editingAdmin) { result = await updateAdmin(editingAdmin.id, formData); } else { result = await createAdmin(formData); } if (result.success) { // Reload sayfa verileri için basit bir çözüm window.location.reload(); } else { setError(result.error || "Bir hata oluştu"); setLoading(false); } }; const handleDelete = async (id: string) => { if (!confirm("Bu yöneticiyi silmek istediğinize emin misiniz?")) return; setLoading(true); const result = await deleteAdmin(id); if (result.success) { window.location.reload(); } else { alert(result.error || "Silinirken hata oluştu"); setLoading(false); } }; return (

Yöneticiler

{admins.map((admin) => ( ))} {admins.length === 0 && ( )}
İsim E-posta Kayıt Tarihi İşlemler
{admin.name} {admin.email} {new Date(admin.createdAt).toLocaleDateString("tr-TR")}
Henüz bir yönetici bulunmuyor.
{/* Modal */} {isModalOpen && (

{editingAdmin ? "Yönetici Düzenle" : "Yeni Yönetici Ekle"}

{error && (
{error}
)}
)}
); }