PageBody.js 804 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. export default class PageBody extends React.Component {
  4. constructor(props) {
  5. super(props);
  6. this.crowiRenderer = window.crowiRenderer; // FIXME
  7. this.getMarkupHTML = this.getMarkupHTML.bind(this);
  8. }
  9. getMarkupHTML() {
  10. let body = this.props.pageBody;
  11. if (body === '') {
  12. body = this.props.page.revision.body;
  13. }
  14. return { __html: this.crowiRenderer.render(body) };
  15. }
  16. render() {
  17. const parsedBody = this.getMarkupHTML();
  18. return (
  19. <div
  20. className="content"
  21. dangerouslySetInnerHTML={parsedBody}
  22. />
  23. );
  24. }
  25. }
  26. PageBody.propTypes = {
  27. page: PropTypes.object.isRequired,
  28. pageBody: PropTypes.string,
  29. };
  30. PageBody.defaultProps = {
  31. page: {},
  32. pageBody: '',
  33. };