'use client'; import { Badge } from '@/ui/Badge'; import { Icon } from '@/ui/Icon'; import { Stack } from '@/ui/Stack'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/ui/Table'; import { Text } from '@/ui/Text'; import { AlertCircle, ArrowUpRight, CheckCircle2, Clock, DollarSign } from 'lucide-react'; export interface PayoutItem { id: string; date: string; amount: string; status: 'pending' | 'processing' | 'completed' | 'failed'; recipient: string; description: string; } interface SponsorPayoutQueueTableProps { payouts: PayoutItem[]; } const STATUS_CONFIG = { pending: { icon: Clock, color: 'text-warning-amber', label: 'Pending' }, processing: { icon: ArrowUpRight, color: 'text-primary-blue', label: 'Processing' }, completed: { icon: CheckCircle2, color: 'text-performance-green', label: 'Completed' }, failed: { icon: AlertCircle, color: 'text-racing-red', label: 'Failed' }, }; /** * SponsorPayoutQueueTable * * High-density table for tracking sponsorship payouts and financial transactions. */ export function SponsorPayoutQueueTable({ payouts }: SponsorPayoutQueueTableProps) { return ( Date Recipient Description Amount Status {payouts.map((payout) => { const status = STATUS_CONFIG[payout.status]; return ( {payout.date} {payout.recipient} {payout.description} {payout.amount} {status.label} ); })} {payouts.length === 0 && ( No payouts in queue )}
); }