import TokenSelect from './TokenSelect' import NumberFormat, { NumberFormatValues, SourceInfo, } from 'react-number-format' import { formatCurrencyValue } from 'utils/numbers' import { useTranslation } from 'react-i18next' import { Dispatch, SetStateAction } from 'react' import mangoStore from '@store/mangoStore' import useMangoGroup from 'hooks/useMangoGroup' import { INPUT_TOKEN_DEFAULT } from 'utils/constants' import { NUMBER_FORMAT_CLASSNAMES, withValueLimit } from './MarketSwapForm' import MaxSwapAmount from './MaxSwapAmount' import useUnownedAccount from 'hooks/useUnownedAccount' import InlineNotification from '@components/shared/InlineNotification' import useMangoAccount from 'hooks/useMangoAccount' import { SwapFormTokenListType } from './SwapFormTokenList' import { useAbsInputPosition } from './useTokenMax' const ReduceInputTokenInput = ({ handleAmountInChange, setShowTokenSelect, handleMax, className, error, isTriggerOrder, }: { handleAmountInChange: (e: NumberFormatValues, info: SourceInfo) => void setShowTokenSelect: Dispatch> handleMax: (amountIn: string) => void className?: string error?: string isTriggerOrder?: boolean }) => { const { t } = useTranslation(['common', 'swap']) const { mangoAccountAddress } = useMangoAccount() const { group } = useMangoGroup() const { isUnownedAccount } = useUnownedAccount() const { margin: useMargin, inputBank, amountIn: amountInFormValue, } = mangoStore((s) => s.swap) return (

{t('swap:reduce-position')}

{!isUnownedAccount ? ( handleMax(v)} maxAmount={useAbsInputPosition} /> ) : null}
{!isNaN(Number(amountInFormValue)) ? ( {inputBank ? formatCurrencyValue( inputBank.uiPrice * Number(amountInFormValue), ) : '–'} ) : null}
{mangoAccountAddress ? (
) : null} {error ? (
) : null}
) } export default ReduceInputTokenInput