'use no memo'; 'use client'; import { useCallback } from 'react'; import { type Table } from '@tanstack/react-table'; import { prefixes } from '@/utils/constants'; import { IconPageFirst, IconPageLast, IconPageLeft, IconPageRight } from '../icons'; interface PaginationToolsProps { id?: string; table: Table; paginationOptions: number[]; } export function PaginationTools({ id, table, paginationOptions }: PaginationToolsProps) { const handlePaginationOptionsChange = useCallback( (event: React.ChangeEvent) => { const perPage = Number(event.target.value); table.setPageSize(perPage); }, [table] ); return (
{`${table.getState().pagination.pageIndex * table.getState().pagination.pageSize + 1} - ${Math.min( table.getFilteredRowModel().rows.length, (table.getState().pagination.pageIndex + 1) * table.getState().pagination.pageSize )} из ${table.getFilteredRowModel().rows.length}`}
{ const page = event.target.value ? Number(event.target.value) - 1 : 0; if (page + 1 <= table.getPageCount()) { table.setPageIndex(page); } }} />
); }