'use client'; import { motion } from 'framer-motion'; import { Package, DollarSign, Leaf, TrendingUp } from 'lucide-react'; interface OrderStats { totalOrders: number; totalRevenue: number; totalCO2Offset: number; fulfillmentRate: number; } interface OrderStatsCardsProps { stats: OrderStats | null; isLoading?: boolean; } export function OrderStatsCards({ stats, isLoading = false }: OrderStatsCardsProps) { const statCards = stats ? [ { title: 'Total Orders', value: stats.totalOrders.toLocaleString(), icon: , gradient: 'bg-gradient-to-br from-royal-purple to-purple-600', }, { title: 'Total Revenue', value: `$${(stats.totalRevenue / 100).toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2, })}`, icon: , gradient: 'bg-gradient-to-br from-muted-gold to-orange-600', }, { title: 'Total CO₂ Offset', value: `${(typeof stats.totalCO2Offset === 'number' ? stats.totalCO2Offset : parseFloat(stats.totalCO2Offset || '0')).toFixed(2)} tons`, icon: , gradient: 'bg-gradient-to-br from-sea-green to-green-600', }, { title: 'Fulfillment Rate', value: `${(typeof stats.fulfillmentRate === 'number' ? stats.fulfillmentRate : parseFloat(stats.fulfillmentRate || '0')).toFixed(1)}%`, icon: , gradient: 'bg-gradient-to-br from-maritime-teal to-teal-600', }, ] : []; if (isLoading) { return (
{[...Array(4)].map((_, index) => (
))}
); } return (
{statCards.map((stat, index) => (
{stat.icon}

{stat.title}

{stat.value}

))}
); }