import type { TokenAmount } from '@lifi/sdk'; import { FormHelperText, Skeleton, Typography } from '@mui/material'; import { useTranslation } from 'react-i18next'; import { useTokenAddressBalance } from '../../hooks/useTokenAddressBalance.js'; import type { FormTypeProps } from '../../stores/form/types.js'; import { FormKeyHelper } from '../../stores/form/types.js'; import { useFieldValues } from '../../stores/form/useFieldValues.js'; import { formatTokenAmount, formatTokenPrice } from '../../utils/format.js'; export const PriceFormHelperText: React.FC = ({ formType }) => { const [chainId, tokenAddress] = useFieldValues( FormKeyHelper.getChainKey(formType), FormKeyHelper.getTokenKey(formType), ); const { token, isLoading } = useTokenAddressBalance(chainId, tokenAddress); return ( ); }; export const PriceFormHelperTextBase: React.FC< FormTypeProps & { isLoading?: boolean; tokenAddress?: string; token?: TokenAmount; } > = ({ formType, isLoading, tokenAddress, token }) => { const { t } = useTranslation(); const [amount] = useFieldValues(FormKeyHelper.getAmountKey(formType)); const fromAmountTokenPrice = formatTokenPrice(amount, token?.priceUSD); return ( {t(`format.currency`, { value: fromAmountTokenPrice, })} {isLoading && tokenAddress ? ( ) : token?.amount ? ( {`/ ${t(`format.number`, { value: formatTokenAmount(token.amount, token.decimals), })}`} ) : null} ); };