import classNames from 'classnames' import { useCallback, useMemo } from 'react' import AccountSummaryLeverage from 'components/account/AccountSummary/AccountSummaryLeverage' import HealthBar from 'components/account/Health/HealthBar' import Button from 'components/common/Button' import DisplayCurrency from 'components/common/DisplayCurrency' import { ArrowRight, ArrowRightLine } from 'components/common/Icons' import Text from 'components/common/Text' import { BN_ZERO } from 'constants/math' import { ORACLE_DENOM } from 'constants/oracle' import useStore from 'store' import { BNCoin } from 'types/classes/BNCoin' import { calculateAccountBalanceValue } from 'utils/accounts' interface Props { account: Account updatedAccount?: Account prices: BNCoin[] assets: Asset[] leverage: number updatedLeverage: number | null apr: number health: number updatedHealth: number healthFactor: number updatedHealthFactor: number isAccountDetails?: boolean } export default function AccountSummaryHeader(props: Props) { const { account, updatedAccount, prices, assets, leverage, updatedLeverage, health, healthFactor, updatedHealth, updatedHealthFactor, isAccountDetails, } = props const address = useStore((s) => s.address) const onClose = useCallback(() => useStore.setState({ accountDetailsExpanded: false }), []) const accountBalance = useMemo( () => (account ? calculateAccountBalanceValue(account, prices, assets) : BN_ZERO), [account, prices, assets], ) const updatedAccountBalance = useMemo( () => updatedAccount ? calculateAccountBalanceValue(updatedAccount, prices, assets) : undefined, [updatedAccount, prices, assets], ) const hasChanged = !updatedAccountBalance?.isEqualTo(accountBalance) const increase = updatedAccountBalance?.isGreaterThan(accountBalance) return (