import Link from "../Link/Link" const Pagination = ({ pageCount, currentPage, url, className }) => { let firstPage = false let lastPage = false let dotsPrevPage = false let dotsNextPage = false let urlParameterPrefix = url.includes('?') ? '&' : '?' return pageCount > 1 && (
{ 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 } }) }
) } Pagination.defaultProps = { className: '' } export default Pagination