KyivKrishnaAcademy/ved_akadem_students

View on GitHub
client/app/bundles/ScheduleList/containers/Paginate.jsx

Summary

Maintainability
A
0 mins
Test Coverage
import React from 'react';
import ReactPaginate from 'react-paginate-component';

export default class Paginate extends ReactPaginate {
  static propTypes = {
    max: React.PropTypes.number.isRequired,
    onChange: React.PropTypes.func.isRequired,
    maxVisible: React.PropTypes.number,
    versionedNullifier: React.PropTypes.any,
  };

  componentWillReceiveProps(nextProps) {
    if (nextProps.versionedNullifier !== this.props.versionedNullifier) {
      this.setState({ currentPage: 1 });
    }
  }

  componentDidUpdate(prevProps, prevState) {
    const isSameVersion = prevProps.versionedNullifier === this.props.versionedNullifier;

    if (prevState.currentPage !== this.state.currentPage && isSameVersion) {
      this.props.onChange(this.state.currentPage);
    }
  }
}