import { Box, MenuItem, MenuItemSize, prettyFormatNumber, } from '@biom3/react'; import { TransactionRequirement, WidgetTheme } from '@imtbl/checkout-sdk'; import { useTranslation } from 'react-i18next'; import { ReactElement } from 'react'; import { Environment } from '@imtbl/config'; import { calculateCryptoToFiat, tokenValueFormat } from '../../../lib/utils'; import { TokenImage } from '../../../components/TokenImage/TokenImage'; import { FundingBalance } from '../types'; import { getFundingBalanceTotalFees } from '../functions/fundingBalanceFees'; export interface CoinDrawerItemProps< RC extends ReactElement | undefined = undefined, > { rc?: RC; size: MenuItemSize; balance: FundingBalance; conversions: Map; selected: boolean; transactionRequirement?: TransactionRequirement; onClick: () => void; environment: Environment; theme: WidgetTheme } export function CoinsDrawerItem< RC extends ReactElement | undefined = undefined, >({ rc = , balance, conversions, selected, onClick, size, environment, theme, }: CoinDrawerItemProps) { const { t } = useTranslation(); const { token, userBalance } = balance.fundingItem; const fiatAmount = calculateCryptoToFiat( userBalance.formattedBalance, token.symbol, conversions, '', ); const fees = Object.entries(getFundingBalanceTotalFees(balance)); const menuProps = { onClick, selected, }; return ( )} /> {token.symbol} {fees.length > 0 && fees.map(([key, { token: tokenInfo, formattedAmount }]) => ( } sx={{ d: 'block' }}> {t('views.ORDER_SUMMARY.coinsDrawer.fee', { symbol: tokenInfo?.symbol || key, amount: prettyFormatNumber(tokenValueFormat(formattedAmount)), })} ))} ); }