import React, { Suspense, useMemo } from 'react' import HealthBar from 'components/Account/HealthBar' import Card from 'components/Card' import DisplayCurrency from 'components/DisplayCurrency' import { FormattedNumber } from 'components/FormattedNumber' import { Heart } from 'components/Icons' import Loading from 'components/Loading' import Text from 'components/Text' import TitleAndSubCell from 'components/TitleAndSubCell' import { MAX_AMOUNT_DECIMALS } from 'constants/math' import { ORACLE_DENOM } from 'constants/oracle' import useAccount from 'hooks/useAccount' import useBorrowMarketAssetsTableData from 'hooks/useBorrowMarketAssetsTableData' import useHealthComputer from 'hooks/useHealthComputer' import useLendingMarketAssetsTableData from 'hooks/useLendingMarketAssetsTableData' import usePrices from 'hooks/usePrices' import { BNCoin } from 'types/classes/BNCoin' import { calculateAccountApr, calculateAccountLeverage, getAccountPositionValues, } from 'utils/accounts' interface Props { accountId: string } function Content(props: Props) { const { data: account } = useAccount(props.accountId, true) const { data: prices } = usePrices() const { health } = useHealthComputer(account) const { allAssets: borrowAssets } = useBorrowMarketAssetsTableData() const { allAssets: lendingAssets } = useLendingMarketAssetsTableData() const stats = useMemo(() => { if (!account || !borrowAssets.length || !lendingAssets.length) return STATS const [deposits, lends, debts, vaults] = getAccountPositionValues(account, prices) const positionValue = deposits.plus(lends).plus(vaults) const apr = calculateAccountApr(account, borrowAssets, lendingAssets, prices) const leverage = calculateAccountLeverage(account, prices) return [ { title: ( ), sub: STATS[0].sub, }, { title: ( ), sub: STATS[1].sub, }, { title: ( ), sub: STATS[2].sub, }, { title: ( ), sub: STATS[3].sub, }, { title: ( ), sub: STATS[4].sub, }, ] }, [account, borrowAssets, lendingAssets, prices]) return } export default function Summary(props: Props) { return ( }> ) } interface SkeletonProps extends Props { stats: { title: React.ReactNode | null; sub: string }[] health: number } function Skeleton(props: SkeletonProps) { return (
Credit Account {props.accountId}
{props.stats.map((stat) => ( } sub={stat.sub} className='mb-1' /> ))}
) } const STATS = [ { title: null, sub: 'Total Balance' }, { title: null, sub: 'Total Debt' }, { title: null, sub: 'Net Worth' }, { title: null, sub: 'APR' }, { title: null, sub: 'Account Leverage' }, ]