// PaginationBar.tsx import type { UseDataControlReturn } from 'hooks/useDataControl'; import { useMemo } from 'react'; import { Button } from '@/components/ui/button'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; type PaginationBarProps = { dataManager: UseDataControlReturn; }; export const PaginationBar = (props: PaginationBarProps) => { const { currentPage, pageCount, changePage, pageSize, setPageSize } = props.dataManager; const pageSizeOptions = useMemo(() => [5, 10, 15, 20], []); const handlePageSizeChange = (value: string) => { const next = Number(value); if (!Number.isFinite(next) || next <= 0) return; setPageSize(next); changePage(1); }; const buttonClass = 'h-8 w-8 p-0 hover:bg-white text-muted-foreground disabled:opacity-100 disabled:pointer-events-none'; return (
{/* LEFT */}
Showing page {currentPage} of {pageCount} p {currentPage}/{pageCount}
{/* RIGHT */}
); };