import DetailedAreaOrBarChart from '@components/shared/DetailedAreaOrBarChart' import { ArrowLeftIcon } from '@heroicons/react/20/solid' import useAccountPerformanceData from 'hooks/useAccountPerformanceData' import { useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' import { formatYAxis } from 'utils/formatting' import FundingChart from './FundingChart' import VolumeChart from './VolumeChart' import { useQuery } from '@tanstack/react-query' import useMangoAccount from 'hooks/useMangoAccount' import { fetchFundingTotals, fetchVolumeTotals } from 'utils/account' import Tooltip from '@components/shared/Tooltip' import SheenLoader from '@components/shared/SheenLoader' import FormatNumericValue from '@components/shared/FormatNumericValue' const AccountStats = ({ hideView }: { hideView: () => void }) => { const { t } = useTranslation(['common', 'account']) const { mangoAccountAddress } = useMangoAccount() const { performanceData, loadingPerformanceData } = useAccountPerformanceData() const [pnlDaysToShow, setPnlDaysToShow] = useState('1') const [interestDaysToShow, setInterestDaysToShow] = useState('1') const { data: fundingData, isLoading: loadingFunding } = useQuery( ['funding', mangoAccountAddress], () => fetchFundingTotals(mangoAccountAddress), { cacheTime: 1000 * 60 * 10, staleTime: 1000 * 60, retry: 3, refetchOnWindowFocus: false, enabled: !!mangoAccountAddress, }, ) const { data: volumeTotalData, isLoading: loadingVolumeTotalData } = useQuery( ['total-volume', mangoAccountAddress], () => fetchVolumeTotals(mangoAccountAddress), { cacheTime: 1000 * 60 * 10, staleTime: 1000 * 60, retry: 3, refetchOnWindowFocus: false, enabled: !!mangoAccountAddress, }, ) const fundingTotalValue = useMemo(() => { if (fundingData?.length && mangoAccountAddress) { return fundingData.reduce( (a, c) => a + c.long_funding + c.short_funding, 0, ) } return 0.0 }, [fundingData, mangoAccountAddress]) const chartData = useMemo(() => { if (!performanceData || !performanceData.length) return [] const chartData = [] for (const item of performanceData) { const interest = item.borrow_interest_cumulative_usd * -1 + item.deposit_interest_cumulative_usd chartData.push({ ...item, interest_value: interest }) } return chartData }, [performanceData]) return ( <>

{t('account:account-stats')}

`$${formatYAxis(x)}`} title={t('pnl')} xKey="time" yKey="pnl" small isPrivate />
`$${formatYAxis(x)}`} title={t('cumulative-interest-value')} xKey="time" yKey="interest_value" small isPrivate />

{t('account:total-funding-earned')}

{loadingFunding && mangoAccountAddress ? (
) : (

)}

{t('account:lifetime-volume')}

{loadingVolumeTotalData && mangoAccountAddress ? (
) : (

)}
) } export default AccountStats