import React from 'react'; import { ArrowDownLeft, ArrowUpRight, CheckCircle, Clock, CreditCard, DollarSign, TrendingUp, XCircle } from 'lucide-react'; interface Transaction { id: string; amount: number; type: 'sponsorship' | 'membership' | 'withdrawal' | 'prize'; status: 'completed' | 'pending' | 'failed'; description: string; reference?: string; formattedDate: string; formattedAmount: string; fee: number; } interface TransactionRowProps { transaction: Transaction; } export default function TransactionRow({ transaction }: TransactionRowProps) { const isIncoming = transaction.amount > 0; const typeIcons = { sponsorship: DollarSign, membership: CreditCard, withdrawal: ArrowUpRight, prize: TrendingUp, }; const TypeIcon = typeIcons[transaction.type]; const statusConfig = { completed: { color: 'text-performance-green', bg: 'bg-performance-green/10', icon: CheckCircle }, pending: { color: 'text-warning-amber', bg: 'bg-warning-amber/10', icon: Clock }, failed: { color: 'text-racing-red', bg: 'bg-racing-red/10', icon: XCircle }, }; const status = statusConfig[transaction.status]; const StatusIcon = status.icon; return (
{isIncoming ? ( ) : ( )}
{transaction.description} {transaction.status}
{transaction.type} {transaction.reference && ( <> {transaction.reference} )} {transaction.formattedDate}
{transaction.formattedAmount}
{transaction.fee > 0 && (
Fee: ${transaction.fee.toFixed(2)}
)}
); }