fix: handle plans list API returning array format in usePlanData hook
The /purchaser/plans API returns data as a plain array, but usePlanData
destructured res.data expecting {plans, factories, plan_factories, operator_names}.
This caused the PlanOverview page to render nothing despite receiving data.
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
c641831251
commit
091fc24d90
@ -79,7 +79,15 @@ export function usePlanData({ companyId, pageSize = PAGINATION_CONFIG.defaultPag
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
const res = await purchaserApi.listPlans({ page, page_size: pageSize });
|
const res = await purchaserApi.listPlans({ page, page_size: pageSize });
|
||||||
const { plans: planDetails, factories, plan_factories, operator_names } = res.data;
|
const rawData = res.data;
|
||||||
|
|
||||||
|
// API returns plain array when backend doesn't wrap in object
|
||||||
|
const planDetails: PlanDetail[] = Array.isArray(rawData)
|
||||||
|
? rawData
|
||||||
|
: (rawData?.plans || []);
|
||||||
|
const factories: Company[] = Array.isArray(rawData) ? [] : (rawData?.factories || []);
|
||||||
|
const plan_factories: PlanFactory[] = Array.isArray(rawData) ? [] : (rawData?.plan_factories || []);
|
||||||
|
const operator_names: Record<string, string> = Array.isArray(rawData) ? {} : (rawData?.operator_names || {});
|
||||||
|
|
||||||
const plansWithSteps = planDetails.map(mapPlanDetail);
|
const plansWithSteps = planDetails.map(mapPlanDetail);
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user