@render-props/paragraphs
Version:
A function as child component which provides an interface for creating paragraphs with line breaks from raw text with `\n` new lines. The default render child is: ```js const defaultParagraph = props => <p key={props.key} children={props.text}/> ```
37 lines (27 loc) • 688 B
JavaScript
var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault')
exports.__esModule = true
exports.default = toBreaks
var _react = _interopRequireDefault(require('react'))
var _limitLines = _interopRequireDefault(require('./limitLines'))
const _breakRe = /(\n)/g
function breaker(line, x) {
return line.match(_breakRe)
? _react.default.createElement('br', {
key: x + '--' + line,
})
: line
}
function _ref(line) {
return line
}
function toBreaks(rawText) {
if (!rawText) {
return rawText
}
rawText = (0, _limitLines.default)(rawText)
return rawText
.split(_breakRe)
.map(breaker)
.filter(_ref)
}