import Link from 'next/link'; import { prisma } from '@/lib/prisma'; import { isAdminAuthenticated } from '@/lib/adminAuth'; import AdminNav from '@/components/AdminNav'; export default async function AdminDashboard() { const isAdmin = await isAdminAuthenticated(); if (!isAdmin) { return
Overview of orders, customers, and key metrics
Active Orders
{activeOrders.length}
Pending or paid
Revenue (Paid)
£{(totalRevenue / 100).toFixed(2)}
{orders.filter((o) => o.status === 'PAID').length} orders
Delivered
{deliveredCount}
Completed orders
Design Reviews
{designApprovals.length}
Awaiting approval
No active orders
) : (Order #{order.id.slice(0, 8).toUpperCase()}
{order.email || order.guestName || 'Guest'} · {order.items.length} item {order.items.length !== 1 ? 's' : ''}
£{(order.total / 100).toFixed(2)}
{order.status === 'PENDING' ? 'Awaiting payment' : 'Paid'}⚠ {failedOrders.length} Failed Order{failedOrders.length !== 1 ? 's' : ''}
{failedOrders.length} order{failedOrders.length !== 1 ? 's' : ''} failed payment processing.{' '} Review →
✏ {designApprovals.length} Design Review{designApprovals.length !== 1 ? 's' : ''}
{designApprovals.length} design{designApprovals.length !== 1 ? 's' : ''} awaiting approval.{' '} Review →
No customers yet
) : ({idx + 1}. {customer.name}
{customer.email}
{customer.orderCount} order{customer.orderCount !== 1 ? 's' : ''} · £ {(customer.totalSpent / 100).toFixed(2)}