fix(dashboard): handle null responses in widget data fetching

This commit is contained in:
Kalana B. Thilakarathna
2026-08-29 20:36:01 +05:30
parent 29f181d5e1
commit cd5acbab76
6 changed files with 10 additions and 10 deletions
@@ -15,8 +15,8 @@ export function ActiveRidesWidget() {
setLoading(true) setLoading(true)
try { try {
const res = await rides.list({ status: 'Active', pageSize: 5, page: 1 }) const res = await rides.list({ status: 'Active', pageSize: 5, page: 1 })
setData(res.items) setData(res.items ?? [])
setTotal(res.total) setTotal(res.total ?? 0)
} catch { } catch {
// silent — widget shows empty state // silent — widget shows empty state
} finally { } finally {
@@ -31,8 +31,8 @@ export function LoadingSheetsWidget() {
setLoading(true) setLoading(true)
try { try {
const res = await loadingSheets.list({ status: 'Pending', pageSize: 5, page: 1 }) const res = await loadingSheets.list({ status: 'Pending', pageSize: 5, page: 1 })
setData(res.items) setData(res.items ?? [])
setTotal(res.total) setTotal(res.total ?? 0)
} catch { } catch {
// silent // silent
} finally { } finally {
@@ -14,8 +14,8 @@ export function PendingPOsWidget() {
setLoading(true) setLoading(true)
try { try {
const res = await purchaseOrders.list({ status: 'Issued', pageSize: 5, page: 1 }) const res = await purchaseOrders.list({ status: 'Issued', pageSize: 5, page: 1 })
setData(res.items) setData(res.items ?? [])
setTotal(res.total) setTotal(res.total ?? 0)
} catch { } catch {
// silent // silent
} finally { } finally {
@@ -21,7 +21,7 @@ export function RecentOrdersWidget() {
setLoading(true) setLoading(true)
try { try {
const res = await orders.list({ pageSize: 6, page: 1 }) const res = await orders.list({ pageSize: 6, page: 1 })
setData(res.items) setData(res.items ?? [])
} catch { } catch {
// silent // silent
} finally { } finally {
@@ -16,7 +16,7 @@ export function StockAlertsWidget() {
setLoading(true) setLoading(true)
try { try {
const res = await stock.balances({ pageSize: 100, page: 1 }) const res = await stock.balances({ pageSize: 100, page: 1 })
const low = res.items.filter(b => b.quantity <= LOW_STOCK_THRESHOLD) const low = (res.items ?? []).filter(b => b.quantity <= LOW_STOCK_THRESHOLD)
setAlerts(low) setAlerts(low)
} catch { } catch {
// silent // silent
@@ -15,8 +15,8 @@ export function TodaySalesWidget() {
const today = new Date().toISOString().split('T')[0] const today = new Date().toISOString().split('T')[0]
try { try {
const res = await sales.list({ from: today, to: today, pageSize: 50, page: 1 }) const res = await sales.list({ from: today, to: today, pageSize: 50, page: 1 })
setItems(res.items) setItems(res.items ?? [])
setTotal(res.total) setTotal(res.total ?? 0)
} catch { } catch {
// silent // silent
} finally { } finally {