import { multiplyFloats } from '@/internal/utils/multiplyFloats'; import { useNFTContext } from '@/nft/components/NFTProvider'; import { cn, text } from '@/styles/theme'; import { formatToDecimalString } from '@/internal/utils/formatter'; import { formatAmount } from '@/token/utils/formatAmount'; type NFTAssetCostProps = { className?: string; }; export function NFTAssetCost({ className }: NFTAssetCostProps) { const { price, quantity } = useNFTContext(); if ( price?.amount === undefined || !price.currency || price.amountUSD === undefined ) { return null; } if (Number(price?.amount) === 0) { return
Free
; } const totalAmount = multiplyFloats(Number(price.amount), quantity); const totalUSD = multiplyFloats(Number(price.amountUSD), quantity); const formattedCryptoAmount = formatToDecimalString(`${totalAmount}`); const formattedUSDAmount = formatAmount(`${totalUSD}`, { minimumFractionDigits: 2, maximumFractionDigits: 2, }); const ariaLabel = `Total cost: ${formattedCryptoAmount} ${price.currency}, approximately ${formattedUSDAmount} US dollars${quantity > 1 ? ` for ${quantity} items` : ''}`; return (
{formattedCryptoAmount} {price.currency}
~
${formattedUSDAmount}
); }