mango-v4-ui/components/shared/TableTokenName.tsx

56 lines
1.8 KiB
TypeScript
Raw Normal View History

import { Bank } from '@blockworks-foundation/mango-v4'
import TokenLogo from './TokenLogo'
import TokenReduceOnlyDesc from './TokenReduceOnlyDesc'
import { useVaultLimits } from '@components/swap/useVaultLimits'
2024-05-22 20:51:07 -07:00
import { Battery100Icon } 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'
2024-05-05 17:34:42 -07:00
const TableTokenName = ({
bank,
symbol,
showLeverage,
2024-05-22 20:51:07 -07:00
hideReduceDesc,
2024-05-05 17:34:42 -07:00
}: {
bank: Bank
symbol: string
showLeverage?: boolean
2024-05-22 20:51:07 -07:00
hideReduceDesc?: boolean
2024-05-05 17:34:42 -07:00
}) => {
const { t } = useTranslation(['common', 'trade'])
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()
return (
<div className="flex items-center">
<div className="mr-2.5 flex shrink-0 items-center">
<TokenLogo bank={bank} showRewardsLogo />
</div>
2024-05-05 17:34:42 -07:00
<div>
<div className="flex items-center">
<p className="font-body leading-none text-th-fgd-2">{symbol}</p>
2024-05-22 20:51:07 -07:00
{showLeverage && leverageMax < Infinity ? (
<div className="ml-1.5">
2024-05-05 17:34:42 -07:00
<Tooltip content={t('trade:max-leverage')}>
<LeverageBadge leverage={leverageMax} />
</Tooltip>
</div>
) : null}
{vaultFull ? (
2024-05-05 17:34:42 -07:00
<Tooltip content={t('warning-deposits-full', { token: bank.name })}>
2024-05-22 20:51:07 -07:00
<Battery100Icon className="ml-1.5 h-5 w-5 text-th-warning" />
2024-05-05 17:34:42 -07:00
</Tooltip>
) : null}
</div>
2024-05-22 20:51:07 -07:00
{hideReduceDesc ? null : <TokenReduceOnlyDesc bank={bank} />}
2024-05-05 17:34:42 -07:00
</div>
</div>
)
}
export default TableTokenName