fix better jsx output

This commit is contained in:
Sebastian McKenzie
2015-01-07 22:47:37 +11:00
parent 0d45a8975c
commit 62e406a6fe
5 changed files with 54 additions and 17 deletions

View File

@@ -103,29 +103,22 @@ exports.XJSOpeningElement = {
args.push(props);
var setPrettyPrint = function (call, args) {
if (args.length >= 3) {
call._prettyPrint = true;
}
return call;
};
if (reactCompat) {
if (tagName && isTag(tagName)) {
return setPrettyPrint(t.callExpression(
return t.callExpression(
t.memberExpression(
t.memberExpression(t.identifier("React"), t.identifier("DOM")),
tagExpr,
t.isLiteral(tagExpr)
),
args
), args);
);
}
} else {
tagExpr = t.memberExpression(t.identifier("React"), t.identifier("createElement"));
}
return setPrettyPrint(t.callExpression(tagExpr, args), args);
return t.callExpression(tagExpr, args);
}
};
@@ -172,6 +165,10 @@ exports.XJSElement = {
callExpr.arguments.push(child);
}
if (callExpr.arguments.length >= 3) {
callExpr._prettyPrint = true;
}
return t.inherits(callExpr, node);
}
};

View File

@@ -1,7 +1,23 @@
var x = React.createElement("div", null, React.createElement(Component, null));
var x = React.createElement(
"div",
null,
React.createElement(Component, null)
);
var x = React.createElement("div", null, this.props.children);
var x = React.createElement(
"div",
null,
this.props.children
);
var x = React.createElement(Composite, null, this.props.children);
var x = React.createElement(
Composite,
null,
this.props.children
);
var x = React.createElement(Composite, null, React.createElement(Composite2, null));
var x = React.createElement(
Composite,
null,
React.createElement(Composite2, null)
);

View File

@@ -1 +1,5 @@
var x = React.createElement("div", null, "text");
var x = React.createElement(
"div",
null,
"text"
);

View File

@@ -1 +1,5 @@
React.createElement("hasOwnProperty", null, "testing");
React.createElement(
"hasOwnProperty",
null,
"testing"
);

View File

@@ -1 +1,17 @@
var x = React.createElement("div", null, React.createElement("div", null, React.createElement("br", null)), React.createElement(Component, null, foo, React.createElement("br", null), bar), React.createElement("br", null));
var x = React.createElement(
"div",
null,
React.createElement(
"div",
null,
React.createElement("br", null)
),
React.createElement(
Component,
null,
foo,
React.createElement("br", null),
bar
),
React.createElement("br", null)
);