import { DollarSign, Users, Calendar, TrendingUp, Clock, CheckCircle } from 'lucide-react'; import { DashboardSummary, TopEarner, PeriodEarnings } from '../../services/commissions/dashboard.api'; interface CommissionsDashboardProps { summary: DashboardSummary; topEarners: TopEarner[]; periodEarnings: PeriodEarnings[]; } export function CommissionsDashboard({ summary, topEarners, periodEarnings }: CommissionsDashboardProps) { const formatCurrency = (amount: number) => new Intl.NumberFormat('en-US', { style: 'currency', currency: summary.currency }).format(amount); return (
{/* Summary Cards */}

Pending Commissions

{formatCurrency(summary.total_pending)}

{summary.pending_count} entries

Approved

{formatCurrency(summary.total_approved)}

{summary.approved_count} entries

Total Paid

{formatCurrency(summary.total_paid)}

{summary.paid_count} entries

Active Schemes

{summary.active_schemes}

{summary.active_assignments} assignments

{/* Top Earners */}

Top Earners

{topEarners.length === 0 ? (

No earners data

) : (
{topEarners.map((earner) => (
{earner.rank}

{earner.user_name}

{earner.entries_count} sales

{formatCurrency(earner.total_earned)}

))}
)}
{/* Recent Periods */}

Recent Periods

{periodEarnings.length === 0 ? (

No periods data

) : (
{periodEarnings.slice(0, 5).map((period) => (

{period.period_name}

{new Date(period.starts_at).toLocaleDateString()} - {new Date(period.ends_at).toLocaleDateString()}

{formatCurrency(period.total_amount)}

{period.status}
))}
)}
); }