'use client'; import { Address } from '@/identity'; import { useMemo, useState } from 'react'; import { useAccount } from 'wagmi'; import { TextInput } from '../../../internal/components/TextInput'; import { isValidAmount } from '../../../internal/utils/isValidAmount'; import { cn, text } from '../../../styles/theme'; import { TokenSelectDropdown } from '../../../token'; import { useAppchainBridgeContext } from './AppchainBridgeProvider'; interface AppchainBridgeInputProps { className?: string; delayMs?: number; } export function AppchainBridgeInput({ className, delayMs = 50, }: AppchainBridgeInputProps) { const { balance, bridgeParams, bridgeableTokens, to, isPriceLoading, handleAmountChange, setIsAddressModalOpen, resetDepositStatus, } = useAppchainBridgeContext(); const [currentToken, setCurrentToken] = useState(bridgeableTokens[0]); const { address } = useAccount(); const insufficientBalance = useMemo(() => { return balance && Number(balance) < Number(bridgeParams.amount); }, [balance, bridgeParams.amount]); const label = useMemo(() => { if (insufficientBalance) { return 'Insufficient funds'; } if (isPriceLoading) { return (
); } if (bridgeParams.amountUSD === 'NaN') { return ''; } return `~$${bridgeParams.amountUSD}`; }, [insufficientBalance, isPriceLoading, bridgeParams.amountUSD]); return (