packages/issue-dashboard-widgets/widgets/youtrack-activities-widget/app/content-text-activity.js (30 lines of code) (raw):

import React from 'react'; import PropTypes from 'prop-types'; import ContentDefaultActivity from './content-default-activity'; import CollapsibleBlock from './components/collapsible-block'; import './style/activities-widget.css'; import diff from './diff'; class ContentTextActivity extends ContentDefaultActivity { static propTypes = { fieldName: PropTypes.string }; constructor(props) { super(props); } // eslint-disable-next-line react/display-name renderContent = activity => { const fieldName = this.props.fieldName || activity.field.presentation; const formattedDiff = diff.format('wdiff-html', diff(activity.removed || '', activity.added || '') ); return ( <div className="aw__activity__text"> <CollapsibleBlock fieldName={fieldName}> <div className="aw__activity__text__value"> <span dangerouslySetInnerHTML={{__html: formattedDiff}}/> </div> </CollapsibleBlock> </div> ); }; } export default ContentTextActivity;