import classNames from 'classnames'; import PropTypes from 'prop-types'; import React, { Component } from 'react'; import SelectInput from 'Components/Form/SelectInput'; import Icon from 'Components/Icon'; import Link from 'Components/Link/Link'; import LoadingIndicator from 'Components/Loading/LoadingIndicator'; import { icons } from 'Helpers/Props'; import styles from './TablePager.css'; class TablePager extends Component { // // Lifecycle constructor(props, context) { super(props, context); this.state = { isShowingPageSelect: false }; } // // Listeners onOpenPageSelectClick = () => { this.setState({ isShowingPageSelect: true }); }; onPageSelect = ({ value: page }) => { this.setState({ isShowingPageSelect: false }); this.props.onPageSelect(parseInt(page)); }; onPageSelectBlur = () => { this.setState({ isShowingPageSelect: false }); }; // // Render render() { const { page, totalPages, totalRecords, isFetching, onFirstPagePress, onPreviousPagePress, onNextPagePress, onLastPagePress } = this.props; const isShowingPageSelect = this.state.isShowingPageSelect; const pages = Array.from(new Array(totalPages), (x, i) => { const pageNumber = i + 1; return { key: pageNumber, value: pageNumber }; }); if (!page) { return null; } const isFirstPage = page === 1; const isLastPage = page === totalPages; return (