ES6 Plato on Github
Report Home
Summary Display
components/Logbook/EventVersionPanel.js
Maintainability
68.71
Lines of code
84
Difficulty
23.40
Estimated Errors
0.46
Function weight
By Complexity
By SLOC
import React from 'react' import PropTypes from 'prop-types'; import { Grid, Row, Col, Panel } from 'react-bootstrap' import { ORIGINAL_EVENT_VERSION, LATEST_EVENT_VERSION, MIDDLE_EVENT_VERSION } from '../../constants/EventTypes'; import { getEventHistoryCreationDate, getContentAsHTML } from '../../helpers/EventHelpers'; import TagListInLine from './Tag/TagListInLine'; /* * React component which renders a panel showing the provided event details using version context provided by the version property. */ class EventVersionPanel extends React.Component { constructor(props) { super(props); this.getEventHeaderTextByVersion = this.getEventHeaderTextByVersion.bind(this); this.getEventFooterTextByVersion = this.getEventFooterTextByVersion.bind(this); } render() { let { event, version } = this.props; return ( <div className='margin-bottom-10'> <Panel> <Panel.Heading> <b> {this.getEventHeaderTextByVersion(event, version)} </b> </Panel.Heading> <Panel.Body> <Row> <Col xs={12}> <div dangerouslySetInnerHTML={{ __html: getContentAsHTML(event.content) }} /> </Col> </Row> </Panel.Body> <Panel.Footer> <Grid fluid> <Row> <Col xs={12} md={6}> <span className='padding-left-5' style={{ fontStyle: 'italic' }}> {this.getEventFooterTextByVersion(event, version)} </span> </Col > <Col xs={12} md={6}> <TagListInLine tags={event.tag} /> </Col> </Row> </Grid> </Panel.Footer> </Panel> </div> ) } getEventHeaderTextByVersion(event, version) { if (event && version) { if (version === ORIGINAL_EVENT_VERSION) { return 'On ' + getEventHistoryCreationDate(event) + ', the original message was: '; } if (version === LATEST_EVENT_VERSION) { return 'Written on ' + getEventHistoryCreationDate(event) + ', the latest version of the comment is:' } if (version === MIDDLE_EVENT_VERSION) { return 'Written on ' + getEventHistoryCreationDate(event) + ', the comment was:' } } else return ''; } getEventFooterTextByVersion(event, version) { if (event && version) { if (version === ORIGINAL_EVENT_VERSION) { return 'Created by ' + event.username; } if (version === LATEST_EVENT_VERSION || MIDDLE_EVENT_VERSION) { return 'Commented by ' + event.username; } } else { return '' }; } } EventVersionPanel.propTypes = { /** the event */ event: PropTypes.object, /** event version */ version: PropTypes.string } export default EventVersionPanel