mirror of https://github.com/certusone/oyster.git
Added wallet balance to repayinput
This commit is contained in:
parent
ea39f0c47f
commit
8500764e73
|
@ -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,11 +40,15 @@ export default function CollateralInput(props: {
|
||||||
const userDeposits = useUserDeposits();
|
const userDeposits = useUserDeposits();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
if (props.useWalletBalance) {
|
||||||
|
setBalance(tokenBalance)
|
||||||
|
} else {
|
||||||
const id: string =
|
const id: string =
|
||||||
cache
|
cache
|
||||||
.byParser(LendingReserveParser)
|
.byParser(LendingReserveParser)
|
||||||
.find((acc) => acc === collateralReserve) || "";
|
.find((acc) => acc === collateralReserve) || "";
|
||||||
const parser = cache.get(id) as ParsedAccount<LendingReserve>;
|
const parser = cache.get(id) as ParsedAccount<LendingReserve>;
|
||||||
|
|
||||||
if (parser) {
|
if (parser) {
|
||||||
const collateralDeposit = userDeposits.userDeposits.find(
|
const collateralDeposit = userDeposits.userDeposits.find(
|
||||||
(u) =>
|
(u) =>
|
||||||
|
@ -52,7 +58,8 @@ export default function CollateralInput(props: {
|
||||||
if (collateralDeposit) setBalance(collateralDeposit.info.amount);
|
if (collateralDeposit) setBalance(collateralDeposit.info.amount);
|
||||||
else setBalance(0);
|
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
|
||||||
|
|
|
@ -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} />
|
||||||
|
|
Loading…
Reference in New Issue