import Link from "next/link" export default function Pagination({ pageCount, currentPage, url }) { let firstPage = false; let lastPage = false; let dotsPrevPage = false; let dotsNextPage = false; return (
{Array.from(Array(pageCount)).map((v, i) => { let page = i + 1; let rangePrevPage = currentPage - 2; let rangeNextPage = currentPage + 2; let PageComponent = {page}; let DotsComponent =
...
; if (pageCount == 7) { return PageComponent; } if (currentPage == 1) rangeNextPage += 3; if (currentPage == 2) rangeNextPage += 2; if (currentPage == 3) rangeNextPage += 1; if (currentPage == 4) rangePrevPage -= 1; if (currentPage == pageCount) rangePrevPage -= 3; if (currentPage == pageCount - 1) rangePrevPage -= 2; if (currentPage == pageCount - 2) rangePrevPage -= 1; if (currentPage == pageCount - 3) rangeNextPage += 1; if (page > rangePrevPage && page < rangeNextPage) { return PageComponent; } if (page == 1 && rangePrevPage >= 1 && !firstPage) { firstPage = true; return PageComponent; } if (page == pageCount && rangeNextPage <= pageCount && !lastPage) { lastPage = true; return PageComponent; } if (page > currentPage && (pageCount - currentPage) > 1 && !dotsNextPage) { dotsNextPage = true; return DotsComponent; } if (page < currentPage && (currentPage - 1) > 1 && !dotsPrevPage) { dotsPrevPage = true; return DotsComponent; } })}
) }