react-hold
Version:
Hold the empty presentational components in react.js
59 lines (53 loc) • 1.51 kB
JavaScript
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
import React from 'react';
import PropTypes from 'prop-types';
import shapes from '../shapes';
var $nbsp = '\xA0';
var Text = function Text(_ref) {
var color = _ref.color,
width = _ref.width,
height = _ref.height,
length = _ref.length,
lineHeight = _ref.lineHeight,
fontSize = _ref.fontSize,
fillerStyle = _ref.fillerStyle;
return React.createElement(
'div',
{
style: {
background: 'transparent',
overflow: 'hidden',
width: width,
height: height,
lineHeight: lineHeight,
fontSize: fontSize
}
},
React.createElement(
'span',
{
style: _extends({
background: color
}, fillerStyle, {
wordBreak: 'break-word',
wordWrap: 'break-word'
})
},
('' + $nbsp.repeat(2)).repeat(length)
)
);
};
Text.propTypes = _extends({}, shapes, {
length: PropTypes.number,
lineHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
fontSize: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
});
Text.defaultProps = {
width: null,
height: null,
length: 100,
lineHeight: 2.3,
fontSize: '0.7em',
fillerStyle: null
};
export default Text;