fix: update account health on modal close (#776)

This commit is contained in:
Linkie Link 2024-02-07 11:00:50 +01:00 committed by GitHub
parent b2b8f93bc3
commit 9c6f5bcc94
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 23 additions and 29 deletions

View File

@ -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) => {

View File

@ -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 />
</> </>