From 05b555e07ed14d8c925dcfed297c7f71bfa99351 Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Wed, 15 Oct 2025 12:46:36 +0330 Subject: [PATCH] =?UTF-8?q?fix:=20=D9=86=D9=85=D8=A7=DB=8C=D8=B4=20=D8=B5?= =?UTF-8?q?=D8=AD=DB=8C=D8=AD=20=D8=B4=D9=85=D8=A7=D8=B1=D9=87=20=D8=B5?= =?UTF-8?q?=D9=81=D8=AD=D9=87=20=D9=81=D8=B9=D9=84=DB=8C=20=D8=AF=D8=B1=20?= =?UTF-8?q?pagination?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - اصلاح منطق نمایش صفحات در کامپوننت PaginationUi - همیشه شماره صفحه فعلی نمایش داده می‌شود - بهبود UX pagination با نمایش ۵ صفحه در وسط --- src/components/PaginationUi.tsx | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) 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);