mini.css-inferno
Version:
Mini.css components built with Inferno.
67 lines (59 loc) • 2.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Modal = Modal;
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 }; }
// Module constants (change according to your flavor file)
var modalClassName = 'modal';
var cardClassName = 'card';
var closeClassName = 'close';
// Modal component.
function Modal(props) {
var outProps = Object.assign({}, props);
if (typeof outProps.id === 'undefined') outProps.id = 'modal_' + (0, _idGenerator2.default)();
if (typeof outProps.noLabel === 'undefined') outProps.noLabel = false;
if (!outProps.noLabel && typeof outProps.labelText === 'undefined') outProps.labelText = 'Open modal dialog';
outProps.modalCardChildren = Array.isArray(outProps.children) ? outProps.children : [outProps.children];
outProps.modalCardChildren.push((0, _infernoCreateElement2.default)('label', {
'htmlFor': outProps.id,
className: closeClassName,
key: outProps.id + '_close'
}));
if (typeof outProps.className === 'undefined') outProps.className = cardClassName;else outProps.className += ' ' + cardClassName;
outProps.modalChildren = [];
outProps.modalChildren.push((0, _infernoCreateElement2.default)('div', {
className: outProps.className,
key: outProps.id + '_card'
}, outProps.modalCardChildren));
outProps.childrenToRender = [];
if (!outProps.noLabel) {
outProps.childrenToRender.push((0, _infernoCreateElement2.default)('label', {
'htmlFor': outProps.id,
key: outProps.id + '_label'
}, outProps.labelText));
}
outProps.childrenToRender.push((0, _infernoCreateElement2.default)('input', {
type: 'checkbox',
id: outProps.id,
key: outProps.id + '_toggle',
defaultChecked: false
}));
outProps.childrenToRender.push((0, _infernoCreateElement2.default)('div', {
className: modalClassName,
key: outProps.id + '_modal'
}, outProps.modalChildren));
var childrenToRender = outProps.childrenToRender;
delete outProps.modalChildren;
delete outProps.childrenToRender;
delete outProps.className;
delete outProps.noLabel;
delete outProps.modalCardChildren;
delete outProps.labelText;
outProps.id = outProps.id + 'wrapper';
return (0, _infernoCreateElement2.default)('div', outProps, childrenToRender);
}