All files / client/components/PageHistory PageRevisionList.tsx

0% Statements 0/10
0% Branches 0/4
0% Functions 0/2
0% Lines 0/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44                                                                                       
import React from 'react'
import Revision from './Revision'
import RevisionDiff from './RevisionDiff'
import { Revision as RevisionType } from 'client/types/crowi'
 
interface Props {
  revisions: RevisionType[]
  diffOpened: { [id: string]: boolean }
  onDiffOpenClicked: Function
}
 
export default class PageRevisionList extends React.Component<Props> {
  render() {
    const revisions = this.props.revisions
    const revisionCount = this.props.revisions.length
 
    const revisionList = this.props.revisions.map((revision, idx) => {
      const revisionId = revision._id
      const revisionDiffOpened = this.props.diffOpened[revisionId] || false
 
      let previousRevision
      if (idx + 1 < revisionCount) {
        previousRevision = revisions[idx + 1]
      } else {
        previousRevision = revision // if it is the first revision, show full text as diff text
      }
 
      return (
        <div className="revision-hisory-outer" key={'revision-history-' + revisionId}>
          <Revision revision={revision} onDiffOpenClicked={this.props.onDiffOpenClicked} key={'revision-history-rev-' + revisionId} />
          <RevisionDiff
            revisionDiffOpened={revisionDiffOpened}
            currentRevision={revision}
            previousRevision={previousRevision}
            key={'revision-diff-' + revisionId}
          />
        </div>
      )
    })
 
    return <div className="revision-history-list">{revisionList}</div>
  }
}