diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 0dafd3b..51f6a06 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -69,7 +69,9 @@ "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 *)", "Bash(git commit -m 'Fix: Show personalised price on design review page *)", - "Bash(git commit -m 'Fix: Safely parse designJson in admin order detail page *)" + "Bash(git commit -m 'Fix: Safely parse designJson in admin order detail page *)", + "Bash(xargs grep -l \"design-spec\")", + "Bash(git commit -m 'Improve: Design specification sheet now shows previews and info *)" ] } } diff --git a/src/app/api/orders/[id]/design-spec/route.ts b/src/app/api/orders/[id]/design-spec/route.ts index dd03470..bed27ce 100644 --- a/src/app/api/orders/[id]/design-spec/route.ts +++ b/src/app/api/orders/[id]/design-spec/route.ts @@ -18,7 +18,13 @@ export async function GET(req: Request, { params }: { params: { id: string } }) return NextResponse.json({ error: 'No items in order' }, { status: 400 }); } - const design = JSON.parse(item.designJson) as { front: any[]; back: any[] }; + let design: { front: any[]; back: any[] } = { front: [], back: [] }; + try { + design = JSON.parse(item.designJson) as { front: any[]; back: any[] }; + } catch (e) { + console.error('Error parsing designJson:', e); + // Continue with empty design + } const product = await prisma.product.findUnique({ where: { id: item.productId }, }); @@ -62,15 +68,25 @@ export async function GET(req: Request, { params }: { params: { id: string } }) }; const generateDesignSection = (designElements: any[], side: 'Front' | 'Back', placement: string | null, designPreview: string | null) => { - if (!designElements || designElements.length === 0) return ''; + // Always show the section if we have preview images, even without elements + if ((!designElements || designElements.length === 0) && !placement && !designPreview) return ''; return `
Design preview (transparent background)
+No individual design elements to measure.
`}