'use client' import { useCallback, useEffect, useState } from 'react' import { purchaseOrders } from '@/lib/api/index' import type { PurchaseOrderResponse } from '@/types/api' import { Skeleton } from '@/components/ui/skeleton' export function PendingPOsWidget() { const [data, setData] = useState([]) const [total, setTotal] = useState(0) const [loading, setLoading] = useState(true) const fetchData = useCallback(async () => { setLoading(true) try { const res = await purchaseOrders.list({ status: 'Issued', pageSize: 5, page: 1 }) setData(res.items ?? []) setTotal(res.total ?? 0) } catch { // silent } finally { setLoading(false) } }, []) useEffect(() => { fetchData() }, [fetchData]) if (loading) { return (
) } return (
{total} pending order{total !== 1 ? 's' : ''}
{data.length === 0 ? (

No pending purchase orders

) : ( data.map(po => (
{po.supplierName} {po.items.length} line{po.items.length !== 1 ? 's' : ''}
Rs. {po.items.reduce((s, i) => s + i.quantity * i.unitCost, 0).toLocaleString('en-LK', { minimumFractionDigits: 0 })}
)) )}
) }