diff --git a/components/BorrowForm.tsx b/components/BorrowForm.tsx index fa1b89ff..2ec4500c 100644 --- a/components/BorrowForm.tsx +++ b/components/BorrowForm.tsx @@ -2,6 +2,7 @@ import { Bank, HealthType } from '@blockworks-foundation/mango-v4' import { ArrowLeftIcon, ArrowUpLeftIcon, + ArrowUpTrayIcon, ChevronDownIcon, ExclamationCircleIcon, LinkIcon, @@ -82,6 +83,18 @@ function BorrowForm({ onSuccess, token }: BorrowFormProps) { : new Decimal(0) }, [mangoAccount, bank]) + const tokenBalance = useMemo(() => { + if (!bank || !mangoAccount) return new Decimal(0) + return floorToDecimal( + mangoAccount.getTokenBalanceUi(bank), + bank.mintDecimals + ) + }, [bank, mangoAccount]) + + const isBorrow = parseFloat(inputAmount) > tokenBalance.toNumber() + + console.log(tokenBalance.toNumber(), tokenMax.toNumber()) + const handleSizePercentage = useCallback( (percentage: string) => { if (!bank) return @@ -300,13 +313,34 @@ function BorrowForm({ onSuccess, token }: BorrowFormProps) { mintPk={bank.mint} uiAmount={Number(inputAmount)} /> + {tokenBalance ? ( +
{t('withdraw-value')}
++ {isBorrow + ? formatFixedDecimals( + bank.uiPrice * tokenBalance.toNumber(), + true + ) + : inputAmount + ? formatFixedDecimals( + bank.uiPrice * parseFloat(inputAmount), + true + ) + : '$0.00'} +
+{t('borrow-value')}
- {formatFixedDecimals( - bank.uiPrice * Number(inputAmount), - true - )} + {isBorrow + ? formatFixedDecimals( + bank.uiPrice * + (parseFloat(inputAmount) - tokenBalance.toNumber()), + true + ) + : '$0.00'}
- {formatFixedDecimals( - bank.loanOriginationFeeRate.toNumber() * - Number(inputAmount), - true - )} + {isBorrow + ? formatFixedDecimals( + bank.uiPrice * + bank.loanOriginationFeeRate.toNumber() * + (parseFloat(inputAmount) - tokenBalance.toNumber()), + true + ) + : '$0.00'}