Rev 11938 | Rev 15501 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React from 'react'import styled from 'styled-components'import { Pagination } from 'react-bootstrap'const StyledDefaultPagination = styled(Pagination)`display: flex;justify-content: center;align-items: center;flex-direction: inherit !important;position: inherit !important;transform: inherit !important;`const StyledRowPagination = styled(Pagination)`display: flex;justify-content: center;align-items: center;flex-direction: initial !important;position: inherit !important;transform: inherit !important;`const PaginationComponent = ({ pages = 1, currentActivePage = 1, onChangePage, isRow = true }) => {const currentPage = currentActivePageconst StyledPagination = isRow ? StyledRowPagination : StyledDefaultPagination// const pages = 10;const nextPages = []const previousPages = []const maxPages = 5 > pages ? pages : 5const generateCurrentPages = () => {let isPreviousOrNext = falselet pagesCont = 1let nextPage = currentPage + 1let previousPage = currentPage - 1do {if (isPreviousOrNext) {// nextPageif (nextPage <= pages) {nextPages.push(nextPage)nextPage++pagesCont++}isPreviousOrNext = !isPreviousOrNext} else {// previousPageif (previousPage > 0) {previousPages.unshift(previousPage)previousPage--pagesCont++}isPreviousOrNext = !isPreviousOrNext}} while (pagesCont < maxPages)}const previousPageHandler = () => {onChangePage(currentPage - 1)}const nextPageHandler = () => {onChangePage(currentPage + 1)}const onClickHandler = (pageToNavigate) => {onChangePage(pageToNavigate)}generateCurrentPages()return (pages > 1&&<StyledPagination><Pagination.Prevdisabled={currentPage - 1 <= 0}onClick={previousPageHandler}/>{previousPages.map((previousPage) =><Pagination.Itemkey={previousPage}onClick={() => onClickHandler(previousPage)}>{previousPage}</Pagination.Item>)}<Pagination.Item active>{currentPage}</Pagination.Item>{nextPages.map((nextPage) =><Pagination.Itemkey={nextPage}onClick={() => onClickHandler(nextPage)}>{nextPage}</Pagination.Item>)}<Pagination.NextonClick={nextPageHandler}disabled={currentPage + 1 > pages}/></StyledPagination>)}export default PaginationComponent