import Link from 'next/link'; import { prisma } from '@/lib/prisma'; import { toProductDTO } from '@/lib/product'; import { fetchActivePromotions } from '@/lib/promotions'; import AdminNav from '@/components/AdminNav'; import ProductMockup from '@/components/ProductMockup'; import { deleteProduct } from './actions'; export default async function AdminProductsPage({ searchParams, }: { searchParams: { error?: string }; }) { const activePromotions = await fetchActivePromotions(); let products = []; try { const rows = await prisma.product.findMany(); products = rows.map((p) => toProductDTO(p, activePromotions)).sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime() ); } catch (err) { console.error('Error fetching products:', err); } return (
No products yet.
) : ({p.name}
{p.category.replace('_', ' ')} · £${(p.basePrice / 100).toFixed(2)} · {p.colors.length}{' '} color{p.colors.length === 1 ? '' : 's'} {p.sizes.length > 0 && ` · ${p.sizes.join('/')}`}