diff --git a/src/hooks/useDashboardData.ts b/src/hooks/useDashboardData.ts index ce25eb9..5661be2 100644 --- a/src/hooks/useDashboardData.ts +++ b/src/hooks/useDashboardData.ts @@ -47,7 +47,8 @@ export function useDashboardData({ purchaserApi.dashboardStats(), purchaserApi.listPlans(), ]); - const plans = (plansRes.data?.plans || []) as unknown as T[]; + const rawData = plansRes.data; + const plans = (Array.isArray(rawData) ? rawData : (rawData?.plans || [])) as unknown as T[]; const stats: DashboardStats = { all: statsData.total_plans ?? 0, producing: statsData.producing_plans ?? 0, diff --git a/src/pages/purchaser/Dashboard.tsx b/src/pages/purchaser/Dashboard.tsx index 1d92c3f..d331076 100644 --- a/src/pages/purchaser/Dashboard.tsx +++ b/src/pages/purchaser/Dashboard.tsx @@ -89,7 +89,9 @@ export function PurchaserDashboard() { const fetchPlans = async () => { try { const res = await purchaserApi.listPlans(); - const allPlans = res.data?.plans || []; + // API may return {plans: [...]} object or plain array + const rawData = res.data; + const allPlans = Array.isArray(rawData) ? rawData : (rawData?.plans || []); const filteredPlans = allPlans.filter(p => !p.process_steps?.some(s => s.status === STEP_STATUS.REJECTED)