From 698a49ae829d94fcf90ef6009fbcc67b28681921 Mon Sep 17 00:00:00 2001 From: derrick Date: Thu, 24 Sep 2026 22:35:55 +0900 Subject: [PATCH] add:order notes ui component --- apps/web/src/orders/order-detail-page.tsx | 4 +++ apps/web/src/orders/order-notes.tsx | 37 +++++++++++++++++++++++ apps/web/src/orders/order-page.tsx | 3 +- 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 apps/web/src/orders/order-notes.tsx diff --git a/apps/web/src/orders/order-detail-page.tsx b/apps/web/src/orders/order-detail-page.tsx index 7387ded..c6c5d8d 100644 --- a/apps/web/src/orders/order-detail-page.tsx +++ b/apps/web/src/orders/order-detail-page.tsx @@ -1,6 +1,7 @@ import type { Address, AuditEvent, OrderDetail } from "@orderops/shared"; import { AuditTimeline } from "./audit-timeline"; import { OrderItemsPanel } from "./order-items-panel"; +import { OrderNotes } from "./order-notes"; import { OrderSummaryPanel } from "./order-summary"; import { ShippingAddressForm } from "./shipping-address-form"; @@ -9,6 +10,7 @@ interface OrderDetailPageProps { auditEvents: AuditEvent[]; onUpdateQuantity: (itemId: string, quantity: number) => Promise; onSaveAddress: (address: Address) => Promise; + onSaveNotes: (notes: string) => Promise; onCancel: () => Promise; } @@ -17,6 +19,7 @@ export function OrderDetailPage({ auditEvents, onUpdateQuantity, onSaveAddress, + onSaveNotes, onCancel }: OrderDetailPageProps) { return ( @@ -29,6 +32,7 @@ export function OrderDetailPage({ + ); diff --git a/apps/web/src/orders/order-notes.tsx b/apps/web/src/orders/order-notes.tsx new file mode 100644 index 0000000..546fcf5 --- /dev/null +++ b/apps/web/src/orders/order-notes.tsx @@ -0,0 +1,37 @@ +import { useState } from "react"; +import type { OrderDetail } from "@orderops/shared"; + +interface OrderNotesProps { + order: OrderDetail; + onSave: (notes: string) => Promise; +} + +export function OrderNotes({ order, onSave }: OrderNotesProps) { + const [notes, setNotes] = useState(order.notes ?? ""); + + return ( +
+

Internal notes

+
{ + event.preventDefault(); + await onSave(notes); + }} + > +