optimisation.react.inlineElements: move children into props and leave children out if the element has none - @spicyj
This commit is contained in:
parent
6bc2bfce7d
commit
1ef41b6f32
@ -36,15 +36,19 @@ export function JSXElement(node, parent, scope, file) {
|
||||
}
|
||||
|
||||
function pushElemProp(key, value) {
|
||||
obj.properties.push(t.property("init", t.identifier(key), value));
|
||||
pushProp(obj.properties, t.identifier(key), value);
|
||||
}
|
||||
|
||||
function pushProp(objProps, key, value) {
|
||||
objProps.push(t.property("init", key, value));
|
||||
}
|
||||
|
||||
// metadata
|
||||
pushElemProp("type", type);
|
||||
pushElemProp("ref", t.literal(null));
|
||||
|
||||
if (!open.selfClosing) {
|
||||
pushElemProp("children", t.arrayExpression(react.buildChildren(node)));
|
||||
if (node.children.length) {
|
||||
pushProp(props.properties, t.identifier("children"), t.arrayExpression(react.buildChildren(node)));
|
||||
}
|
||||
|
||||
// props
|
||||
@ -53,7 +57,7 @@ export function JSXElement(node, parent, scope, file) {
|
||||
if (isJSXAttributeOfName(attr, "key")) {
|
||||
key = attr.value;
|
||||
} else {
|
||||
props.properties.push(t.property("init", attr.name, attr.value));
|
||||
pushProp(props.properties, attr.name, attr.value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -15,8 +15,9 @@ function render() {
|
||||
var _ref = {
|
||||
type: "foo",
|
||||
ref: null,
|
||||
children: [text],
|
||||
props: {},
|
||||
props: {
|
||||
children: [text]
|
||||
},
|
||||
key: null
|
||||
};
|
||||
return function () {
|
||||
|
||||
@ -3,9 +3,8 @@
|
||||
({
|
||||
type: Baz,
|
||||
ref: null,
|
||||
children: [],
|
||||
props: babelHelpers.defaultProps(Baz.defaultProps, {
|
||||
foo: "bar"
|
||||
}),
|
||||
key: null
|
||||
});
|
||||
});
|
||||
|
||||
@ -3,7 +3,6 @@
|
||||
({
|
||||
type: Baz,
|
||||
ref: null,
|
||||
children: [],
|
||||
props: babelHelpers.defaultProps(Baz.defaultProps, {}),
|
||||
key: null
|
||||
});
|
||||
});
|
||||
|
||||
@ -3,9 +3,8 @@
|
||||
({
|
||||
type: "foo",
|
||||
ref: null,
|
||||
children: [],
|
||||
props: {
|
||||
bar: "foo"
|
||||
},
|
||||
key: null
|
||||
});
|
||||
});
|
||||
|
||||
@ -3,7 +3,6 @@
|
||||
({
|
||||
type: "foo",
|
||||
ref: null,
|
||||
children: [],
|
||||
props: {},
|
||||
key: null
|
||||
});
|
||||
});
|
||||
|
||||
@ -3,13 +3,13 @@
|
||||
({
|
||||
type: Foo,
|
||||
ref: null,
|
||||
children: [bar, {
|
||||
type: Baz,
|
||||
ref: null,
|
||||
props: babelHelpers.defaultProps(Baz.defaultProps, {}),
|
||||
key: "baz"
|
||||
}],
|
||||
props: babelHelpers.defaultProps(Foo.defaultProps, {
|
||||
children: [bar, {
|
||||
type: Baz,
|
||||
ref: null,
|
||||
props: babelHelpers.defaultProps(Baz.defaultProps, {}),
|
||||
key: "baz"
|
||||
}],
|
||||
className: "foo"
|
||||
}),
|
||||
key: null
|
||||
|
||||
@ -3,9 +3,9 @@
|
||||
({
|
||||
type: "div",
|
||||
ref: null,
|
||||
children: [bar],
|
||||
props: {
|
||||
children: [bar],
|
||||
className: "foo"
|
||||
},
|
||||
key: null
|
||||
});
|
||||
});
|
||||
|
||||
@ -3,14 +3,14 @@
|
||||
({
|
||||
type: "div",
|
||||
ref: null,
|
||||
children: [bar, {
|
||||
type: Baz,
|
||||
ref: null,
|
||||
props: babelHelpers.defaultProps(Baz.defaultProps, {}),
|
||||
key: "baz"
|
||||
}],
|
||||
props: {
|
||||
children: [bar, {
|
||||
type: Baz,
|
||||
ref: null,
|
||||
props: babelHelpers.defaultProps(Baz.defaultProps, {}),
|
||||
key: "baz"
|
||||
}],
|
||||
className: "foo"
|
||||
},
|
||||
key: null
|
||||
});
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user