"use client"; import { useEffect, useState } from "react"; import { fetchClient } from "@/lib/api-client"; interface OrderItem { name: string; quantity: number; } interface Order { orderId: number | string; userId: number; total: number; createdAt: string; items?: OrderItem[]; } export default function RecentOrdersCard() { const [orders, setOrders] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { let mounted = true; (async () => { try { const data = await fetchClient("/admin/recent-orders"); if (mounted) setOrders(data); } catch (e: any) { if (mounted) setError(e?.message || "Failed to load orders"); } finally { if (mounted) setLoading(false); } })(); return () => { mounted = false; }; }, []); return (

Recent Orders

Last 10 orders across stores

{loading ? (

Loading...

) : error ? (

{error}

) : orders.length === 0 ? (

No recent orders

) : (
{orders.slice(0, 10).map((o) => (
Order #{o.orderId}
{new Date(o.createdAt).toLocaleString()}
User: {o.userId} · Total: £{Number(o.total).toFixed(2)}
{o.items && o.items.length > 0 && (
    {o.items.map((it, idx) => (
  • {it.name} × {it.quantity}
  • ))}
)}
))}
)}
); }