import { ArrowUpLeftIcon, ChevronDownIcon, QuestionMarkCircleIcon, } from '@heroicons/react/20/solid' import { useTranslation } from 'next-i18next' import Image from 'next/legacy/image' import { useCallback, useState } from 'react' import { useViewport } from '../../hooks/useViewport' import { formatNumericValue } from '../../utils/numbers' import { breakpoints } from '../../utils/theme' import Button, { IconButton } from '../shared/Button' import Tooltip from '@components/shared/Tooltip' import useJupiterMints from 'hooks/useJupiterMints' import { Table, Td, Th, TrBody, TrHead } from '@components/shared/TableElements' import useMangoGroup from 'hooks/useMangoGroup' import BorrowRepayModal from '@components/modals/BorrowRepayModal' import BankAmountWithValue from '@components/shared/BankAmountWithValue' import useBanksWithBalances from 'hooks/useBanksWithBalances' import { getAvailableToBorrow } from './YourBorrowsTable' import { Disclosure, Transition } from '@headlessui/react' const AssetsBorrowsTable = () => { const { t } = useTranslation(['common', 'token']) const [showBorrowModal, setShowBorrowModal] = useState(false) const [selectedToken, setSelectedToken] = useState('') const { group } = useMangoGroup() const { mangoTokens } = useJupiterMints() const { width } = useViewport() const showTableView = width ? width > breakpoints.md : false const banks = useBanksWithBalances() const handleShowBorrowModal = useCallback((token: string) => { setSelectedToken(token) setShowBorrowModal(true) }, []) return ( <> {showTableView ? ( {banks.map((b) => { const bank = b.bank let logoURI if (mangoTokens?.length) { logoURI = mangoTokens.find( (t) => t.address === bank.mint.toString() )?.logoURI } const borrows = bank.uiBorrows() const available = group ? getAvailableToBorrow(b, group) : 0 return ( ) })}
{t('token')} {t('total-borrows')}
{t('available')}
{t('rate')}
{logoURI ? ( ) : ( )}

{bank.name}

0 ? available : 0} bank={bank} stacked />

{formatNumericValue(bank.getBorrowRateUi(), 2)}%

handleShowBorrowModal(bank.name)} size="small" >
) : (
{banks.map((b) => { const bank = b.bank let logoURI: string | undefined if (mangoTokens?.length) { logoURI = mangoTokens.find( (t) => t.address === bank.mint.toString() )?.logoURI } const available = group ? getAvailableToBorrow(b, group) : 0 return ( {({ open }) => ( <>
{logoURI ? ( ) : ( )}

{bank.name}

{t('rate')}

{formatNumericValue(bank.getBorrowRateUi(), 2)}%

{t('available')}

0 ? available : 0} bank={bank} />
)}
) })}
)} {showBorrowModal ? ( setShowBorrowModal(false)} token={selectedToken} /> ) : null} ) } export default AssetsBorrowsTable