/* eslint-disable react/no-danger */ import React from 'react'; import { createPatch } from 'diff'; import { html } from 'diff2html'; import PropTypes from 'prop-types'; import { useTranslation } from 'react-i18next'; import UserDate from '../User/UserDate'; class RevisionDiff extends React.Component { render() { const { t } = this.props; const currentRevision = this.props.currentRevision; const previousRevision = this.props.previousRevision; const revisionDiffOpened = this.props.revisionDiffOpened; let diffViewHTML = ''; if (currentRevision.body && previousRevision.body && revisionDiffOpened) { let previousText = previousRevision.body; // comparing ObjectId // eslint-disable-next-line eqeqeq if (currentRevision._id == previousRevision._id) { previousText = ''; } const patch = createPatch( currentRevision.pageId, // currentRevision.path is DEPRECATED previousText, currentRevision.body, ); const option = { drawFileList: false, outputFormat: 'side-by-side', }; diffViewHTML = html(patch, option); } const diffView = { __html: diffViewHTML }; return ( <>
> ); } } RevisionDiff.propTypes = { t: PropTypes.func.isRequired, currentRevision: PropTypes.object.isRequired, previousRevision: PropTypes.object.isRequired, revisionDiffOpened: PropTypes.bool.isRequired, }; const RevisionDiffWrapperFC = (props) => { const { t } = useTranslation(); return