import classNames from 'classnames' import { useMemo } from 'react' import DisplayCurrency from 'components/DisplayCurrency' import { FormattedNumber } from 'components/FormattedNumber' import { Gauge } from 'components/Gauge' import { ArrowRight, Heart } from 'components/Icons' import Text from 'components/Text' import { ORACLE_DENOM } from 'constants/oracle' import useCurrentAccount from 'hooks/useCurrentAccount' import useHealthComputer from 'hooks/useHealthComputer' import usePrices from 'hooks/usePrices' import useStore from 'store' import { BNCoin } from 'types/classes/BNCoin' import { calculateAccountBalanceValue, calculateAccountLeverage } from 'utils/accounts' import { formatLeverage } from 'utils/formatters' export default function AccountDetailsController() { const account = useCurrentAccount() const address = useStore((s) => s.address) const focusComponent = useStore((s) => s.focusComponent) if (!account || !address || focusComponent) return null return } interface Props { account: Account } function AccountDetails(props: Props) { const updatedAccount = useStore((s) => s.updatedAccount) const { health } = useHealthComputer(props.account) const { health: updatedHealth } = useHealthComputer(updatedAccount) const { data: prices } = usePrices() const accountBalanceValue = calculateAccountBalanceValue( updatedAccount ? updatedAccount : props.account, prices, ) const coin = BNCoin.fromDenomAndBigNumber(ORACLE_DENOM, accountBalanceValue) const leverage = useMemo( () => calculateAccountLeverage(updatedAccount ? updatedAccount : props.account, prices), [props.account, updatedAccount, prices], ) return (
} /> Health
{updatedHealth > 0 && health !== updatedHealth && ( <> updatedHealth ? 'text-loss' : 'text-success')} /> )}
Leverage {formatLeverage(leverage.toNumber())}
Net worth
) }