diff --git a/src/components/common/overall-layout/pagination.tsx b/src/components/common/overall-layout/pagination.tsx index 1473aa7..1a542d9 100644 --- a/src/components/common/overall-layout/pagination.tsx +++ b/src/components/common/overall-layout/pagination.tsx @@ -1,5 +1,12 @@ import React from "react"; import { Button } from "@/components/ui/button"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/components/ui/select"; import { ChevronLeft, ChevronRight, ArrowUp, ArrowDown } from "lucide-react"; interface PaginationProps { @@ -22,73 +29,87 @@ const Pagination: React.FC = ({ setPageSize, order, setOrder, + // defaultPageSize is intentionally accepted (call-site compat) but unused. defaultPageSize = 25, maxPageSize = 100, stepSize = 25, onLastPage, }) => { + const pageSizeOptions = Array.from( + { length: maxPageSize / stepSize }, + (_, i) => (i + 1) * stepSize, + ).filter((size) => size <= maxPageSize); + return ( -
- {/* Sorting Toggle */} +
+ {/* Sort order */} - {/* Page Size Selector */} - { + setPageSize(Number(value)); setCurrentPage(1); // Reset to first page when page size changes }} > - {Array.from( - { length: maxPageSize / stepSize }, - (_, i) => (i + 1) * stepSize, - ) - .filter((size) => size <= maxPageSize) - .map((size) => ( - + + + + + {pageSizeOptions.map((size) => ( + + {size} / page + ))} - + + - {/* Pagination Controls */} -
+ {/* Navigation */} +
- Page {currentPage} + + Page {currentPage} +
); }; -export default Pagination; \ No newline at end of file +export default Pagination;