From 64b57b8680290ebc8eeefac64d35491536862706 Mon Sep 17 00:00:00 2001 From: Andymick Date: Sat, 18 Jul 2026 10:12:51 +0100 Subject: [PATCH] Add 'Personalised' badge to orders with custom designs --- src/app/admin/orders/page.tsx | 53 ++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/src/app/admin/orders/page.tsx b/src/app/admin/orders/page.tsx index f05846c..8094c28 100644 --- a/src/app/admin/orders/page.tsx +++ b/src/app/admin/orders/page.tsx @@ -52,32 +52,41 @@ export default async function OrdersPage({ searchParams }: { searchParams: { arc

{showArchived ? 'Nothing archived yet.' : 'No orders yet.'}

) : (
- {orders.map((order) => ( -
- -
-

{order.email ?? 'No email yet'}

-

- {order.items.length} item{order.items.length === 1 ? '' : 's'} ·{' '} - {new Date(order.createdAt).toLocaleString(undefined, { - dateStyle: 'medium', - timeStyle: 'short', - })} -

-
+ {orders.map((order) => { + const hasPersonalised = order.items.some((item) => { + const design = JSON.parse(item.designJson) as { front: unknown[]; back: unknown[] }; + return design.front.length > 0 || design.back.length > 0; + }); + return ( +
+ +
+

{order.email ?? 'No email yet'}

+

+ {order.items.length} item{order.items.length === 1 ? '' : 's'} ·{' '} + {new Date(order.createdAt).toLocaleString(undefined, { + dateStyle: 'medium', + timeStyle: 'short', + })} +

+
+ + {hasPersonalised && ( + Personalised + )} {formatPrice(order.total)} {order.status} - -
- - -
-
- ))} +
+ + +
+
+ ); + })}
)}