preact-material-components
Version:
preact wrapper for "Material Components for the web"
23 lines (21 loc) • 617 B
JavaScript
var preact = require('preact-compat');
exports.create = function(obj) {
var children = [];
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
var child = [].concat(obj[key]);
for (var i=0; i<child.length; i++) {
var c = child[i];
// if unkeyed, clone attrs and inject key
if (preact.isValidElement(c) && !(c.attributes && c.attributes.key)) {
var a = {};
if (c.attributes) for (var j in c.attributes) a[j] = c.attributes[j];
a.key = key+'.'+i;
c = preact.createElement(c.nodeName, a, c.children);
}
if (c!=null) children.push(c);
}
}
}
return children;
};