mini.css-inferno
Version:
Mini.css components built with Inferno.
35 lines (29 loc) • 1.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Button = Button;
var _infernoCreateElement = require('inferno-create-element');
var _infernoCreateElement2 = _interopRequireDefault(_infernoCreateElement);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// Module constants (change according to your flavor file)
var buttonClassName = 'button';
function Button(props) {
var outProps = Object.assign({}, props);
if (typeof outProps.type === 'undefined') outProps.type = 'button';
if (outProps.type != 'button' && outProps.type != 'link' && outProps.type != 'label' && outProps.type != 'input' && outProps.type != 'submit' && outProps.type != 'reset') throw 'Error: A \'Button\' component\'s \'type\' propery must be one of the following: {button, link, label, input, submit, reset}.';
if (outProps.type == 'link' || outProps.type == 'label') if (typeof outProps.className === 'undefined') outProps.className = buttonClassName;else outProps.className += ' ' + buttonClassName;
if (outProps.type == 'link') {
delete outProps.type;
return (0, _infernoCreateElement2.default)('a', outProps, outProps.children);
} else if (outProps.type == 'label') {
delete outProps.type;
return (0, _infernoCreateElement2.default)('label', outProps, outProps.children);
} else if (outProps.type == 'input' || outProps.type == 'submit' || outProps.type == 'reset') {
if (outProps.type == 'input') outProps.type = 'button';
outProps.value = outProps.children;
delete outProps.children;
return (0, _infernoCreateElement2.default)('input', outProps);
}
return (0, _infernoCreateElement2.default)('button', outProps, outProps.children);
}