import { ColumnDef, flexRender, getCoreRowModel, getSortedRowModel, Row, SortingState, useReactTable, } from '@tanstack/react-table' import classNames from 'classnames' import React from 'react' import VaultExpanded from 'components/Earn/Farm/VaultExpanded' import { VaultRow } from 'components/Earn/Farm/VaultRow' import { SortAsc, SortDesc, SortNone } from 'components/Icons' import Text from '../Text' interface Props { columns: ColumnDef[] data: unknown[] initialSorting: SortingState } export default function Table(props: Props) { const [sorting, setSorting] = React.useState(props.initialSorting) const table = useReactTable({ data: props.data, columns: props.columns, state: { sorting, }, onSortingChange: setSorting, getCoreRowModel: getCoreRowModel(), getSortedRowModel: getSortedRowModel(), }) return ( {table.getHeaderGroups().map((headerGroup) => ( {headerGroup.headers.map((header) => { return ( ) })} ))} {table.getRowModel().rows.map((row) => { if (row.getIsExpanded()) { return ( {getExpandedRowModel('farm', row, table.resetExpanded)} ) } return getRowModel('farm', row, table.resetExpanded) })}
{header.column.getCanSort() ? { asc: , desc: , false: , }[header.column.getIsSorted() as string] ?? null : null} {flexRender(header.column.columnDef.header, header.getContext())}
) } function getExpandedRowModel( type: 'farm', row: unknown, resetExpanded: (defaultState?: boolean | undefined) => void, ) { switch (type) { case 'farm': return ( <> } resetExpanded={resetExpanded} /> } resetExpanded={resetExpanded} /> ) } } function getRowModel( type: 'farm', row: Row, resetExpanded: (defaultState?: boolean | undefined) => void, ) { return ( ).original.address} row={row as Row} resetExpanded={resetExpanded} /> ) }