Merge pull request #5780 from kentor/react-display-name-to-support-createReactClass

Backport support for createReactClass with transform-react-display-name
This commit is contained in:
Justin Ridgewell 2017-06-05 16:13:16 -04:00 committed by GitHub
commit 783d85ee4b
10 changed files with 41 additions and 13 deletions

View File

@ -1,13 +1,14 @@
# babel-plugin-transform-react-display-name
> Add displayName to React.createClass calls
> Add displayName to `createReactClass` (and `React.createClass`) calls
## Example
**In**
```js
var foo = React.createClass({});
var foo = React.createClass({}); // React <= 15
var bar = createReactClass({}); // React 16+
```
**Out**
@ -15,7 +16,10 @@ var foo = React.createClass({});
```js
var foo = React.createClass({
displayName: "foo"
});
}); // React <= 15
var bar = createReactClass({
displayName: "bar"
}); // React 16+
```
## Installation

View File

@ -20,12 +20,16 @@ export default function ({ types: t }) {
}
const isCreateClassCallExpression = t.buildMatchMemberExpression("React.createClass");
const isCreateClassAddon = (callee) => callee.name === "createReactClass";
function isCreateClass(node) {
if (!node || !t.isCallExpression(node)) return false;
// not React.createClass call member object
if (!isCreateClassCallExpression(node.callee)) return false;
// not createReactClass nor React.createClass call member object
if (
!isCreateClassCallExpression(node.callee) &&
!isCreateClassAddon(node.callee)
) return false;
// no call arguments
const args = node.arguments;

View File

@ -1 +1,2 @@
foo = React.createClass({});
foo = createReactClass({});
bar = React.createClass({});

View File

@ -1,3 +1,6 @@
foo = React.createClass({
foo = createReactClass({
displayName: "foo"
});
bar = React.createClass({
displayName: "bar"
});

View File

@ -1 +1,2 @@
var foo = bar(React.createClass({}));
var foo = qux(createReactClass({}));
var bar = qux(React.createClass({}));

View File

@ -1,3 +1,6 @@
var foo = bar(React.createClass({
var foo = qux(createReactClass({
displayName: "foo"
}));
var bar = qux(React.createClass({
displayName: "bar"
}));

View File

@ -1,3 +1,6 @@
({
foo: React.createClass({})
foo: createReactClass({})
});
({
bar: React.createClass({})
});

View File

@ -1,5 +1,10 @@
({
foo: React.createClass({
foo: createReactClass({
displayName: "foo"
})
});
({
bar: React.createClass({
displayName: "bar"
})
});

View File

@ -1 +1,2 @@
var foo = React.createClass({});
var foo = createReactClass({});
var bar = React.createClass({});

View File

@ -1,3 +1,6 @@
var foo = React.createClass({
var foo = createReactClass({
displayName: "foo"
});
var bar = React.createClass({
displayName: "bar"
});