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);
}
} 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);