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

View File

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