'use client'; import { DashboardLayout } from '@/components/layout/dashboard-layout'; import { StatCard } from '@/components/ui/stat-card'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Badge } from '@/components/ui/badge'; import { Button } from '@/components/ui/button'; import { DollarSign, ShoppingBag, Users, TrendingUp, ArrowUpRight, Clock, MapPin, Truck, Eye, } from 'lucide-react'; import { demoOrders, demoOrderItems, generateDailyRevenue, generatePopularItems, generateOrdersByType } from '@/lib/demo-data'; import { formatCurrency, formatRelativeTime, getOrderStatusColor, getOrderTypeLabel, cn } from '@/lib/utils'; import Link from 'next/link'; const revenueData = generateDailyRevenue(7); const popularItems = generatePopularItems().slice(0, 5); const ordersByType = generateOrdersByType(); function MiniChart() { const data = generateDailyRevenue(14); const max = Math.max(...data.map((d) => d.revenue)); return (
{data.map((d, i) => (
))}
); } export default function OverviewPage() { const totalRevenue = revenueData.reduce((s, d) => s + d.revenue, 0); const totalOrders = revenueData.reduce((s, d) => s + d.orders, 0); return (
{/* Header */}

Dashboard

Welcome back, Alex. Here's what's happening today.

{/* Stats Grid */}
{/* Revenue Chart */} Revenue Overview
{formatCurrency(totalRevenue)} 12.5%
{revenueData.map((d, i) => ( {new Date(d.date).toLocaleDateString('en', { weekday: 'short' })} ))}
{/* Orders by Type */} Orders by Type {ordersByType.map((item) => (
{item.type === 'Dine In' && } {item.type === 'Takeaway' && } {item.type === 'Delivery' && } {item.type}
{item.count} ({item.percentage}%)
))}
{/* Recent Orders */} Recent Orders
{demoOrders.slice(0, 5).map((order) => (
#{order.id.split('-')[1]}

{order.customer_name}

{getOrderTypeLabel(order.order_type)} {order.table_number && • Table {order.table_number}} {formatRelativeTime(order.created_at)}

{formatCurrency(order.total)}

{order.status}
))}
{/* Popular Items */} Popular Items
{popularItems.map((item, index) => (
{index + 1}

{item.name}

{item.orders} orders

{formatCurrency(item.revenue)}

))}
); }