UNPKG

@appearhere/bloom

Version:

Appear Here's pattern library and styleguide

41 lines (32 loc) 919 B
import PropTypes from 'prop-types'; import React, { Component } from 'react'; import CommonMark from 'commonmark'; import ReactRenderer from 'commonmark-react-renderer'; import cx from 'classnames'; import css from './Markdown.css'; const parser = new CommonMark.Parser(); const renderer = new ReactRenderer(); export default class Markdown extends Component { static propTypes = { children: PropTypes.string.isRequired, className: PropTypes.string, overrideClassname: PropTypes.bool, }; static defaultProps = { overrideClassname: false, } render() { const { children, className, overrideClassname, ...rest } = this.props; const ast = parser.parse(children); const props = { className: overrideClassname ? className : cx(css.root, className), ...rest, }; return React.createElement('div', props, renderer.render(ast)); } }