diff --git a/src/components/PaginationUi.tsx b/src/components/PaginationUi.tsx index 106e3f0..a73964f 100644 --- a/src/components/PaginationUi.tsx +++ b/src/components/PaginationUi.tsx @@ -29,22 +29,25 @@ const PaginationUi: FC = ({ pager, onPageChange }) => { pageNumbers.push(i); } } else { - if (pager.page > 3) { + const startPage = Math.max(1, pager.page - 2); + const endPage = Math.min(pager.totalPages, pager.page + 2); + + // اگر صفحه شروع > 1 باشد، 1 و ellipsis اضافه کن + if (startPage > 1) { pageNumbers.push(1); - if (pager.page > 4) { + if (startPage > 2) { pageNumbers.push('ellipsis'); } } - const start = Math.max(2, pager.page - 1); - const end = Math.min(pager.totalPages - 1, pager.page + 1); - - for (let i = start; i <= end; i++) { + // صفحات میانی + for (let i = startPage; i <= endPage; i++) { pageNumbers.push(i); } - if (pager.page < pager.totalPages - 2) { - if (pager.page < pager.totalPages - 3) { + // اگر صفحه پایان < totalPages باشد، ellipsis و صفحه آخر اضافه کن + if (endPage < pager.totalPages) { + if (endPage < pager.totalPages - 1) { pageNumbers.push('ellipsis'); } pageNumbers.push(pager.totalPages);