import React from 'react' import ContactCircle from 'src/components/ContactCircle' import IconWithNetworkBadge from 'src/components/IconWithNetworkBadge' import Activity from 'src/icons/Activity' import AttentionIcon from 'src/icons/Attention' import CircledIcon from 'src/icons/CircledIcon' import EarnCoins from 'src/icons/EarnCoins' import GreenLoadingSpinner from 'src/icons/GreenLoadingSpinner' import MagicWand from 'src/icons/MagicWand' import SwapArrows from 'src/icons/SwapArrows' import { Recipient } from 'src/recipients/recipient' import Colors from 'src/styles/colors' import { NetworkId, TokenTransactionTypeV2, TransactionStatus } from 'src/transactions/types' import Logger from 'src/utils/Logger' const AVATAR_SIZE = 40 type Props = { networkId: NetworkId; status: TransactionStatus; hideNetworkIcon?: boolean } & ( | { transactionType: Exclude< TokenTransactionTypeV2, TokenTransactionTypeV2.Sent | TokenTransactionTypeV2.Received > } | { transactionType: TokenTransactionTypeV2.Sent | TokenTransactionTypeV2.Received recipient: Recipient isJumpstart: boolean } ) function TransactionFeedItemBaseImage(props: Props) { const { status, transactionType } = props if (status === TransactionStatus.Failed) { return ( ) } if (status === TransactionStatus.Pending) { return } if ( transactionType === TokenTransactionTypeV2.SwapTransaction || transactionType === TokenTransactionTypeV2.CrossChainSwapTransaction ) { return ( ) } if (transactionType === TokenTransactionTypeV2.Approval) { return ( ) } if ( transactionType === TokenTransactionTypeV2.Sent || transactionType === TokenTransactionTypeV2.Received ) { if (props.isJumpstart) { return ( ) } return } if ( transactionType === TokenTransactionTypeV2.Deposit || transactionType === TokenTransactionTypeV2.Withdraw || transactionType === TokenTransactionTypeV2.ClaimReward || transactionType === TokenTransactionTypeV2.CrossChainDeposit || transactionType === TokenTransactionTypeV2.EarnWithdraw || transactionType === TokenTransactionTypeV2.EarnDeposit || transactionType === TokenTransactionTypeV2.EarnClaimReward || transactionType === TokenTransactionTypeV2.EarnSwapDeposit ) { return ( ) } // Should never happen Logger.error( 'TransactionFeedItemImage', `Could not render image for transaction for transaction type ${transactionType} and status ${status}` ) return null } function TransactionFeedItemImage(props: Props) { if (props.hideNetworkIcon) { return } return ( ) } export default TransactionFeedItemImage