import React, { useState } from 'react'; import { useMockStore } from '../../data/mockStore'; import { useAuth } from '../../context/AuthContext'; import { SpotlightCard } from '../../components/SpotlightCard'; import { Package, FileText, Filter, Search, ChevronRight, CheckCircle, Clock, Truck } from 'lucide-react'; import OrderDetailsModal from '../../components/vendor/OrderDetailsModal'; const VendorOrders = () => { const { user } = useAuth(); const { projects, orders } = useMockStore(); const [filter, setFilter] = useState('all'); const [selectedOrder, setSelectedOrder] = useState(null); const [isOrderModalOpen, setIsOrderModalOpen] = useState(false); // Mock ID logic const vendorId = user.id === 'ven_001' ? 'v3' : 'v1'; // Get vendor orders from MOCK_ORDERS const vendorOrders = orders.filter(o => o.vendorId === vendorId); const filteredOrders = filter === 'all' ? vendorOrders : vendorOrders.filter(o => o.status === filter); const handleOrderClick = (order) => { setSelectedOrder(order); setIsOrderModalOpen(true); }; const getStatusColor = (status) => { switch (status) { case 'delivered': return 'bg-emerald-100 text-emerald-700 dark:bg-emerald-500/20 dark:text-emerald-400'; case 'shipped': return 'bg-blue-100 text-blue-700 dark:bg-blue-500/20 dark:text-blue-400'; default: return 'bg-zinc-100 text-zinc-700 dark:bg-white/10 dark:text-zinc-400'; } }; return (
Manage purchase orders and deliveries.
{order.id}
No orders found matching this filter.
| Order ID | Project / Location | Items / Service | Due Date | Amount | Status | Actions |
|---|---|---|---|---|---|---|
| {order.id} | {order.projectAddress || order.project} |
|
{order.dueDate} | ${(order.total || order.amount).toLocaleString()} |
{order.status === 'delivered' && |
No orders found matching this filter.