import { useState, useEffect } from 'react' import { useAuth } from '@/context/AuthContext' import { Header } from '@/components/Header' import { Package, MapPin, Clock, CheckCircle, AlertCircle } from 'lucide-react' interface OrderItem { id: string product_name: string quantity: number unit_price: number } interface Address { street: string number: string city: string state: string zip: string } interface Order { id: string number: string status: string seller: { id: string name: string company_name: string } items: OrderItem[] shipping_address: Address total_amount: number created_at: string ready_for_delivery_at?: string } export function DeliveryDashboardPage() { const { user } = useAuth() const [orders, setOrders] = useState([]) const [activeTab, setActiveTab] = useState<'pending' | 'history'>('pending') const [loading, setLoading] = useState(true) const [error, setError] = useState(null) const [expandedOrder, setExpandedOrder] = useState(null) useEffect(() => { setLoading(true) setTimeout(() => { setOrders([ { id: '1', number: 'PED-001', status: 'ready_for_delivery', seller: { id: 'seller-1', name: 'Farmácia Central', company_name: 'Farmácia Central LTDA', }, items: [ { id: 'item-1', product_name: 'Dipirona 500mg', quantity: 5, unit_price: 15.90 }, { id: 'item-2', product_name: 'Vitamina C 1000mg', quantity: 3, unit_price: 28.50 }, ], shipping_address: { street: 'Rua das Flores', number: '123', city: 'São Paulo', state: 'SP', zip: '01234-567', }, total_amount: 165.20, created_at: '2024-02-25T10:30:00Z', ready_for_delivery_at: '2024-02-26T08:00:00Z', }, { id: '2', number: 'PED-002', status: 'ready_for_delivery', seller: { id: 'seller-2', name: 'Distribuidora MedPharma', company_name: 'MedPharma Distribuidora LTDA', }, items: [ { id: 'item-3', product_name: 'Ibuprofeno 400mg', quantity: 10, unit_price: 12.30 }, { id: 'item-4', product_name: 'Paracetamol 750mg', quantity: 8, unit_price: 8.90 }, ], shipping_address: { street: 'Av. Paulista', number: '1000', city: 'São Paulo', state: 'SP', zip: '01311-100', }, total_amount: 194.40, created_at: '2024-02-25T14:20:00Z', ready_for_delivery_at: '2024-02-26T09:00:00Z', }, ]) setLoading(false) }, 800) }, []) const handleAcceptDelivery = (orderId: string) => { setOrders(orders.map(order => order.id === orderId ? { ...order, status: 'in_transit' } : order )) } const handleStartDelivery = (orderId: string) => { setOrders(orders.map(order => order.id === orderId ? { ...order, status: 'shipped' } : order )) } const handleCompleteDelivery = (orderId: string) => { setOrders(orders.map(order => order.id === orderId ? { ...order, status: 'delivered' } : order )) } const pendingOrders = orders.filter(o => ['ready_for_delivery', 'in_transit'].includes(o.status)) const completedOrders = orders.filter(o => ['delivered', 'completed'].includes(o.status)) const displayOrders = activeTab === 'pending' ? pendingOrders : completedOrders return (
{/* Page Title */}

Minhas Entregas

Olá, {user?.name} — gerencie suas entregas pendentes e histórico

{/* Tabs */}
{/* Loading */} {loading && (
)} {/* Error */} {error && (

Erro ao carregar entregas

{error}

)} {/* Empty State */} {!loading && displayOrders.length === 0 && (

{activeTab === 'pending' ? 'Nenhuma entrega disponível' : 'Nenhuma entrega concluída'}

{activeTab === 'pending' ? 'Você será notificado quando novas entregas estiverem prontas' : 'Suas entregas concluídas aparecerão aqui'}

)} {/* Orders Grid */} {!loading && displayOrders.length > 0 && (
{displayOrders.map((order) => (
{/* Order Header */}

{order.number}

{order.seller.company_name}

R$ {order.total_amount.toFixed(2)}
{/* Order Body */}
{/* Status Badge */}
{order.status === 'ready_for_delivery' && ( Pronto para Entrega )} {order.status === 'in_transit' && ( Saiu para Entrega )} {order.status === 'delivered' && ( Entregue )}
{/* Address */}

Endereço de Entrega

{order.shipping_address.street}, {order.shipping_address.number}

{order.shipping_address.city}, {order.shipping_address.state} — {order.shipping_address.zip}

{order.items.length} {order.items.length === 1 ? 'item' : 'itens'}

{/* Expandable Items */}
{expandedOrder === order.id && (
{order.items.map((item) => (

{item.product_name}

Qtd: {item.quantity}

R$ {(item.unit_price * item.quantity).toFixed(2)}

))}
)}
{/* Action Buttons */} {activeTab === 'pending' && (
{order.status === 'ready_for_delivery' && ( <> )} {order.status === 'in_transit' && ( <> )}
)}
))}
)}
) }