"use client"; import { type WholesaleOrder } from "@/actions/wholesale"; type Props = { order: WholesaleOrder; onClose: () => void; onFulfill: (orderId: string) => void; onRecordDeposit: (orderId: string) => void; fulfilling: string | null; }; function StatusBadge({ status }: { status: string }) { const map: Record = { pending: "bg-yellow-100 text-yellow-700", awaiting_deposit: "bg-purple-100 text-purple-700", confirmed: "bg-blue-100 text-blue-700", fulfilled: "bg-green-100 text-green-700", cancelled: "bg-red-100 text-red-700", }; return ( {status.replace(/_/g, " ")} ); } export default function OrderDetailsModal({ order, onClose, onFulfill, onRecordDeposit, fulfilling }: Props) { const hasPhone = Boolean(order.customer_phone); return (
e.stopPropagation()}> {/* Header */}

Order Details

{order.invoice_number ?? order.id.slice(0, 8)}

{/* Customer + pickup meta */}

Customer

{order.company_name}

{order.contact_name ?? ""}

{order.customer_email}

{hasPhone && ( {order.customer_phone} )}

Pickup Date

{order.anticipated_pickup_date ?? "—"}

Status

Payment

{order.payment_status === "paid" ? "Paid" : `$${Number(order.balance_due).toFixed(2)} balance due`}
{/* Line items */}

Items

{order.items && order.items.length > 0 ? order.items.map((item, i) => ( )) : ( )}
Product Qty Unit Price Total
{item.product_name} {item.quantity} ${Number(item.unit_price).toFixed(2)} ${Number(item.line_total).toFixed(2)}
No items
Subtotal ${Number(order.subtotal).toFixed(2)}
Deposit Paid ${Number(order.deposit_paid).toFixed(2)}
Balance Due ${Number(order.balance_due).toFixed(2)}
{/* Timestamps */}

Created

{new Date(order.created_at).toLocaleString()}

{order.fulfilled_at && (

Fulfilled

{new Date(order.fulfilled_at).toLocaleString()}

)}
{/* Actions */}
{order.fulfillment_status !== "fulfilled" && ( )} {Number(order.balance_due) > 0 && order.fulfillment_status !== "fulfilled" && ( )} Download Invoice
); }