content: // Licensed under the Apache License, Version 2.0 (the "License"); you may not
  // use this file except in compliance with the License. You may obtain a copy of
  // the License at
  //
  //   http://www.apache.org/licenses/LICENSE-2.0
  //
  // Unless required by applicable law or agreed to in writing, software
  // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  // License for the specific language governing permissions and limitations under
  // the License.
  
  import React from 'react';
  import PagingControls from './PagingControls.js';
  import PerPageSelector from './PerPageSelector.js';
  import TableControls from './TableControls';
  
  export default class PaginationFooter extends React.Component {
    constructor(props) {
      super(props);
    }
  
    getPageNumberText () {
      const { docs, pageStart, pageEnd } = this.props;
  
      if (docs.length === 0) {
        return <span>Showing 0 documents.</span>;
      }
  
      return <span>Showing document {pageStart} - {pageEnd}.</span>;
    }
  
    perPageChange (amount) {
      const { updatePerPageResults, fetchParams, queryOptionsParams } = this.props;
      updatePerPageResults(amount, fetchParams, queryOptionsParams);
    }
  
    nextClicked (event) {
      event.preventDefault();
  
      const { canShowNext, fetchParams, queryOptionsParams, paginateNext, perPage } = this.props;
      if (canShowNext) {
        paginateNext(fetchParams, queryOptionsParams, perPage);
      }
    }
  
    previousClicked (event) {
      event.preventDefault();
  
      const { canShowPrevious, fetchParams, queryOptionsParams, paginatePrevious, perPage } = this.props;
      if (canShowPrevious) {
        paginatePrevious(fetchParams, queryOptionsParams, perPage);
      }
    }
  
    render () {
      const {
        showPrioritizedEnabled,
        hasResults,
        prioritizedEnabled,
        displayedFields,
        perPage,
        canShowNext,
        canShowPrevious,
        toggleShowAllColumns
      } = this.props;
  
      return (
        <footer className="index-pagination pagination-footer">
          <PagingControls
            nextClicked={this.nextClicked.bind(this)}
            previousClicked={this.previousClicked.bind(this)}
            canShowNext={canShowNext}
            canShowPrevious={canShowPrevious} />
  
          <div className="footer-controls">
            <div className="page-controls">
              {showPrioritizedEnabled && hasResults ?
                <TableControls
                  prioritizedEnabled={prioritizedEnabled}
                  displayedFields={displayedFields}
                  toggleShowAllColumns={toggleShowAllColumns} /> : null}
            </div>
            <PerPageSelector perPageChange={this.perPageChange.bind(this)} perPage={perPage} />
            <div className="current-docs">
              {this.getPageNumberText()}
            </div>
          </div>
        </footer>
      );
    }
  };
  