PageBody.js 873 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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, this.props.rendererOptions) };
  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. rendererOptions: React.PropTypes.object
  29. };
  30. PageBody.defaultProps = {
  31. page: {},
  32. pageBody: '',
  33. rendererOptions: {},
  34. };