import clsx from 'clsx' import { useUser } from '../hooks/use-user' import { formatMoney } from '../lib/util/format' import { AddFundsButton } from './add-funds-button' import { Col } from './layout/col' import { Row } from './layout/row' export function AmountInput(props: { amount: number | undefined onChange: (newAmount: number | undefined) => void error: string | undefined setError: (error: string | undefined) => void disabled?: boolean className?: string inputClassName?: string }) { const { amount, onChange, error, setError, disabled, className, inputClassName, } = props const user = useUser() const onAmountChange = (str: string) => { const amount = parseInt(str.replace(/[^\d]/, '')) if (str && isNaN(amount)) return onChange(str ? amount : undefined) if (user && user.balance < amount) setError('Insufficient balance') else setError(undefined) } const remainingBalance = (user?.balance ?? 0) - (amount ?? 0) return ( {user && (error ? (
{error}
) : (
Remaining balance
{formatMoney(Math.floor(remainingBalance))}
{user.balance !== 1000 && }
))} ) }