transforms/__testfixtures__/class/class.output.js (180 lines of code) (raw):
'use strict';
var React = require('React');
var createReactClass = require('create-react-class');
var Relay = require('Relay');
var Image = require('Image.react');
// Class comment
class MyComponent2 extends React.Component {
static defaultProps = {a: 1};
foo = (): void => {
const x = (a: Object, b: string): void => {}; // This code cannot be parsed by Babel v5
pass(this.foo);
this.forceUpdate();
};
}
class MyComponent3 extends React.Component {
static someThing = 10;
static funcThatDoesNothing(): void {}
static propTypes = {
highlightEntities: React.PropTypes.bool,
linkifyEntities: React.PropTypes.bool,
text: React.PropTypes.shape({
text: React.PropTypes.string,
ranges: React.PropTypes.array,
}).isRequired,
};
static defaultProps = function() {
unboundFunc();
return {
linkifyEntities: true,
highlightEntities: false,
};
}();
constructor(props) {
super(props);
props.foo();
this.state = {
heyoo: 23,
};
}
// comment here
_renderText = (text: string): ReactElement<any> => { // say something
return <Text text={text} />;
};
_renderImageRange = (text: string, range): ReactElement<any> => {
var image = range.image;
if (image) {
return (
<Image
src={image.uri}
height={image.height / image.scale}
width={image.width / image.scale}
/>
);
}
return null;
};
autobindMe = () => {};
okBindMe = (): number => { return 12; };
// Function comment
_renderRange = (text: string, range, bla: Promise<string>): ReactElement<any> => {
var self = this;
self.okBindMe();
call(self.autobindMe);
var type = rage.type;
var {highlightEntities} = this.props;
if (type === 'ImageAtRange') {
return this._renderImageRange(text, range);
}
if (this.props.linkifyEntities) {
text =
<Link href={usersURI}>
{text}
</Link>;
} else {
text = <span>{text}</span>;
}
return text;
};
/* This is a comment */
render() {
var content = this.props.text;
return (
<BaseText
{...this.props}
textRenderer={this._renderText}
rangeRenderer={this._renderRange}
text={content.text}
/>
);
}
}
var MyComponent4 = createReactClass({
displayName: 'MyComponent4',
foo: callMeMaybe(),
render: function() {},
});
module.exports = Relay.createContainer(MyComponent, {
queries: {
me: Relay.graphql`this is not graphql`,
},
});
class MyComponent5 extends React.Component {
static defaultProps = {
thisIs: true,
andThisIs: false,
};
state = {
todos: [],
};
renderTodo = (): ReactElement<any> => {
return (
<div>
{this.state.todos.map((item) => <p key={item.id}>{item.text}</p>)}
</div>
);
};
render() {
return (
<div>
<h1>TODOs</h1>
{this.renderTodo()}
</div>
);
}
}
class GoodName extends React.Component {
static displayName = 'GoodName';
render() {
return <div/>;
}
}
class SingleArgArrowFunction extends React.Component {
formatInt = (/*number*/ num) => /*string*/ {
return 'foobar';
};
render() {
return <div/>;
}
}
var mySpec = {};
var NotAnObjectLiteral = createReactClass(mySpec);
var WaitWhat = createReactClass();
class HasSpreadArgs extends React.Component {
_helper = (...args) => {
return args;
};
_helper2 = (a, b, c, ...args) => {
return args.concat(a);
};
_helper3 = (a: number, ...args: Array<string>) => {
return args.concat('' + a);
};
render() {
return <div/>;
}
}
class HasDefaultArgs extends React.Component {
_helper = (foo = 12) => {
return foo;
};
_helper2 = ({foo: number = 12, abc}, bar: string = 'hey', ...args: Array<string>) => {
return args.concat(foo, bar);
};
render() {
return <div/>;
}
}
class ManyArgs extends React.Component {
_helper = (foo = 12) => {
return foo;
};
_helper2 = (
{foo: number = 12, abc},
bar: string = 'hey',
x: number,
y: number,
...args: Array<string>
) => {
return args.concat(foo, bar);
};
render() {
return <div/>;
}
}