import React from "react"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Package, AlertTriangle, CheckCircle2, XCircle, DollarSign } from "lucide-react"; import { fetchServer } from "@/lib/api"; import OrdersTable from "@/components/admin/OrdersTable"; import { MotionWrapper } from "@/components/ui/motion-wrapper"; export const dynamic = 'force-dynamic'; interface Order { orderId: string | number; userId: string; total: number; createdAt: string; status: string; items: Array<{ name: string; quantity: number; }>; vendorUsername?: string; } interface SystemStats { vendors: number; orders: number; products: number; chats: number; } export default async function AdminOrdersPage() { let orders: Order[] = []; let systemStats: SystemStats | null = null; let error: string | null = null; try { const [ordersData, statsData] = await Promise.all([ fetchServer("/admin/recent-orders"), fetchServer("/admin/stats") ]); orders = ordersData; systemStats = statsData; } catch (err) { console.error("Failed to fetch data:", err); error = "Failed to load data"; } if (error) { return (

Recent Orders

Monitor and manage platform orders

{error}

); } const acknowledgedOrders = orders.filter(o => o.status === 'acknowledged'); const paidOrders = orders.filter(o => o.status === 'paid'); const completedOrders = orders.filter(o => o.status === 'completed'); const cancelledOrders = orders.filter(o => o.status === 'cancelled'); return (

Recent Orders

Monitor and manage platform transaction activity

{/* Stats Cards */}
Total Orders
{systemStats?.orders || 0}

Lifetime volume

Acknowledged
{acknowledgedOrders.length}

Vendor pending

Paid
{paidOrders.length}

Processing

Completed
{completedOrders.length}

Delivered

{/* Orders Table with Pagination */}
{/* Order Analytics */}
Status Distribution Breakdown of active orders

Acknowledged

Waiting for shipment

{orders.length > 0 ? Math.round((acknowledgedOrders.length / orders.length) * 100) : 0}%

Paid

Payment confirmed

{orders.length > 0 ? Math.round((paidOrders.length / orders.length) * 100) : 0}%

Completed

Successfully concluded

{orders.length > 0 ? Math.round((completedOrders.length / orders.length) * 100) : 0}%
Activity Summary Recent volume breakdown
Total Displayed Orders {orders.length}
Active

{acknowledgedOrders.length + paidOrders.length}

Finished

{completedOrders.length}

Voided

{cancelledOrders.length}

Success Rate

{orders.length > 0 ? Math.round((completedOrders.length / (orders.length - (acknowledgedOrders.length + paidOrders.length))) * 100) || 100 : 0}%

); }