'use client'; import { useSponsorBilling } from "@/hooks/sponsor/useSponsorBilling"; import { SponsorBillingTemplate } from "@/templates/SponsorBillingTemplate"; import { Box } from "@/ui/Box"; import { Button } from "@/ui/Button"; import { Text } from "@/ui/Text"; import { AlertTriangle, Calendar, DollarSign, TrendingUp } from "lucide-react"; export default function SponsorBillingPage() { const { data: billingData, isLoading, error, retry } = useSponsorBilling('demo-sponsor-1'); if (isLoading) { return ( Loading billing data... ); } if (error || !billingData) { return ( {error?.message || 'No billing data available'} {error && ( )} ); } const handleSetDefault = (methodId: string) => { console.log('Setting default payment method:', methodId); }; const handleDownloadInvoice = (invoiceId: string) => { console.log('Downloading invoice:', invoiceId); }; const billingStats = [ { label: 'Total Spent', value: `$${billingData.stats.totalSpent.toFixed(2)}`, subValue: 'All time', icon: DollarSign, variant: 'success' as const, }, { label: 'Pending Payments', value: `$${billingData.stats.pendingAmount.toFixed(2)}`, subValue: `${billingData.invoices.filter((i: any) => i.status === 'pending' || i.status === 'overdue').length} invoices`, icon: AlertTriangle, variant: (billingData.stats.pendingAmount > 0 ? 'warning' : 'default') as 'warning' | 'default', }, { label: 'Next Payment', value: new Date(billingData.stats.nextPaymentDate).toLocaleDateString(), subValue: `$${billingData.stats.nextPaymentAmount.toFixed(2)}`, icon: Calendar, variant: 'info' as const, }, { label: 'Monthly Average', value: `$${billingData.stats.averageMonthlySpend.toFixed(2)}`, subValue: 'Last 6 months', icon: TrendingUp, variant: 'default' as const, }, ]; const transactions = billingData.invoices.map((inv: any) => ({ id: inv.id, date: inv.date, description: inv.description, amount: inv.totalAmount, status: inv.status as any, invoiceNumber: inv.invoiceNumber, type: inv.sponsorshipType, })); return ( ); }