react-lorem-component
Version:
A component for React that renders paragraph or list item tags full of lorem ipsum placeholder text
71 lines (56 loc) • 1.53 kB
JavaScript
;
var React = require('react');
var createReactClass = require('create-react-class');
var loremIpsum = require('lorem-ipsum');
var random = require('seedable-random');
var extend = require('object-assign');
var Lorem = createReactClass({
displayName: 'Lorem',
getDefaultProps: function() {
return {
mode: 'paragraphs',
format: 'html',
count: 5,
seed: 0,
ordered: false
};
},
render: function() {
var props = extend({}, this.props, {
units: 'paragraphs',
random: random
});
random.seed(props.seed);
var html = loremIpsum(props);
var wrapper;
if (props.mode === 'list') {
html = html.replace(/<p>(.*?)<\/p>/g, '<li>$1</li>');
if (props.ordered) {
wrapper = React.createFactory('ol');
} else {
wrapper = React.createFactory('ul');
}
} else {
wrapper = React.createFactory('div');
}
props.dangerouslySetInnerHTML = { __html: html };
// own props
delete props.mode;
delete props.ordered;
delete props.random;
// props passed to seedable-random
delete props.seed;
// props passed to lorem-ipsum
delete props.count;
delete props.units;
delete props.sentenceLowerBound;
delete props.sentenceUpperBound;
delete props.paragraphLowerBound;
delete props.paragraphUpperBound;
delete props.format;
delete props.words;
delete props.suffix;
return wrapper(props);
}
});
module.exports = Lorem;