fix: نمایش صحیح شماره صفحه فعلی در pagination

- اصلاح منطق نمایش صفحات در کامپوننت PaginationUi
- همیشه شماره صفحه فعلی نمایش داده می‌شود
- بهبود UX pagination با نمایش ۵ صفحه در وسط
This commit is contained in:
hamid zarghami
2025-10-15 12:46:36 +03:30
parent 587a2f30b1
commit 05b555e07e
+11 -8
View File
@@ -29,22 +29,25 @@ const PaginationUi: FC<PaginationUiProps> = ({ pager, onPageChange }) => {
pageNumbers.push(i); pageNumbers.push(i);
} }
} else { } 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); pageNumbers.push(1);
if (pager.page > 4) { if (startPage > 2) {
pageNumbers.push('ellipsis'); pageNumbers.push('ellipsis');
} }
} }
const start = Math.max(2, pager.page - 1); // صفحات میانی
const end = Math.min(pager.totalPages - 1, pager.page + 1); for (let i = startPage; i <= endPage; i++) {
for (let i = start; i <= end; i++) {
pageNumbers.push(i); pageNumbers.push(i);
} }
if (pager.page < pager.totalPages - 2) { // اگر صفحه پایان < totalPages باشد، ellipsis و صفحه آخر اضافه کن
if (pager.page < pager.totalPages - 3) { if (endPage < pager.totalPages) {
if (endPage < pager.totalPages - 1) {
pageNumbers.push('ellipsis'); pageNumbers.push('ellipsis');
} }
pageNumbers.push(pager.totalPages); pageNumbers.push(pager.totalPages);