fix(dashboard): handle null responses in widget data fetching
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user