import React from 'react'; import { Button } from '../ui/Button'; import { Card } from '../ui/Card'; import type { Transaction } from '../../types'; import { FiCheckCircle, FiXCircle, FiClock, FiAlertCircle } from 'react-icons/fi'; interface TransactionStatusProps { transaction: Transaction; onNewTransaction?: () => void; } export const TransactionStatus: React.FC = ({ transaction, onNewTransaction, }) => { const formatCurrency = (amount: number) => { return new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', }).format(amount); }; const getStatusConfig = () => { switch (transaction.status) { case 'approved': return { icon: FiCheckCircle, title: 'Transaction Approved', message: 'Your transaction has been successfully processed and approved.', color: 'text-green-600', bgColor: 'bg-green-50', borderColor: 'border-green-200', iconColor: 'text-green-600', }; case 'rejected': return { icon: FiXCircle, title: 'Transaction Rejected', message: transaction.rejectionReason || 'Your transaction has been flagged as suspicious and rejected.', color: 'text-red-600', bgColor: 'bg-red-50', borderColor: 'border-red-200', iconColor: 'text-red-600', }; case 'suspicious': return { icon: FiAlertCircle, title: 'Under Review', message: 'Your transaction is being reviewed for suspicious activity. You will be notified once the review is complete.', color: 'text-yellow-600', bgColor: 'bg-yellow-50', borderColor: 'border-yellow-200', iconColor: 'text-yellow-600', }; default: return { icon: FiClock, title: 'Transaction Pending', message: 'Your transaction is being processed. Please wait for confirmation.', color: 'text-blue-600', bgColor: 'bg-blue-50', borderColor: 'border-blue-200', iconColor: 'text-blue-600', }; } }; const statusConfig = getStatusConfig(); const Icon = statusConfig.icon; return (

{statusConfig.title}

{statusConfig.message}

Transaction ID {transaction.id}
Amount {formatCurrency(transaction.amount)}

Recipient

{transaction.recipient}

{transaction.recipientEmail && (

Email

{transaction.recipientEmail}

)}

Account Type

{transaction.accountType}

Status

{transaction.status}

{transaction.description && (

Description

{transaction.description}

)}
{onNewTransaction && (
)}
); };