2023-10-10 18:28:27 -07:00
|
|
|
import { Bank } from '@blockworks-foundation/mango-v4'
|
|
|
|
import TokenLogo from './TokenLogo'
|
|
|
|
import TokenReduceOnlyDesc from './TokenReduceOnlyDesc'
|
2024-01-22 10:21:24 -08:00
|
|
|
import { useVaultLimits } from '@components/swap/useVaultLimits'
|
|
|
|
import { ExclamationTriangleIcon } from '@heroicons/react/20/solid'
|
|
|
|
import Tooltip from './Tooltip'
|
|
|
|
import { useTranslation } from 'react-i18next'
|
2024-05-05 17:34:42 -07:00
|
|
|
import { floorToDecimal } from 'utils/numbers'
|
|
|
|
import { LeverageBadge } from '@components/trade/MarketSelectDropdown'
|
2023-10-10 18:28:27 -07:00
|
|
|
|
2024-05-05 17:34:42 -07:00
|
|
|
const TableTokenName = ({
|
|
|
|
bank,
|
|
|
|
symbol,
|
|
|
|
showLeverage,
|
|
|
|
}: {
|
|
|
|
bank: Bank
|
|
|
|
symbol: string
|
|
|
|
showLeverage?: boolean
|
|
|
|
}) => {
|
|
|
|
const { t } = useTranslation(['common', 'trade'])
|
2024-01-22 10:21:24 -08:00
|
|
|
const { vaultFull } = useVaultLimits(bank)
|
2024-05-05 17:34:42 -07:00
|
|
|
const weight = bank.scaledInitAssetWeight(bank.price)
|
|
|
|
const leverageFactor = 1 / (1 - weight.toNumber())
|
|
|
|
|
|
|
|
const leverageMax = floorToDecimal(leverageFactor, 1).toNumber()
|
2023-10-10 18:28:27 -07:00
|
|
|
return (
|
|
|
|
<div className="flex items-center">
|
2024-01-11 01:19:31 -08:00
|
|
|
<div className="mr-2.5 flex shrink-0 items-center">
|
2023-12-04 02:02:04 -08:00
|
|
|
<TokenLogo bank={bank} showRewardsLogo />
|
2023-10-10 18:28:27 -07:00
|
|
|
</div>
|
2024-05-05 17:34:42 -07:00
|
|
|
<div>
|
2024-01-22 10:21:24 -08:00
|
|
|
<div className="flex items-center">
|
|
|
|
<p className="font-body leading-none text-th-fgd-2">{symbol}</p>
|
2024-05-05 17:34:42 -07:00
|
|
|
{showLeverage && leverageMax > 1 && leverageMax < Infinity ? (
|
|
|
|
<div className="ml-1">
|
|
|
|
<Tooltip content={t('trade:max-leverage')}>
|
|
|
|
<LeverageBadge leverage={leverageMax} />
|
|
|
|
</Tooltip>
|
|
|
|
</div>
|
|
|
|
) : null}
|
2024-01-22 10:21:24 -08:00
|
|
|
{vaultFull ? (
|
2024-05-05 17:34:42 -07:00
|
|
|
<Tooltip content={t('warning-deposits-full', { token: bank.name })}>
|
|
|
|
<ExclamationTriangleIcon className="ml-1 h-4 w-4 text-th-warning" />
|
|
|
|
</Tooltip>
|
2024-01-22 10:21:24 -08:00
|
|
|
) : null}
|
|
|
|
</div>
|
2023-10-10 18:28:27 -07:00
|
|
|
<TokenReduceOnlyDesc bank={bank} />
|
2024-05-05 17:34:42 -07:00
|
|
|
</div>
|
2023-10-10 18:28:27 -07:00
|
|
|
</div>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
export default TableTokenName
|