'use client' import { useCallback, useEffect, useState } from 'react' import { sales } from '@/lib/api/index' import type { SaleResponse } from '@/types/api' import { Skeleton } from '@/components/ui/skeleton' export function TodaySalesWidget() { const [items, setItems] = useState([]) const [total, setTotal] = useState(0) const [loading, setLoading] = useState(true) const fetchData = useCallback(async () => { setLoading(true) const today = new Date().toISOString().split('T')[0] try { const res = await sales.list({ from: today, to: today, pageSize: 50, page: 1 }) setItems(res.items ?? []) setTotal(res.total ?? 0) } catch { // silent } finally { setLoading(false) } }, []) useEffect(() => { fetchData() }, [fetchData]) if (loading) { return (
) } const revenue = items.reduce((sum, s) => sum + s.totalAmount, 0) const completed = items.filter(s => s.status === 'Completed').length const pending = items.filter(s => s.status === 'Pending').length return (
Rs. {revenue.toLocaleString('en-LK', { minimumFractionDigits: 2, maximumFractionDigits: 2 })} revenue today
{total} total
{completed} completed
{pending} pending
) }