import { AccessTimeFilled, LocalGasStationRounded } from '@mui/icons-material'; import { Box, Tooltip, Typography } from '@mui/material'; import { useTranslation } from 'react-i18next'; import { getAccumulatedFeeCostsBreakdown } from '../../utils/fees.js'; import { FeeBreakdownTooltip } from '../FeeBreakdownTooltip.js'; import { IconTypography } from '../IconTypography.js'; import { TokenRate } from '../TokenRate/TokenRate.js'; import type { RouteCardEssentialsProps } from './types.js'; import { useFieldValues } from '../../stores/form/useFieldValues.js'; import { FormKeyHelper } from '../../stores/form/types.js'; import { TON_CHAIN_ID } from '../../utils/constants.js'; export const RouteCardEssentials: React.FC = ({ route, }) => { const { t, i18n } = useTranslation(); const executionTimeSeconds = Math.floor( route?.steps?.reduce( (duration, step) => duration + step.estimate.executionDuration, 0, ), ); const executionTimeMinutes = Math.floor(executionTimeSeconds / 60); const { gasCosts, feeCosts, combinedFeesUSD } = getAccumulatedFeeCostsBreakdown(route); const [chainId] = useFieldValues(FormKeyHelper.getChainKey('from')); let formatCombinedFeesUSD = combinedFeesUSD; if (chainId === TON_CHAIN_ID) { formatCombinedFeesUSD = combinedFeesUSD / 10; } return ( {!!combinedFeesUSD && ( {t(`format.currency`, { value: formatCombinedFeesUSD, })} )} {(executionTimeSeconds < 60 ? executionTimeSeconds : executionTimeMinutes ).toLocaleString(i18n.language, { style: 'unit', unit: executionTimeSeconds < 60 ? 'second' : 'minute', unitDisplay: 'narrow', })} ); };