From 1e59e865f2f00394e88b4b2aa99978234622f0db Mon Sep 17 00:00:00 2001 From: Stephanie Dietz <49788645+StephDietz@users.noreply.github.com> Date: Mon, 9 Oct 2023 04:43:26 -0500 Subject: [PATCH] Truncate pagination (#200) * fix pagination bug * fix hover bug on active page --- .../15-final/app/ui/invoices/pagination.tsx | 45 ++++++++++++++++--- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/dashboard/15-final/app/ui/invoices/pagination.tsx b/dashboard/15-final/app/ui/invoices/pagination.tsx index 044a854..5af0925 100644 --- a/dashboard/15-final/app/ui/invoices/pagination.tsx +++ b/dashboard/15-final/app/ui/invoices/pagination.tsx @@ -19,18 +19,38 @@ export default function Pagination({ const PreviousPageTag = Link; const NextPageTag = Link; - const createPageUrl = (pageNumber: number) => { + const createPageUrl = (pageNumber: number | string) => { const params = new URLSearchParams(searchParams); params.set('page', pageNumber.toString()); return `${pathname}?${params.toString()}`; }; + let pagesToShow = []; + + if (totalPages <= 7) { + pagesToShow = allPages; + } else if (currentPage <= 3) { + pagesToShow = [1, 2, 3, '...', totalPages - 1, totalPages]; + } else if (currentPage >= totalPages - 2) { + pagesToShow = [1, 2, '...', totalPages - 2, totalPages - 1, totalPages]; + } else { + pagesToShow = [ + 1, + '...', + currentPage - 1, + currentPage, + currentPage + 1, + '...', + totalPages, + ]; + } + return (