import { prisma } from '@/lib/db'; import { getSession } from '@/lib/auth'; import { redirect } from 'next/navigation'; import { Trash2, Plus, Image as ImageIcon } from 'lucide-react'; import { addGalleryItem, deleteGalleryItem } from '../actions'; import { revalidatePath } from 'next/cache'; import { uploadImage } from '@/lib/cloudinary'; export default async function GalleryAdminPage() { const session = await getSession(); if (!session) redirect('/admin/login'); const galleryItems = await prisma.gallery.findMany({ orderBy: { createdAt: 'desc' } }); return (

Galeri Yönetimi

{/* Ekleme Formu */}

Yeni Resim Ekle

{ 'use server'; const title = formData.get('title') as string; const category = formData.get('category') as string; const imageFile = formData.get('image') as File; if (title && category && imageFile && imageFile.size > 0) { const imageUrl = await uploadImage(imageFile); await addGalleryItem({ title, category, imageUrl }); revalidatePath('/admin/gallery'); } }} className="space-y-4">
{/* Listeleme */}

Mevcut Resimler ({galleryItems.length})

{galleryItems.map(item => (
{/* eslint-disable-next-line @next/next/no-img-element */} {item.title}

{item.title}

{item.category}

{ 'use server'; await deleteGalleryItem(item.id); revalidatePath('/admin/gallery'); }}>
))} {galleryItems.length === 0 && (
Galeriye henüz resim eklenmemiş.
)}
); }