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;