Dataset/JS/ReactBookmarks/pager.js (52 lines of code) (raw):
import React, { PropTypes } from 'react';
import * as bs from 'react-bootstrap';
import Icon from './icon';
export const Pager = props => {
const { page, onSelectPage } = props;
if (!page || !onSelectPage || page.numPages < 2) {
return <span></span>;
}
const handleFirstPage = () => {
onSelectPage(1);
};
const handleLastPage = () => {
onSelectPage(props.page.numPages);
};
const handlePreviousPage = () => {
onSelectPage(props.page.page - 1);
};
const handleNextPage = () => {
onSelectPage(props.page.page + 1);
};
const isFirstPage = page.page <= 1;
const isLastPage = page.page >= page.numPages;
return (
<bs.Pager>
<bs.PageItem
previous
onSelect={handleFirstPage}
disabled={isFirstPage}
><Icon icon="fast-backward"/></bs.PageItem>
<bs.PageItem
previous
onSelect={handlePreviousPage}
disabled={isFirstPage}
><Icon icon="backward"/></bs.PageItem>
<bs.PageItem
next
onSelect={handleLastPage}
disabled={isLastPage}
><Icon icon="fast-forward"/></bs.PageItem>
<bs.PageItem
next
onSelect={handleNextPage}
disabled={isLastPage}
><Icon icon="forward"/></bs.PageItem>
</bs.Pager>
);
};
Pager.propTypes = {
onSelectPage: PropTypes.func,
page: PropTypes.object,
};
export default Pager;