feat: add pagination state management to DataTable component

This commit is contained in:
Pattadon 2024-11-13 10:54:35 +07:00
parent 4f36f3f7fb
commit 52204c4a6f

View File

@ -176,6 +176,10 @@ export function DataTable({ data }: { data: ModalProps[] }) {
const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>([]); const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>([]);
const [columnVisibility, setColumnVisibility] = React.useState<VisibilityState>({}); const [columnVisibility, setColumnVisibility] = React.useState<VisibilityState>({});
const [rowSelection, setRowSelection] = React.useState({}); const [rowSelection, setRowSelection] = React.useState({});
const [pagination, setPagination] = React.useState({
pageIndex: 0, //initial page index
pageSize: 5, //default page size
});
const table = useReactTable({ const table = useReactTable({
data, data,
@ -187,15 +191,16 @@ export function DataTable({ data }: { data: ModalProps[] }) {
getSortedRowModel: getSortedRowModel(), getSortedRowModel: getSortedRowModel(),
getFilteredRowModel: getFilteredRowModel(), getFilteredRowModel: getFilteredRowModel(),
onColumnVisibilityChange: setColumnVisibility, onColumnVisibilityChange: setColumnVisibility,
onPaginationChange: setPagination,
onRowSelectionChange: setRowSelection, onRowSelectionChange: setRowSelection,
state: { state: {
sorting, sorting,
columnFilters, columnFilters,
columnVisibility, columnVisibility,
rowSelection, rowSelection,
pagination,
}, },
}); });
console.table(columnVisibility)
return ( return (
<div className="w-full"> <div className="w-full">