import { PaginationState, useReactTable, getCoreRowModel, getPaginationRowModel, flexRender, ColumnDef, Table, } from '@tanstack/react-table'; import { Pagination } from '../../molecules'; import React from 'react'; interface DataTableProps { data: T[]; columns: ColumnDef[]; table: Table; pageSize?: number; } export const DataTable = ({ data, columns, pageSize = 9, }: DataTableProps) => { const [pagination, setPagination] = React.useState({ pageIndex: 0, pageSize, }); const table = useReactTable({ data, columns, state: { pagination, }, getCoreRowModel: getCoreRowModel(), getPaginationRowModel: getPaginationRowModel(), onPaginationChange: setPagination, }); return (
{table.getHeaderGroups().map((headerGroup) => ( {headerGroup.headers.map((header) => ( ))} ))} {table.getRowModel().rows.map((row) => ( {row.getVisibleCells().map((cell, index) => ( ))} ))}
{header.isPlaceholder ? null : flexRender( header.column.columnDef.header, header.getContext() )}
{flexRender(cell.column.columnDef.cell, cell.getContext())}
); }; export default DataTable;