From 6d3570909acb4fed77696ab765046b89818f4bb6 Mon Sep 17 00:00:00 2001 From: derrick Date: Fri, 2 Oct 2026 16:49:25 +0900 Subject: [PATCH] update:item quantity change conditional --- apps/api/src/orders/order-status.ts | 2 +- apps/web/src/orders/order-page.tsx | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/apps/api/src/orders/order-status.ts b/apps/api/src/orders/order-status.ts index 51ae089..2272249 100644 --- a/apps/api/src/orders/order-status.ts +++ b/apps/api/src/orders/order-status.ts @@ -1,7 +1,7 @@ import type { OrderStatus } from "@orderops/shared/order-status"; export function canEditOrderItems(status: OrderStatus) { - return status === "pending" || status === "processing"; + return status === "pending"; } export function canEditShippingAddress(status: OrderStatus) { diff --git a/apps/web/src/orders/order-page.tsx b/apps/web/src/orders/order-page.tsx index c0aa212..015681c 100644 --- a/apps/web/src/orders/order-page.tsx +++ b/apps/web/src/orders/order-page.tsx @@ -72,6 +72,19 @@ export function OrderPage() { } } + async function handleUpdateQuantity(itemId: string, quantity: number) { + if (!order) { + return; + } + + if (order.status !== "pending") { + setToast({ message: "Order items cannot be changed for this order status.", variant: "error" }); + return; + } + + await runAction(() => updateOrderItemQuantity(order.id, itemId, quantity), "Quantity saved."); + } + return (
@@ -84,7 +97,7 @@ export function OrderPage() { runAction(() => updateOrderItemQuantity(order.id, itemId, quantity), "Quantity saved.")} + onUpdateQuantity={handleUpdateQuantity} onSaveAddress={(address: Address) => runAction(() => updateShippingAddress(order.id, address), "Shipping address saved.")} onSaveNotes={(notes) => runAction(() => updateOrderNotes(order.id, notes), "Notes saved.")} onCancel={() => runAction(() => cancelOrder(order.id), "Order cancelled.")} -- 2.54.0