From b24de9ac114feaf44211bda8fb59adb2fed92179 Mon Sep 17 00:00:00 2001 From: Chever John Date: Tue, 30 Jun 2026 22:11:09 +0800 Subject: [PATCH] fix: handle null response from records API to prevent product list crash When products have no inventory records, the backend returns {"code":0,"data":null}. getRecords() resolved with null, causing records.filter() to throw TypeError, which crashed the entire fetchData() and left the product list empty. Co-Authored-By: Claude --- src/hooks/useInventoryData.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/hooks/useInventoryData.ts b/src/hooks/useInventoryData.ts index 253fdb2..2301454 100644 --- a/src/hooks/useInventoryData.ts +++ b/src/hooks/useInventoryData.ts @@ -63,17 +63,17 @@ export function useInventoryData({ companyId, activeType }: UseInventoryDataOpti try { const productsRes = await purchaserApi.listProducts(); - const products: Product[] = productsRes.data; + const products: Product[] = productsRes.data || []; const recordResults = await Promise.all( products.map(p => - purchaserApi.getRecords(p.id).catch(() => [] as ProductInRecord[]) + purchaserApi.getRecords(p.id).then(r => r || []).catch(() => [] as ProductInRecord[]) ) ); const allBatches: FabricBatch[] = []; const updatedProducts: ProductWithInventory[] = products.map((p, i) => { - const records = recordResults[i]; + const records = recordResults[i] || []; const inRecords = records.filter(r => r.record_type !== 'out'); const outRecords = records.filter(r => r.record_type === 'out');