UNPKG

@lyra/components

Version:
104 lines (92 loc) 3.29 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _blockStyle = require('part:@lyra/components/previews/block-style'); var _blockStyle2 = _interopRequireDefault(_blockStyle); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const fieldProp = _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.node, _propTypes2.default.func]); /* eslint-disable complexity */ class BlockPreview extends _react2.default.PureComponent { render() { var _props = this.props; const title = _props.title, subtitle = _props.subtitle, description = _props.description, mediaDimensions = _props.mediaDimensions, media = _props.media, children = _props.children; return _react2.default.createElement( 'div', { className: description ? _blockStyle2.default.hasDescription : _blockStyle2.default.root }, status && _react2.default.createElement( 'div', { className: _blockStyle2.default.status }, typeof status === 'function' && status({ layout: 'default' }) || status ), media && _react2.default.createElement( 'div', { className: `${_blockStyle2.default.media}` }, typeof media === 'function' && media({ dimensions: mediaDimensions, layout: 'default' }), typeof media === 'string' && _react2.default.createElement( 'div', { className: _blockStyle2.default.mediaString }, media ), _react2.default.isValidElement(media) && media ), _react2.default.createElement( 'div', { className: _blockStyle2.default.heading }, _react2.default.createElement( 'h2', { className: _blockStyle2.default.title }, title ), _react2.default.createElement( 'h3', { className: _blockStyle2.default.subtitle }, subtitle ), description && _react2.default.createElement( 'p', { className: _blockStyle2.default.description }, description ) ), children && _react2.default.createElement( 'div', { className: _blockStyle2.default.children }, children ) ); } } exports.default = BlockPreview; BlockPreview.propTypes = { title: _propTypes2.default.string, subtitle: _propTypes2.default.string, description: _propTypes2.default.string, mediaDimensions: _propTypes2.default.shape({ width: _propTypes2.default.number, height: _propTypes2.default.number, fit: _propTypes2.default.oneOf(['clip', 'crop', 'fill', 'fillmax', 'max', 'scale', 'min']), aspect: _propTypes2.default.number }), media: fieldProp, children: _propTypes2.default.func, type: _propTypes2.default.shape({ title: _propTypes2.default.string, name: _propTypes2.default.string }) }; BlockPreview.defaultProps = { mediaDimensions: { width: 160, height: 160, aspect: 1, fit: 'crop' }, type: { title: undefined, name: undefined } };