import { TableBody, TableRow, TableHead } from '@mui/material'; import { Table } from 'component/common/Table/Table/Table'; import { Header, type Table as TableType, flexRender, } from '@tanstack/react-table'; import { TableCell } from '../TableCell/TableCell'; import { CellSortable } from '../SortableTableHeader/CellSortable/CellSortable'; import { StickyPaginationBar } from 'component/common/Table/StickyPaginationBar/StickyPaginationBar'; import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender'; const HeaderCell = (header: Header) => { const column = header.column; const isDesc = column.getIsSorted() === 'desc'; const align = column.columnDef.meta?.align || undefined; const width = column.columnDef.meta?.width || undefined; return ( column.toggleSorting()} styles={{ borderRadius: '0px', paddingTop: 0, paddingBottom: 0, width, }} > {header.isPlaceholder ? null : flexRender(column.columnDef.header, header.getContext())} ); }; /** * Use with react-table v8 */ export const PaginatedTable = ({ totalItems, tableInstance, }: { tableInstance: TableType; totalItems?: number; }) => { const { pagination } = tableInstance.getState(); return ( <> {tableInstance.getHeaderGroups().map((headerGroup) => ( {headerGroup.headers.map((header) => ( ))} ))} {tableInstance.getRowModel().rows.map((row) => ( {row.getVisibleCells().map((cell) => ( {flexRender( cell.column.columnDef.cell, cell.getContext(), )} ))} ))}
0} show={ tableInstance.setPagination({ pageIndex: pagination.pageIndex + 1, pageSize: pagination.pageSize, }) } fetchPrevPage={() => tableInstance.setPagination({ pageIndex: pagination.pageIndex - 1, pageSize: pagination.pageSize, }) } setPageLimit={(pageSize) => tableInstance.setPagination({ pageIndex: 0, pageSize, }) } /> } /> ); };