"use client" import { useEffect, useState } from "react" import { Package, ShoppingCart, Users, TrendingUp, Loader2, ArrowUpRight, Clock, CheckCircle2, DollarSign, AlertCircle } from "lucide-react" import Link from "next/link" import { BarChart, Bar, XAxis, YAxis, Tooltip, ResponsiveContainer, Cell } from "recharts" export default function SupplierDashboardPage() { const [stats, setStats] = useState({ totalProducts: 0, activeOrders: 0, connectedVendors: 0, totalRevenue: 0, pendingConnections: 0, recentProducts: 0, averageProductPrice: 0, recentConnections: 0 }) const [loading, setLoading] = useState(true) const [error, setError] = useState("") useEffect(() => { fetchDashboardData() }, []) const fetchDashboardData = async () => { try { setLoading(true) const [profileRes, analyticsRes, ordersRes] = await Promise.all([ fetch("/api/supplier/profile").catch(() => null), fetch("/api/supplier/analytics").catch(() => null), fetch("/api/supplier/orders").catch(() => null) ]) const profileData = profileRes?.ok ? await profileRes.json().catch(() => ({})) : {} const analyticsData = analyticsRes?.ok ? await analyticsRes.json().catch(() => ({})) : {} const ordersData = ordersRes?.ok ? await ordersRes.json().catch(() => ({})) : {} setStats({ totalProducts: analyticsData?.stats?.totalProducts || 0, activeOrders: ordersData?.orders?.length || 0, connectedVendors: analyticsData?.stats?.connectedVendors || 0, totalRevenue: 0, pendingConnections: analyticsData?.stats?.pendingConnections || 0, recentProducts: analyticsData?.stats?.recentProducts || 0, averageProductPrice: analyticsData?.stats?.averageProductPrice || 0, recentConnections: analyticsData?.stats?.recentConnections || 0 }) setError("") } catch { setError("Failed to load dashboard data") } finally { setLoading(false) } } return (
Welcome to your supplier portal
Total Products
Active Orders
Connected Vendors
Total Revenue
Pending Connections
Avg. Product Price
Common tasks and shortcuts
{stats.pendingConnections} pending connection{stats.pendingConnections !== 1 ? "s" : ""}
Review now →{stats.recentProducts} new product{stats.recentProducts !== 1 ? "s" : ""} added
View products →{stats.recentConnections} new connection{stats.recentConnections !== 1 ? "s" : ""}
View vendors →No recent activity
)}Key metrics at a glance.
Products, connected vendors, pending connections, and new activity (last 7 days)