2022-07-14 22:20:20 -07:00
|
|
|
import mangoStore from '../../store/state'
|
2022-07-14 20:38:02 -07:00
|
|
|
import { toUiDecimals, HealthType } from '@blockworks-foundation/mango-v4'
|
2022-07-14 22:20:20 -07:00
|
|
|
import { formatDecimal } from '../../utils/numbers'
|
2022-07-15 04:09:23 -07:00
|
|
|
import Button from '../shared/Button'
|
|
|
|
import { useState } from 'react'
|
|
|
|
import DepositModal from '../modals/DepositModal'
|
|
|
|
import WithdrawModal from '../modals/WithdrawModal'
|
|
|
|
import { useTranslation } from 'next-i18next'
|
2022-07-14 20:38:02 -07:00
|
|
|
|
|
|
|
const MangoAccountSummary = () => {
|
2022-07-15 04:09:23 -07:00
|
|
|
const { t } = useTranslation('common')
|
2022-07-14 20:38:02 -07:00
|
|
|
const mangoAccount = mangoStore((s) => s.mangoAccount)
|
2022-07-15 04:09:23 -07:00
|
|
|
const [showDepositModal, setShowDepositModal] = useState(false)
|
|
|
|
const [showWithdrawModal, setShowWithdrawModal] = useState(false)
|
2022-07-14 20:38:02 -07:00
|
|
|
|
|
|
|
return (
|
|
|
|
<>
|
2022-07-15 04:09:23 -07:00
|
|
|
<div className="mb-3 space-y-1.5">
|
2022-07-14 20:38:02 -07:00
|
|
|
<div className="flex items-center justify-between">
|
|
|
|
<p className="text-th-fgd-3">Account Value</p>
|
|
|
|
<p className="font-bold text-th-fgd-1">
|
|
|
|
$
|
|
|
|
{mangoAccount
|
|
|
|
? formatDecimal(
|
|
|
|
toUiDecimals(mangoAccount.getEquity().toNumber()),
|
|
|
|
2
|
|
|
|
)
|
|
|
|
: (0).toFixed(2)}
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
<div className="flex items-center justify-between">
|
|
|
|
<p className="text-th-fgd-3">Free Collateral</p>
|
|
|
|
<p className="font-bold text-th-fgd-1">
|
|
|
|
$
|
|
|
|
{mangoAccount
|
|
|
|
? formatDecimal(
|
|
|
|
toUiDecimals(mangoAccount.getCollateralValue().toNumber()),
|
|
|
|
2
|
|
|
|
)
|
|
|
|
: (0).toFixed(2)}
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
<div className="flex items-center justify-between">
|
|
|
|
<p className="text-th-fgd-3">Health</p>
|
|
|
|
<p className="font-bold text-th-fgd-1">
|
|
|
|
{mangoAccount
|
|
|
|
? mangoAccount.getHealthRatio(HealthType.init).toNumber()
|
|
|
|
: 100}
|
|
|
|
%
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
2022-07-15 04:09:23 -07:00
|
|
|
<div className="flex items-center space-x-2">
|
|
|
|
<Button
|
|
|
|
className="w-1/2 pl-3 pr-3"
|
|
|
|
onClick={() => setShowDepositModal(true)}
|
|
|
|
>
|
|
|
|
{t('deposit')}
|
|
|
|
</Button>
|
|
|
|
<Button
|
|
|
|
className="w-1/2 pl-3 pr-3"
|
|
|
|
onClick={() => setShowWithdrawModal(true)}
|
|
|
|
secondary
|
|
|
|
>
|
|
|
|
{t('withdraw')}
|
|
|
|
</Button>
|
|
|
|
</div>
|
|
|
|
{showDepositModal ? (
|
|
|
|
<DepositModal
|
|
|
|
isOpen={showDepositModal}
|
|
|
|
onClose={() => setShowDepositModal(false)}
|
|
|
|
/>
|
|
|
|
) : null}
|
|
|
|
{showWithdrawModal ? (
|
|
|
|
<WithdrawModal
|
|
|
|
isOpen={showWithdrawModal}
|
|
|
|
onClose={() => setShowWithdrawModal(false)}
|
|
|
|
/>
|
|
|
|
) : null}
|
2022-07-14 20:38:02 -07:00
|
|
|
</>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
export default MangoAccountSummary
|