mini.css-inferno
Version:
Mini.css components built with Inferno.
38 lines (31 loc) • 1.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Image = Image;
var _infernoCreateElement = require('inferno-create-element');
var _infernoCreateElement2 = _interopRequireDefault(_infernoCreateElement);
var _idGenerator = require('./util/idGenerator');
var _idGenerator2 = _interopRequireDefault(_idGenerator);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// Image component.
function Image(props) {
var outProps = Object.assign({}, props);
if (typeof outProps.src === 'undefined') throw 'Error: An \'Image\' component must have a \'src\' property.';
if (typeof outProps.alt === 'undefined' && typeof outProps.description === 'undefined') throw 'Error: An \'Image\' component must have an \'alt\' and/or \'description\' property.';
if (typeof outProps.alt === 'undefined') outProps.alt = outProps.description;
if (typeof outProps.description === 'undefined') outProps.description = outProps.alt;
if (typeof outProps.id === 'undefined') outProps.id = 'image_' + (0, _idGenerator2.default)();
var imgProps = Object.assign({}, outProps);
delete imgProps.description;
imgProps.id += '_img';
imgProps.key += imgProps.id;
outProps.children = [];
outProps.children.push((0, _infernoCreateElement2.default)('img', imgProps));
outProps.children.push((0, _infernoCreateElement2.default)('figcaption', {
id: outProps.id + '_figcaption',
key: outProps.id + '_figcaption'
}, outProps.description));
delete outProps.description;
return (0, _infernoCreateElement2.default)('figure', outProps, outProps.children);
}