Files
moy-qr/app/admin/(dashboard)/products/page.tsx
T

40 lines
1.3 KiB
TypeScript

import prisma from '@/lib/prisma'
import { Plus } from 'lucide-react'
import Link from 'next/link'
import CategoryAccordion from './CategoryAccordion'
export const metadata = {
title: 'Ürün Yönetimi - Admin',
}
export default async function ProductsPage() {
const categories = await prisma.categories.findMany({
orderBy: { order_num: 'asc' },
include: {
products: {
orderBy: { id: 'asc' },
},
},
})
return (
<div className="space-y-8">
<div className="flex flex-col sm:flex-row justify-between items-start sm:items-center gap-4">
<div>
<h1 className="text-2xl font-extrabold text-slate-900 tracking-tight">Ürün Yönetimi</h1>
<p className="text-sm text-slate-500 mt-1">Tüm kategorilerdeki ürünlerinizi görüntüleyin ve düzenleyin.</p>
</div>
<Link href="/admin/products/new" className="bg-blue-600 hover:bg-blue-700 text-white px-5 py-2.5 rounded-xl font-medium flex items-center gap-2 transition-all shadow-sm hover:shadow-md hover:-translate-y-0.5">
<Plus size={18} /> Yeni Ürün Ekle
</Link>
</div>
<div className="space-y-4">
{categories.map((category) => (
<CategoryAccordion key={category.id} category={category} defaultOpen={false} />
))}
</div>
</div>
)
}