From d3deb58ad6da1bffebb8ba48e768d40d473c0f2f Mon Sep 17 00:00:00 2001 From: NotII <46204250+NotII@users.noreply.github.com> Date: Fri, 10 Oct 2025 14:01:53 +0100 Subject: [PATCH] Remove shipping dialog from order details page Replaces the shipping dialog with an inline tracking number input for marking orders as shipped. Simplifies the user flow and removes related state and dialog components. --- app/dashboard/orders/[id]/page.tsx | 71 ++++++------------------------ public/git-info.json | 4 +- 2 files changed, 16 insertions(+), 59 deletions(-) diff --git a/app/dashboard/orders/[id]/page.tsx b/app/dashboard/orders/[id]/page.tsx index f72aacd..2294f2e 100644 --- a/app/dashboard/orders/[id]/page.tsx +++ b/app/dashboard/orders/[id]/page.tsx @@ -158,8 +158,7 @@ export default function OrderDetailsPage() { const [isAcknowledging, setIsAcknowledging] = useState(false); const [isCancelling, setIsCancelling] = useState(false); const [refreshTrigger, setRefreshTrigger] = useState(0); - const [showShippingDialog, setShowShippingDialog] = useState(false); - const [shippingTrackingNumber, setShippingTrackingNumber] = useState(""); + // shipping dialog removed; use inline tracking input instead const router = useRouter(); const params = useParams(); @@ -264,24 +263,24 @@ export default function OrderDetailsPage() { } }; - const handleMarkAsShipped = async (trackingNumber?: string) => { + const handleMarkAsShipped = async () => { try { setIsMarkingShipped(true); - - // Use clientFetch which handles API URL and auth token automatically + + // 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) 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); - - // If tracking number is provided, add it - if (trackingNumber && trackingNumber.trim()) { - await handleAddTrackingNumber(trackingNumber.trim()); - } - toast.success("Order marked as shipped successfully!"); } else { throw new Error(response.error || "Failed to mark order as shipped"); @@ -325,16 +324,7 @@ export default function OrderDetailsPage() { } }; - const handleShippingDialogConfirm = async () => { - await handleMarkAsShipped(shippingTrackingNumber); - setShowShippingDialog(false); - setShippingTrackingNumber(""); - }; - - const handleShippingDialogCancel = () => { - setShowShippingDialog(false); - setShippingTrackingNumber(""); - }; + // shipping dialog removed const handleMarkAsAcknowledged = async () => { try { @@ -972,7 +962,7 @@ export default function OrderDetailsPage() { {order?.status === "acknowledged" && (