import {Card, CardContent, CardHeader, CardTitle} from '@/components/ui/card'; import {Button} from '@/components/ui/button'; import {useAppSelector} from '@/store'; export default function ClientsPage() { const {clients, invoices} = useAppSelector(state => state.invoices); const getClientStats = (clientId: string) => { const clientInvoices = invoices.filter(i => i.clientId === clientId); const totalBilled = clientInvoices.reduce((sum, i) => sum + i.total, 0); const outstanding = clientInvoices.filter(i => i.status === 'sent' || i.status === 'overdue').reduce((sum, i) => sum + i.total, 0); return {totalBilled, outstanding, count: clientInvoices.length}; }; const fmt = (value: number) => new Intl.NumberFormat('en-US', {style: 'currency', currency: 'USD', maximumFractionDigits: 0}).format(value); return (
Total Clients
{clients.length}
With Active Invoices
{clients.filter(c => getClientStats(c.id).count > 0).length}
No clients yet
{client.name}
{client.email}{client.company && ` ยท ${client.company}`}
Billed
{fmt(stats.totalBilled)}
Outstanding
{fmt(stats.outstanding)}
Invoices
{stats.count}