import { prisma } from '@/lib/db'; import { getSession } from '@/lib/auth'; import { redirect } from 'next/navigation'; import { Trash2, Plus, Briefcase, Edit, X } from 'lucide-react'; import { addServiceItem, deleteServiceItem, updateServiceItem } from '../actions'; import { revalidatePath } from 'next/cache'; import { uploadImage } from '@/lib/openinary'; import Link from 'next/link'; export default async function ServicesAdminPage({ searchParams }: { searchParams: Promise<{ edit?: string }> }) { const session = await getSession(); if (!session) redirect('/admin/login'); const { edit } = await searchParams; const services = await prisma.service.findMany({ orderBy: { createdAt: 'desc' } }); const editingService = edit ? services.find((s: any) => s.id === edit) : null; return (

Hizmetlerimiz Yönetimi

{/* Ekleme / Düzenleme Formu */}

{editingService ? "Hizmeti Düzenle" : "Yeni Hizmet Ekle"}

{editingService && ( )}
{ 'use server'; const id = formData.get('id') as string; const title = formData.get('title') as string; const description = formData.get('description') as string; const iconFile = formData.get('icon') as File; if (title && description) { let iconUrl = editingService?.iconUrl || ''; if (iconFile && iconFile.size > 0) { iconUrl = await uploadImage(iconFile); } if (id) { await updateServiceItem(id, { title, description, iconUrl }); } else { await addServiceItem({ title, description, iconUrl }); } revalidatePath('/admin/services'); redirect('/admin/services'); } }} className="space-y-4"> {editingService && }
{editingService?.iconUrl && (
Mevcut resim korunuyor. Yeni resim seçerseniz değiştirilecektir.
)}
{/* Listeleme */}

Mevcut Hizmetler ({services.length})

{services.map((item: any) => (
{item.iconUrl ? ( // eslint-disable-next-line @next/next/no-img-element {item.title} ) : (
)}

{item.title}

{item.description}

{ 'use server'; await deleteServiceItem(item.id); revalidatePath('/admin/services'); }}>
))} {services.length === 0 && (
Henüz hizmet eklenmemiş.
)}
); }