diff --git a/.claude/settings.local.json b/.claude/settings.local.json index a6fb061..482f7f8 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -66,7 +66,8 @@ "Bash(git commit -m 'Fix price display issues and layout in design review page *)", "Bash(git commit -m 'Fix: Calculate effectivePrice in design API endpoints *)", "Bash(git commit -m 'Fix: Handle designJson as string in checkout API *)", - "Bash(git commit -m 'Fix: Use personalised price in design approval cart add *)" + "Bash(git commit -m 'Fix: Use personalised price in design approval cart add *)", + "Bash(git commit -m 'Fix: Safely access designJson properties in admin orders page *)" ] } } diff --git a/src/app/admin/orders/page.tsx b/src/app/admin/orders/page.tsx index b6f2a77..ff0d2e9 100644 --- a/src/app/admin/orders/page.tsx +++ b/src/app/admin/orders/page.tsx @@ -95,8 +95,12 @@ export default async function OrdersPage({ searchParams }: { searchParams: { arc
{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; + try { + const design = JSON.parse(item.designJson) as { front: unknown[]; back: unknown[] }; + return (design.front?.length ?? 0) > 0 || (design.back?.length ?? 0) > 0; + } catch { + return false; + } }); return (