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