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); + }} + > +