'use client'; import { useCallback, useMemo } from 'react'; import { getRoundedAmount } from '../../internal/utils/getRoundedAmount'; import { cn, pressable, text } from '../../styles/theme'; import type { SwapUnit } from '../../swap/types'; import { TokenImage } from '../../token'; import { useBuyContext } from './BuyProvider'; export function BuyTokenItem({ swapUnit }: { swapUnit: SwapUnit }) { const { handleSubmit, setIsDropdownOpen } = useBuyContext(); const handleClick = useCallback(() => { setIsDropdownOpen(false); handleSubmit(swapUnit); }, [handleSubmit, swapUnit, setIsDropdownOpen]); const hasInsufficientBalance = !swapUnit?.balance || Number.parseFloat(swapUnit.balance) < Number.parseFloat(swapUnit.amount); const roundedAmount = useMemo(() => { if (!swapUnit?.amount) { return ''; } return getRoundedAmount(swapUnit.amount, 10); }, [swapUnit?.amount]); const roundedBalance = useMemo(() => { return getRoundedAmount(swapUnit?.balance || '0', 3); }, [swapUnit?.balance]); if (!swapUnit.token) { return null; } return ( ); }