diff --git a/app/dashboard/orders/[id]/page.tsx b/app/dashboard/orders/[id]/page.tsx index 2294f2e..4bc2979 100644 --- a/app/dashboard/orders/[id]/page.tsx +++ b/app/dashboard/orders/[id]/page.tsx @@ -266,22 +266,22 @@ export default function OrderDetailsPage() { const handleMarkAsShipped = async () => { try { setIsMarkingShipped(true); - - // If a tracking number is present in the inline box, add it first - if (trackingNumber && trackingNumber.trim()) { - await handleAddTrackingNumber(trackingNumber.trim()); - setTrackingNumber(""); - } - // Then mark as shipped (clientFetch handles API URL and auth token) + // First mark as shipped (clientFetch handles API URL and auth token) const response = await clientFetch(`/orders/${orderId}/status`, { method: "PUT", body: JSON.stringify({ status: "shipped" }), }); - + if (response && response.message === "Order status updated successfully") { setOrder((prevOrder) => prevOrder ? { ...prevOrder, status: "shipped" } : null); toast.success("Order marked as shipped successfully!"); + + // If a tracking number is present in the inline box, add it after marking as shipped + if (trackingNumber && trackingNumber.trim()) { + await handleAddTrackingNumber(trackingNumber.trim()); + setTrackingNumber(""); + } } else { throw new Error(response.error || "Failed to mark order as shipped"); }