Fix: Safely parse designJson in admin order detail page
The order detail page was trying to access design.front.length and design.back.length without safely checking if they exist. Now wraps the parse in try-catch and uses optional chaining to handle errors gracefully.
This commit is contained in:
@@ -78,9 +78,15 @@ export default async function OrderDetailPage({ params }: { params: { id: string
|
||||
|
||||
<div className="mt-10 divide-y divide-line border-t border-line">
|
||||
{order.items.map((item) => {
|
||||
const design = JSON.parse(item.designJson) as { front: unknown[]; back: unknown[] };
|
||||
const hasFrontDesign = design.front.length > 0;
|
||||
const hasBackDesign = design.back.length > 0;
|
||||
let hasFrontDesign = false;
|
||||
let hasBackDesign = false;
|
||||
try {
|
||||
const design = JSON.parse(item.designJson) as { front: unknown[]; back: unknown[] };
|
||||
hasFrontDesign = (design.front?.length ?? 0) > 0;
|
||||
hasBackDesign = (design.back?.length ?? 0) > 0;
|
||||
} catch {
|
||||
// If parsing fails, assume no custom design
|
||||
}
|
||||
const frontPlacement = item.placementPreviewUrl || item.designPreviewUrl;
|
||||
return (
|
||||
<div key={item.id} className="py-8">
|
||||
|
||||
Reference in New Issue
Block a user