From c4f439470fabb817c22fb2bff5d6eece8a879739 Mon Sep 17 00:00:00 2001 From: dwindown Date: Mon, 27 Apr 2026 13:10:59 +0700 Subject: [PATCH] fix: handle null products in member dashboard and access pages Filter out user_access entries with null products before mapping to prevent "Cannot read properties of null (reading 'id')" errors. This occurs when user_access references deleted products or when Supabase queries return incomplete data due to service issues. Co-Authored-By: Claude Opus 4.7 --- src/pages/member/MemberAccess.tsx | 2 +- src/pages/member/MemberDashboard.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/member/MemberAccess.tsx b/src/pages/member/MemberAccess.tsx index f21d0b6..e8ab7c3 100644 --- a/src/pages/member/MemberAccess.tsx +++ b/src/pages/member/MemberAccess.tsx @@ -83,7 +83,7 @@ export default function MemberAccess() { ]); // Combine access from user_access and paid orders - const directAccess = (accessRes.data as unknown as UserAccess[]) || []; + const directAccess = ((accessRes.data as unknown as UserAccess[]) || []).filter((a) => a.product); const paidProductAccess: UserAccess[] = []; if (paidOrdersRes.data) { diff --git a/src/pages/member/MemberDashboard.tsx b/src/pages/member/MemberDashboard.tsx index 8910983..f52530f 100644 --- a/src/pages/member/MemberDashboard.tsx +++ b/src/pages/member/MemberDashboard.tsx @@ -154,7 +154,7 @@ export default function MemberDashboard() { ]); // Combine access from user_access and paid orders - const directAccess = (accessRes.data as unknown as UserAccess[]) || []; + const directAccess = ((accessRes.data as unknown as UserAccess[]) || []).filter((a) => a.product); const paidProductAccess: UserAccess[] = []; if (paidOrdersRes.data) {