import React from 'react'; import PropTypes from 'prop-types'; import { withTranslation } from 'react-i18next'; import Revision from './Revision'; import RevisionDiff from './RevisionDiff'; class PageRevisionList extends React.Component { constructor(props) { super(props); this.state = { isCompactNodiffRevisions: true, }; this.cbCompactizeChangeHandler = this.cbCompactizeChangeHandler.bind(this); } cbCompactizeChangeHandler() { this.setState({ isCompactNodiffRevisions: !this.state.isCompactNodiffRevisions }); } /** * render a row (Revision component and RevisionDiff component) * @param {Revison} revision * @param {Revision} previousRevision * @param {boolean} hasDiff whether revision has difference to previousRevision * @param {boolean} isContiguousNodiff true if the current 'hasDiff' and one of previous row is both false */ renderRow(revision, previousRevision, hasDiff, isContiguousNodiff) { const revisionId = revision._id; const revisionDiffOpened = this.props.diffOpened[revisionId] || false; const classNames = ['revision-history-outer']; if (isContiguousNodiff) { classNames.push('revision-history-outer-contiguous-nodiff'); } return (