'use client'; // @/app/component/pagination.tsx import React from 'react'; import Styles from '../styles/common.module.scss'; interface PaginationProps { total: number; page?: number; perPage?: number; onChange: (page: number) => void; } export default function Pagination({ total, page = 1, perPage = 10, onChange }: PaginationProps) { const totalPage = (Math.ceil(total / perPage)); const handlePrevious = () => { if (page > 1) { onChange(page - 1); } }; const handleNext = () => { if (page < totalPage) { onChange(page + 1); } }; if (page > totalPage) { return; } return (
{totalPage > 1 && ( )} {totalPage > 7 ? ( <> {page > 3 && } {page > 4 && ...} {Array.from({ length: 5 }, (_, index) => { const pageNumber = page - 2 + index; if (pageNumber > 0 && pageNumber <= totalPage) { return ( ); } return null; })} {page < totalPage - 3 && ...} {page < totalPage - 2 && } ) : ( Array.from({ length: totalPage }, (_, index) => ( )) )} {totalPage > 1 && ( )}
); }