PageBody.js 780 B

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