mini.css-inferno
Version:
Mini.css components built with Inferno.
42 lines (34 loc) • 1.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.FileUpload = FileUpload;
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 inputGroupClassName = 'input-group';
var buttonClassName = 'button';
// FileUpload component.
function FileUpload(props) {
var outProps = Object.assign({}, props);
if (typeof outProps.id === 'undefined') outProps.id = 'fileupload_' + (0, _idGenerator2.default)();
if (typeof outProps.className === 'undefined') outProps.className = '';
var childrenToRender = [];
var fileUploadProps = Object.assign({}, outProps);
fileUploadProps.key = outProps.id + '_input';
fileUploadProps.type = 'file';
delete fileUploadProps.labelText;
childrenToRender.push((0, _infernoCreateElement2.default)('input', fileUploadProps));
var labelProps = Object.assign({}, outProps);
labelProps.key = outProps.id + '_label';
labelProps['htmlFor'] = outProps.id;
labelProps.children = outProps.labelText;
labelProps.className += ' ' + buttonClassName;
delete labelProps.id;
delete labelProps.labelText;
childrenToRender.push((0, _infernoCreateElement2.default)('label', labelProps, labelProps.children));
return (0, _infernoCreateElement2.default)('div', { className: outProps.className + ' ' + inputGroupClassName }, childrenToRender);
}