import useCollateralFeePopupConditions from 'hooks/useCollateralFeePositions' import Modal from '../shared/Modal' import Button from '@components/shared/Button' import { useTranslation } from 'react-i18next' import { Table, Td, Th, TrBody, TrHead } from '@components/shared/TableElements' import TableTokenName from '@components/shared/TableTokenName' import useMangoAccount from 'hooks/useMangoAccount' import useMangoGroup from 'hooks/useMangoGroup' import { useMemo } from 'react' import FormatNumericValue from '@components/shared/FormatNumericValue' type WarningProps = { isOpen: boolean onClose?: () => void } const CollateralFeeWarningModal = ({ isOpen, onClose }: WarningProps) => { const { t } = useTranslation(['account']) const { setWasModalOpen, collateralFeeBanks, ltvRatio } = useCollateralFeePopupConditions() const { mangoAccount } = useMangoAccount() const { group } = useMangoGroup() const lastCharge = mangoAccount?.lastCollateralFeeCharge.toNumber() const collateralFeeInterval = group?.collateralFeeInterval.toNumber() const hoursTillNextCharge = useMemo(() => { if (!lastCharge || !collateralFeeInterval) return const nowInSeconds = Date.now() / 1000 const timeUntilChargeInSeconds = lastCharge + collateralFeeInterval - nowInSeconds const timeUntilChargeInHours = timeUntilChargeInSeconds / 3600 return Math.round(timeUntilChargeInHours * 100) / 100 }, [lastCharge, collateralFeeInterval]) const handleClose = () => { setWasModalOpen(true) if (onClose) { onClose() } } return (

{t('collateral-funding-modal-heading', { remaining_hours: hoursTillNextCharge, })}

{t('whats-this')} {collateralFeeBanks.map((b) => { const { bank, balance } = b const dailyFee = ltvRatio * bank.collateralFeePerDay * balance return ( ) })}
{t('collateral')} {t('funding-rate')} Per Day
{t('daily-fee')}

{(ltvRatio * bank.collateralFeePerDay * 100).toFixed(4)}%

$
) } export default CollateralFeeWarningModal