fix: update account health on modal close (#776)
This commit is contained in:
parent
b2b8f93bc3
commit
9c6f5bcc94
@ -24,7 +24,6 @@ export default function useAccountBalanceData(props: Props) {
|
|||||||
const accountDeposits = usedAccount?.deposits ?? []
|
const accountDeposits = usedAccount?.deposits ?? []
|
||||||
const accountLends = usedAccount?.lends ?? []
|
const accountLends = usedAccount?.lends ?? []
|
||||||
const accountDebts = usedAccount?.debts ?? []
|
const accountDebts = usedAccount?.debts ?? []
|
||||||
const accountVaults = usedAccount?.vaults ?? []
|
|
||||||
|
|
||||||
const deposits: AccountBalanceRow[] = []
|
const deposits: AccountBalanceRow[] = []
|
||||||
accountDeposits.forEach((deposit) => {
|
accountDeposits.forEach((deposit) => {
|
||||||
|
@ -27,10 +27,11 @@ interface Props {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default function AccountSummary(props: Props) {
|
export default function AccountSummary(props: Props) {
|
||||||
const storageKey = props.isAccountDetails
|
const { account, isAccountDetails, isHls } = props
|
||||||
|
const storageKey = isAccountDetails
|
||||||
? LocalStorageKeys.ACCOUNT_DETAILS_TABS
|
? LocalStorageKeys.ACCOUNT_DETAILS_TABS
|
||||||
: LocalStorageKeys.ACCOUNT_SUMMARY_TABS
|
: LocalStorageKeys.ACCOUNT_SUMMARY_TABS
|
||||||
const defaultSetting = props.isAccountDetails
|
const defaultSetting = isAccountDetails
|
||||||
? DEFAULT_SETTINGS.accountDetailsTabs
|
? DEFAULT_SETTINGS.accountDetailsTabs
|
||||||
: DEFAULT_SETTINGS.accountSummaryTabs
|
: DEFAULT_SETTINGS.accountSummaryTabs
|
||||||
const [accountSummaryTabs, setAccountSummaryTabs] = useLocalStorage<boolean[]>(
|
const [accountSummaryTabs, setAccountSummaryTabs] = useLocalStorage<boolean[]>(
|
||||||
@ -50,12 +51,13 @@ export default function AccountSummary(props: Props) {
|
|||||||
() => [...lendingAvailableAssets, ...accountLentAssets],
|
() => [...lendingAvailableAssets, ...accountLentAssets],
|
||||||
[lendingAvailableAssets, accountLentAssets],
|
[lendingAvailableAssets, accountLentAssets],
|
||||||
)
|
)
|
||||||
const { health, healthFactor } = useHealthComputer(props.account)
|
const { health, healthFactor } = useHealthComputer(account)
|
||||||
const { health: updatedHealth, healthFactor: updatedHealthFactor } =
|
const { health: updatedHealth, healthFactor: updatedHealthFactor } = useHealthComputer(
|
||||||
useHealthComputer(updatedAccount)
|
updatedAccount || account,
|
||||||
|
)
|
||||||
const leverage = useMemo(
|
const leverage = useMemo(
|
||||||
() => (props.account ? calculateAccountLeverage(props.account, prices, assets) : BN_ZERO),
|
() => (account ? calculateAccountLeverage(account, prices, assets) : BN_ZERO),
|
||||||
[props.account, prices, assets],
|
[account, prices, assets],
|
||||||
)
|
)
|
||||||
const updatedLeverage = useMemo(() => {
|
const updatedLeverage = useMemo(() => {
|
||||||
if (!updatedAccount) return null
|
if (!updatedAccount) return null
|
||||||
@ -75,7 +77,7 @@ export default function AccountSummary(props: Props) {
|
|||||||
const apr = useMemo(
|
const apr = useMemo(
|
||||||
() =>
|
() =>
|
||||||
calculateAccountApr(
|
calculateAccountApr(
|
||||||
updatedAccount ?? props.account,
|
updatedAccount ?? account,
|
||||||
borrowAssetsData,
|
borrowAssetsData,
|
||||||
lendingAssetsData,
|
lendingAssetsData,
|
||||||
prices,
|
prices,
|
||||||
@ -101,7 +103,7 @@ export default function AccountSummary(props: Props) {
|
|||||||
{
|
{
|
||||||
title: `Composition`,
|
title: `Composition`,
|
||||||
renderContent: () =>
|
renderContent: () =>
|
||||||
props.account ? <AccountComposition account={props.account} isHls={props.isHls} /> : null,
|
account ? <AccountComposition account={account} isHls={isHls} /> : null,
|
||||||
isOpen: accountSummaryTabs[0],
|
isOpen: accountSummaryTabs[0],
|
||||||
toggleOpen: (index: number) => handleToggle(index),
|
toggleOpen: (index: number) => handleToggle(index),
|
||||||
renderSubTitle: () => <></>,
|
renderSubTitle: () => <></>,
|
||||||
@ -109,13 +111,13 @@ export default function AccountSummary(props: Props) {
|
|||||||
{
|
{
|
||||||
title: 'Balances',
|
title: 'Balances',
|
||||||
renderContent: () =>
|
renderContent: () =>
|
||||||
props.account ? (
|
account ? (
|
||||||
<AccountBalancesTable
|
<AccountBalancesTable
|
||||||
account={props.account}
|
account={account}
|
||||||
borrowingData={borrowAssetsData}
|
borrowingData={borrowAssetsData}
|
||||||
lendingData={lendingAssetsData}
|
lendingData={lendingAssetsData}
|
||||||
hideCard
|
hideCard
|
||||||
isHls={props.isHls}
|
isHls={isHls}
|
||||||
/>
|
/>
|
||||||
) : null,
|
) : null,
|
||||||
isOpen: accountSummaryTabs[1],
|
isOpen: accountSummaryTabs[1],
|
||||||
@ -124,41 +126,34 @@ export default function AccountSummary(props: Props) {
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
if (props.account.vaults.length > 0)
|
if (account.vaults.length > 0)
|
||||||
itemsArray.push({
|
itemsArray.push({
|
||||||
title: 'Strategies',
|
title: 'Strategies',
|
||||||
renderContent: () =>
|
renderContent: () =>
|
||||||
props.account ? <AccountStrategiesTable account={props.account} hideCard /> : null,
|
account ? <AccountStrategiesTable account={account} hideCard /> : null,
|
||||||
isOpen: accountSummaryTabs[2] ?? false,
|
isOpen: accountSummaryTabs[2] ?? false,
|
||||||
toggleOpen: (index: number) => handleToggle(index),
|
toggleOpen: (index: number) => handleToggle(index),
|
||||||
renderSubTitle: () => <></>,
|
renderSubTitle: () => <></>,
|
||||||
})
|
})
|
||||||
|
|
||||||
if (props.account.perps.length > 0)
|
if (account.perps.length > 0)
|
||||||
itemsArray.push({
|
itemsArray.push({
|
||||||
title: 'Perp Positions',
|
title: 'Perp Positions',
|
||||||
renderContent: () =>
|
renderContent: () =>
|
||||||
props.account ? <AccountPerpPositionTable account={props.account} hideCard /> : null,
|
account ? <AccountPerpPositionTable account={account} hideCard /> : null,
|
||||||
isOpen: accountSummaryTabs[props.account.vaults.length > 0 ? 3 : 2] ?? false,
|
isOpen: accountSummaryTabs[account.vaults.length > 0 ? 3 : 2] ?? false,
|
||||||
toggleOpen: (index: number) => handleToggle(index),
|
toggleOpen: (index: number) => handleToggle(index),
|
||||||
renderSubTitle: () => <></>,
|
renderSubTitle: () => <></>,
|
||||||
})
|
})
|
||||||
|
|
||||||
return itemsArray
|
return itemsArray
|
||||||
}, [
|
}, [account, borrowAssetsData, lendingAssetsData, isHls, handleToggle, accountSummaryTabs])
|
||||||
props.account,
|
|
||||||
borrowAssetsData,
|
|
||||||
lendingAssetsData,
|
|
||||||
props.isHls,
|
|
||||||
handleToggle,
|
|
||||||
accountSummaryTabs,
|
|
||||||
])
|
|
||||||
|
|
||||||
if (!props.account) return null
|
if (!account) return null
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<AccountSummaryHeader
|
<AccountSummaryHeader
|
||||||
account={props.account}
|
account={account}
|
||||||
updatedAccount={updatedAccount}
|
updatedAccount={updatedAccount}
|
||||||
prices={prices}
|
prices={prices}
|
||||||
assets={assets}
|
assets={assets}
|
||||||
@ -169,7 +164,7 @@ export default function AccountSummary(props: Props) {
|
|||||||
updatedHealth={updatedHealth}
|
updatedHealth={updatedHealth}
|
||||||
healthFactor={healthFactor}
|
healthFactor={healthFactor}
|
||||||
updatedHealthFactor={updatedHealthFactor}
|
updatedHealthFactor={updatedHealthFactor}
|
||||||
isAccountDetails={props.isAccountDetails}
|
isAccountDetails={isAccountDetails}
|
||||||
/>
|
/>
|
||||||
<Accordion items={items} allowMultipleOpen />
|
<Accordion items={items} allowMultipleOpen />
|
||||||
</>
|
</>
|
||||||
|
Loading…
Reference in New Issue
Block a user