From 50c5b580a7c3f267173306dba81a36c66ff41aee Mon Sep 17 00:00:00 2001 From: Noah Seethor Date: Thu, 11 Dec 2025 21:57:11 +0700 Subject: [PATCH 1/3] Make approving/rejecting orders only update the order itself --- src/app/pharmacy/orders/page.tsx | 34 +++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/app/pharmacy/orders/page.tsx b/src/app/pharmacy/orders/page.tsx index 7dbdb95..009c209 100644 --- a/src/app/pharmacy/orders/page.tsx +++ b/src/app/pharmacy/orders/page.tsx @@ -104,6 +104,38 @@ export default function OrdersPage() { return () => clearInterval(intervalId); }, [isAutoRefreshEnabled]); + const handleRemoveNonPendingOrder = (orderId: number) => { + setOrderRowData(prev => + prev + .map(row => ({ + ...row, + data: row.data + .map(visit => ({ + ...visit, + orders: visit.orders.filter(order => order.order_id !== orderId), + })) + // Drop visits that no longer have any orders + .filter(visit => visit.orders.length > 0), + })) + // Drop patients that no longer have any visits + .filter(row => row.data.length > 0) + ); + + setFilteredOrderRowData(prev => + prev + .map(row => ({ + ...row, + data: row.data + .map(visit => ({ + ...visit, + orders: visit.orders.filter(order => order.order_id !== orderId), + })) + .filter(visit => visit.orders.length > 0), + })) + .filter(row => row.data.length > 0) + ); + }; + return (
@@ -180,7 +212,7 @@ export default function OrdersPage() { )) )} From 830f511bd62bdd2cd407d3757211ec3e05f10ed0 Mon Sep 17 00:00:00 2001 From: nathantew14 Date: Thu, 11 Dec 2025 23:23:14 +0700 Subject: [PATCH 2/3] Rename some fields for clarity --- src/app/pharmacy/orders/page.tsx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/app/pharmacy/orders/page.tsx b/src/app/pharmacy/orders/page.tsx index 009c209..7fcd78e 100644 --- a/src/app/pharmacy/orders/page.tsx +++ b/src/app/pharmacy/orders/page.tsx @@ -104,7 +104,7 @@ export default function OrdersPage() { return () => clearInterval(intervalId); }, [isAutoRefreshEnabled]); - const handleRemoveNonPendingOrder = (orderId: number) => { + const handleApproveOrRejectOrder = (orderId: number) => { setOrderRowData(prev => prev .map(row => ({ @@ -212,7 +212,7 @@ export default function OrdersPage() { )) )} @@ -226,10 +226,10 @@ export default function OrdersPage() { function OrderRow({ orderRowData: { patient, data }, - removeNonPendingOrder, + onApproveOrRejectOrder, }: { orderRowData: OrderRowData; - removeNonPendingOrder: (id: number) => void; + onApproveOrRejectOrder: (id: number) => void; }) { const onPatchError = (err: Error, medicine_name: string) => { toast.error(() => ( @@ -254,7 +254,7 @@ function OrderRow({ {/* Hacky regex workaround cuz backend send patient_id with village prefix and padded zeroes*/} @@ -328,7 +328,7 @@ function OrderRow({ onPatchError(new Error(r.error), o.medication_name); return; } - removeNonPendingOrder(o.order_id) + onApproveOrRejectOrder(o.order_id) }) }} handleCancelOrder={async () => { @@ -339,7 +339,7 @@ function OrderRow({ onPatchError(new Error(r.error), o.medication_name); return; } - removeNonPendingOrder(o.order_id) + onApproveOrRejectOrder(o.order_id) }) }} /> From ffbce58b000e87a3c829f2a46b257808a0f642a2 Mon Sep 17 00:00:00 2001 From: Noah Seethor Date: Thu, 11 Dec 2025 23:44:26 +0700 Subject: [PATCH 3/3] Add toasts --- src/app/pharmacy/orders/page.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/app/pharmacy/orders/page.tsx b/src/app/pharmacy/orders/page.tsx index 7fcd78e..cddad0f 100644 --- a/src/app/pharmacy/orders/page.tsx +++ b/src/app/pharmacy/orders/page.tsx @@ -329,6 +329,7 @@ function OrderRow({ return; } onApproveOrRejectOrder(o.order_id) + toast.success(`Order Approved`); }) }} handleCancelOrder={async () => { @@ -340,6 +341,7 @@ function OrderRow({ return; } onApproveOrRejectOrder(o.order_id) + toast.success(`Order Rejected`); }) }} />