import { ColumnDef, Row, Table } from '@tanstack/react-table' import { useCallback, useMemo } from 'react' import AssetImage from 'components/AssetImage' import LendingActionButtons from 'components/Earn/Lend/LendingActionButtons' import { FormattedNumber } from 'components/FormattedNumber' import { ChevronDown, ChevronUp } from 'components/Icons' import AssetListTable from 'components/MarketAssetTable' import MarketAssetTableRow from 'components/MarketAssetTable/MarketAssetTableRow' import MarketDetails from 'components/MarketAssetTable/MarketDetails' import TitleAndSubCell from 'components/TitleAndSubCell' import { convertLiquidityRateToAPR, demagnify } from 'utils/formatters' import { BN } from 'utils/helpers' import { BN_ZERO } from '../../../constants/math' import AmountAndValue from '../../AmountAndValue' interface Props { title: string data: LendingMarketTableData[] } export default function LendingMarketsTable(props: Props) { const { title, data } = props const shouldShowAccountDeposit = !!data[0]?.accountLentValue const rowRenderer = useCallback( (row: Row, table: Table) => { return ( } expandedDetails={} /> ) }, [], ) const columns = useMemo[]>( () => [ { accessorKey: 'asset.name', header: 'Asset', id: 'symbol', cell: ({ row }) => { const asset = row.original.asset return (
) }, }, ...(shouldShowAccountDeposit ? [ { accessorKey: 'accountDepositValue', header: 'Deposited', cell: ({ row }) => { const amount = row.original.accountLentAmount return ( ) }, } as ColumnDef, ] : []), { accessorKey: 'marketLiquidityRate', header: 'APR', cell: ({ row }) => { return ( ) }, }, { accessorKey: 'marketDepositCap', header: 'Depo. Cap', cell: ({ row }) => { const { marketDepositCap, marketDepositAmount, asset } = row.original const remainingCap = row.original.marketDepositCap.minus( demagnify(marketDepositAmount, asset), ) return ( } sub={ } /> ) }, }, { accessorKey: 'manage', enableSorting: false, header: 'Manage', cell: ({ row }) => (
{row.getIsExpanded() ? : }
), }, ], [shouldShowAccountDeposit], ) return }