"use client"; import { useState } from "react"; import { Plus, Edit2, Trash2, X, Star } from "lucide-react"; import { createEvent, updateEvent, deleteEvent } from "@/app/actions/events"; type Event = { id: string; title: string; time: string; tag: string; iconType: string; colorTheme: string; isFeatured: boolean; }; export default function EventsClient({ initialEvents }: { initialEvents: Event[] }) { const [events] = useState(initialEvents); const [isModalOpen, setIsModalOpen] = useState(false); const [editingEvent, setEditingEvent] = useState(null); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const openModal = (event?: Event) => { setEditingEvent(event || null); setError(null); setIsModalOpen(true); }; const closeModal = () => { setIsModalOpen(false); setEditingEvent(null); setError(null); }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); setError(null); const formData = new FormData(e.currentTarget); let result; if (editingEvent) { result = await updateEvent(editingEvent.id, formData); } else { result = await createEvent(formData); } if (result.success) { window.location.reload(); } else { setError(result.error || "Bir hata oluştu"); setLoading(false); } }; const handleDelete = async (id: string) => { if (!confirm("Bu etkinliği silmek istediğinize emin misiniz?")) return; setLoading(true); const result = await deleteEvent(id); if (result.success) { window.location.reload(); } else { alert(result.error || "Silinirken hata oluştu"); setLoading(false); } }; return (

Etkinlikler

{events.map((event) => ( ))} {events.length === 0 && ( )}
Öne Çıkan Başlık Zaman Etiket İşlemler
{event.isFeatured ? : ""} {event.title} {event.time} {event.tag}
Henüz bir etkinlik bulunmuyor.
{/* Modal */} {isModalOpen && (

{editingEvent ? "Etkinlik Düzenle" : "Yeni Etkinlik Ekle"}

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