dubdiff/src/common/components/ShowMarkdown.js

34 lines
748 B
JavaScript
Raw Normal View History

2016-11-28 18:47:47 +01:00
import React from 'react'
2016-12-02 17:20:59 +01:00
//use markdown-it to render markdown
//alternately use markdown to jsx
const ShowMarkdown = (props) => {
return <div>
<pre style={{whiteSpace:'pre-wrap'}}>
{props.text ?
props.text:
props.diff ?
diffToPre(props.diff) :
null
}
2016-11-28 18:47:47 +01:00
</pre>
</div>
}
2016-12-02 17:20:59 +01:00
export default ShowMarkdown
function diffToPre(diff) {
return diff.map(part => (
part.added ? <span><ins>{part.value}</ins>{ifNotNewlineSpace(part.value)}</span> :
part.removed ? <span><del>{part.value}</del>{ifNotNewlineSpace(part.value)}</span> :
<span>{part.value}{ifNotNewlineSpace(part.value)}</span>
))
}
2016-11-28 18:47:47 +01:00
const ifNotNewlineSpace = str => {
return !str.endsWith('\n') ? ' ' : ''
}