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