Added wallet balance to repayinput

This commit is contained in:
juan 2021-01-26 14:33:10 -05:00
parent ea39f0c47f
commit 8500764e73
2 changed files with 23 additions and 16 deletions

View File

@ -1,7 +1,7 @@
import React, { useEffect, useState } from "react";
import { cache, ParsedAccount } from "../../contexts/accounts";
import { useConnectionConfig } from "../../contexts/connection";
import { useLendingReserves, useUserDeposits } from "../../hooks";
import {useLendingReserves, useUserBalance, useUserDeposits} from "../../hooks";
import {
LendingReserve,
LendingMarket,
@ -27,9 +27,11 @@ export default function CollateralInput(props: {
onLeverage?: (leverage: number) => void;
onInputChange: (value: number | null) => void;
hideBalance?: boolean;
useWalletBalance?: boolean;
showLeverageSelector?: boolean;
leverage?: number;
}) {
const { balance: tokenBalance } = useUserBalance(props.reserve.liquidityMint);
const { reserveAccounts } = useLendingReserves();
const { tokenMap } = useConnectionConfig();
const [collateralReserve, setCollateralReserve] = useState<string>();
@ -38,21 +40,26 @@ export default function CollateralInput(props: {
const userDeposits = useUserDeposits();
useEffect(() => {
const id: string =
cache
.byParser(LendingReserveParser)
.find((acc) => acc === collateralReserve) || "";
const parser = cache.get(id) as ParsedAccount<LendingReserve>;
if (parser) {
const collateralDeposit = userDeposits.userDeposits.find(
(u) =>
u.reserve.info.liquidityMint.toBase58() ===
parser.info.liquidityMint.toBase58()
);
if (collateralDeposit) setBalance(collateralDeposit.info.amount);
else setBalance(0);
if (props.useWalletBalance) {
setBalance(tokenBalance)
} else {
const id: string =
cache
.byParser(LendingReserveParser)
.find((acc) => acc === collateralReserve) || "";
const parser = cache.get(id) as ParsedAccount<LendingReserve>;
if (parser) {
const collateralDeposit = userDeposits.userDeposits.find(
(u) =>
u.reserve.info.liquidityMint.toBase58() ===
parser.info.liquidityMint.toBase58()
);
if (collateralDeposit) setBalance(collateralDeposit.info.amount);
else setBalance(0);
}
}
}, [collateralReserve, userDeposits]);
}, [collateralReserve, userDeposits, tokenBalance, props.useWalletBalance]);
const market = cache.get(props.reserve.lendingMarket) as ParsedAccount<
LendingMarket

View File

@ -211,7 +211,7 @@ export const RepayInput = (props: {
setLastTyped("repay");
}}
disabled={true}
hideBalance={true}
useWalletBalance={true}
/>
</div>
<Slider marks={marks} value={pct} onChange={setPct} />