mirror of
https://github.com/shlinkio/shlink-web-client.git
synced 2025-05-01 17:30:33 +03:00
Created helper functions to determine the key and if a page is disabled on a progressive paginator
This commit is contained in:
parent
bab3b252c1
commit
d7da8521ce
3 changed files with 13 additions and 9 deletions
src
|
@ -1,7 +1,7 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Pagination, PaginationItem, PaginationLink } from 'reactstrap';
|
import { Pagination, PaginationItem, PaginationLink } from 'reactstrap';
|
||||||
import { ELLIPSIS, progressivePagination } from '../utils/helpers/pagination';
|
import { isPageDisabled, keyForPage, progressivePagination } from '../utils/helpers/pagination';
|
||||||
import './SimplePaginator.scss';
|
import './SimplePaginator.scss';
|
||||||
|
|
||||||
const propTypes = {
|
const propTypes = {
|
||||||
|
@ -22,13 +22,13 @@ const SimplePaginator = ({ pagesCount, currentPage, setCurrentPage }) => {
|
||||||
<PaginationItem disabled={currentPage <= 1}>
|
<PaginationItem disabled={currentPage <= 1}>
|
||||||
<PaginationLink previous tag="span" onClick={onClick(currentPage - 1)} />
|
<PaginationLink previous tag="span" onClick={onClick(currentPage - 1)} />
|
||||||
</PaginationItem>
|
</PaginationItem>
|
||||||
{progressivePagination(currentPage, pagesCount).map((page, index) => (
|
{progressivePagination(currentPage, pagesCount).map((pageNumber, index) => (
|
||||||
<PaginationItem
|
<PaginationItem
|
||||||
key={page !== ELLIPSIS ? page : `${page}_${index}`}
|
key={keyForPage(pageNumber, index)}
|
||||||
active={page === currentPage}
|
disabled={isPageDisabled(pageNumber)}
|
||||||
disabled={page === ELLIPSIS}
|
active={currentPage === pageNumber}
|
||||||
>
|
>
|
||||||
<PaginationLink tag="span" onClick={onClick(page)}>{page}</PaginationLink>
|
<PaginationLink tag="span" onClick={onClick(pageNumber)}>{pageNumber}</PaginationLink>
|
||||||
</PaginationItem>
|
</PaginationItem>
|
||||||
))}
|
))}
|
||||||
<PaginationItem disabled={currentPage >= pagesCount}>
|
<PaginationItem disabled={currentPage >= pagesCount}>
|
||||||
|
|
|
@ -2,7 +2,7 @@ import React from 'react';
|
||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
import { Pagination, PaginationItem, PaginationLink } from 'reactstrap';
|
import { Pagination, PaginationItem, PaginationLink } from 'reactstrap';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { ELLIPSIS, progressivePagination } from '../utils/helpers/pagination';
|
import { isPageDisabled, keyForPage, progressivePagination } from '../utils/helpers/pagination';
|
||||||
|
|
||||||
const propTypes = {
|
const propTypes = {
|
||||||
serverId: PropTypes.string.isRequired,
|
serverId: PropTypes.string.isRequired,
|
||||||
|
@ -22,9 +22,9 @@ const Paginator = ({ paginator = {}, serverId }) => {
|
||||||
const renderPages = () =>
|
const renderPages = () =>
|
||||||
progressivePagination(currentPage, pagesCount).map((pageNumber, index) => (
|
progressivePagination(currentPage, pagesCount).map((pageNumber, index) => (
|
||||||
<PaginationItem
|
<PaginationItem
|
||||||
key={pageNumber !== ELLIPSIS ? pageNumber : `${pageNumber}_${index}`}
|
key={keyForPage(pageNumber, index)}
|
||||||
|
disabled={isPageDisabled(pageNumber)}
|
||||||
active={currentPage === pageNumber}
|
active={currentPage === pageNumber}
|
||||||
disabled={pageNumber === ELLIPSIS}
|
|
||||||
>
|
>
|
||||||
<PaginationLink
|
<PaginationLink
|
||||||
tag={Link}
|
tag={Link}
|
||||||
|
|
|
@ -21,3 +21,7 @@ export const progressivePagination = (currentPage, pageCount) => {
|
||||||
|
|
||||||
return pages;
|
return pages;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const keyForPage = (pageNumber, index) => pageNumber !== ELLIPSIS ? pageNumber : `${pageNumber}_${index}`;
|
||||||
|
|
||||||
|
export const isPageDisabled = (pageNumber) => pageNumber === ELLIPSIS;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue