react-saasify-chrisvxd
Version:
React components for Saasify web clients.
41 lines (35 loc) • 797 B
JavaScript
import React, { Component } from 'react'
import PropTypes from 'prop-types'
import ReactMarkdown from 'react-markdown'
import theme from 'lib/theme'
import { CodeBlock } from '../CodeBlock'
import styles from './styles.module.css'
export class Markdown extends Component {
static propTypes = {
source: PropTypes.string.isRequired,
renderers: PropTypes.object
}
static defaultProps = {
renderers: { }
}
render () {
const {
source,
renderers,
...rest
} = this.props
return (
<ReactMarkdown
className={theme(styles, 'markdown')}
source={source}
escapeHtml={false}
linkTarget='_blank'
renderers={{
code: CodeBlock,
...renderers
}}
{...rest}
/>
)
}
}