From 8297a2dd9dfa2ba88e4c98f08619f89723612886 Mon Sep 17 00:00:00 2001 From: Jeighdy Tanamal Date: Thu, 1 Oct 2026 22:57:00 -0700 Subject: [PATCH] Restrict order quantity edits to pending orders --- apps/api/src/orders/order-status.ts | 4 +--- apps/web/src/orders/order-items-panel.tsx | 12 +++++++++++- packages/shared/src/order-status.ts | 4 ++++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/apps/api/src/orders/order-status.ts b/apps/api/src/orders/order-status.ts index 51ae089..ec8702a 100644 --- a/apps/api/src/orders/order-status.ts +++ b/apps/api/src/orders/order-status.ts @@ -1,8 +1,6 @@ import type { OrderStatus } from "@orderops/shared/order-status"; -export function canEditOrderItems(status: OrderStatus) { - return status === "pending" || status === "processing"; -} +export { canEditOrderItems } from "@orderops/shared/order-status"; export function canEditShippingAddress(status: OrderStatus) { return status === "pending" || status === "processing"; diff --git a/apps/web/src/orders/order-items-panel.tsx b/apps/web/src/orders/order-items-panel.tsx index fb2a99b..9eda3e4 100644 --- a/apps/web/src/orders/order-items-panel.tsx +++ b/apps/web/src/orders/order-items-panel.tsx @@ -1,5 +1,6 @@ import { useState } from "react"; import type { OrderDetail } from "@orderops/shared"; +import { canEditOrderItems } from "@orderops/shared/order-status"; interface OrderItemsPanelProps { order: OrderDetail; @@ -39,9 +40,14 @@ function QuantityForm({ } export function OrderItemsPanel({ order, onUpdateQuantity }: OrderItemsPanelProps) { + const canEditQuantity = canEditOrderItems(order.status); + return (

Items

+ {!canEditQuantity ? ( +

Item quantities can only be changed while an order is pending.

+ ) : null}
{order.items.map((item) => (
@@ -51,7 +57,11 @@ export function OrderItemsPanel({ order, onUpdateQuantity }: OrderItemsPanelProp
{item.sku}
Available: {item.availableQuantity}
- + {canEditQuantity ? ( + + ) : ( +
Quantity: {item.quantity}
+ )}
))} diff --git a/packages/shared/src/order-status.ts b/packages/shared/src/order-status.ts index f64ca91..0c8d6ea 100644 --- a/packages/shared/src/order-status.ts +++ b/packages/shared/src/order-status.ts @@ -1,3 +1,7 @@ export const orderStatuses = ["pending", "processing", "shipped", "cancelled", "refunded"] as const; export type OrderStatus = (typeof orderStatuses)[number]; + +export function canEditOrderItems(status: OrderStatus) { + return status === "pending"; +} -- 2.54.0