import React from 'react'; import Typography from '../../ui/Typography'; import { FiCheckCircle } from 'react-icons/fi'; import { cn } from '../../../lib/utils'; import { type ParsedTransaction } from '../../../types/transaction'; import { TransactionDetails } from '../TransactionDetails'; interface TransactionSuccessDisplayProps { executedTransactionId: string | null; network: string; isLoadingEnhancedDetails: boolean; enhancedTransactionDetails: ParsedTransaction | null; transactionDetails: ParsedTransaction | null; } /** * Displays the success state of an executed transaction with details and link to explorer */ export const TransactionSuccessDisplay: React.FC = ({ executedTransactionId, network, isLoadingEnhancedDetails, enhancedTransactionDetails, transactionDetails, }) => { return (
{/* Header Section */}
Transaction Executed Successfully {executedTransactionId ? ( <> Transaction ID: {executedTransactionId}
) : ( 'The transaction has been successfully executed.' )}
{isLoadingEnhancedDetails ? (
Loading transaction details...
) : null} {(enhancedTransactionDetails || transactionDetails) ? (
{(() => { const detailsToShow = enhancedTransactionDetails || transactionDetails; const entityId = (detailsToShow.details as any)?.createdTokenId || (detailsToShow.details as any)?.entityId; const formattedTransfers = Array.isArray( detailsToShow.transfers ) ? detailsToShow.transfers.map( (transfer) => ({ accountId: transfer.accountId, amount: typeof transfer.amount === 'string' ? parseFloat(transfer.amount) : transfer.amount, }) ) : []; const formattedTokenTransfers = Array.isArray( detailsToShow.tokenTransfers ) ? detailsToShow.tokenTransfers.map( (tokenTransfer) => ({ tokenId: tokenTransfer.tokenId, accountId: tokenTransfer.accountId, amount: tokenTransfer.amount, }) ) : []; return ( ); })()}
) : null}
); };