fix: نمایش صحیح شماره صفحه فعلی در pagination
- اصلاح منطق نمایش صفحات در کامپوننت PaginationUi - همیشه شماره صفحه فعلی نمایش داده میشود - بهبود UX pagination با نمایش ۵ صفحه در وسط
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user