fix: limit pagination items to 5
This commit is contained in:
parent
ae24ae9ef2
commit
ca2fe12101
1 changed files with 23 additions and 10 deletions
|
@ -56,6 +56,17 @@ const BlogCards: React.FC<BlogCardInterface> = async (props) => {
|
||||||
|
|
||||||
const totalPages = Math.ceil(totalPosts / cardsPerPage);
|
const totalPages = Math.ceil(totalPosts / cardsPerPage);
|
||||||
|
|
||||||
|
let begPage = currentPage - 2;
|
||||||
|
let endPage = currentPage + 2;
|
||||||
|
if (endPage > totalPages) {
|
||||||
|
begPage -= endPage - totalPages;
|
||||||
|
endPage = totalPages;
|
||||||
|
}
|
||||||
|
if (begPage < 1) {
|
||||||
|
endPage += 1 - begPage;
|
||||||
|
begPage = 1;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<section className="grid max-w-6xl gap-4 mx-auto sm:grid-cols-2 lg:grid-cols-3">
|
<section className="grid max-w-6xl gap-4 mx-auto sm:grid-cols-2 lg:grid-cols-3">
|
||||||
|
@ -120,16 +131,18 @@ const BlogCards: React.FC<BlogCardInterface> = async (props) => {
|
||||||
<PaginationPrevious href={`/blog/page/${currentPage - 1}`} />
|
<PaginationPrevious href={`/blog/page/${currentPage - 1}`} />
|
||||||
)}
|
)}
|
||||||
</PaginationItem>
|
</PaginationItem>
|
||||||
{Array.from({ length: totalPages }).map((_, i) => (
|
{Array.from({ length: totalPages > 5 ? 5 : totalPages }).map(
|
||||||
|
(_, i) => (
|
||||||
<PaginationItem key={i}>
|
<PaginationItem key={i}>
|
||||||
<PaginationLink
|
<PaginationLink
|
||||||
href={`/blog/page/${i + 1}`}
|
href={`/blog/page/${begPage + i}`}
|
||||||
isActive={currentPage === i + 1}
|
isActive={currentPage === begPage + i}
|
||||||
>
|
>
|
||||||
{i + 1}
|
{begPage + i}
|
||||||
</PaginationLink>
|
</PaginationLink>
|
||||||
</PaginationItem>
|
</PaginationItem>
|
||||||
))}
|
)
|
||||||
|
)}
|
||||||
<PaginationItem>
|
<PaginationItem>
|
||||||
{currentPage < totalPages && (
|
{currentPage < totalPages && (
|
||||||
<PaginationNext href={`/blog/page/${currentPage + 1}`} />
|
<PaginationNext href={`/blog/page/${currentPage + 1}`} />
|
||||||
|
|
Loading…
Reference in a new issue