transforms/__testfixtures__/class/class.input.js (180 lines of code) (raw):
'use strict';
var React = require('React');
var Relay = require('Relay');
var Image = require('Image.react');
// Class comment
var MyComponent2 = React.createClass({
getDefaultProps: function(): Object {
return {a: 1};
},
foo: function(): void {
const x = (a: Object, b: string): void => {}; // This code cannot be parsed by Babel v5
pass(this.foo);
this.forceUpdate();
},
});
var MyComponent3 = React.createClass({
statics: {
someThing: 10,
funcThatDoesNothing: function(): void {},
},
propTypes: {
highlightEntities: React.PropTypes.bool,
linkifyEntities: React.PropTypes.bool,
text: React.PropTypes.shape({
text: React.PropTypes.string,
ranges: React.PropTypes.array,
}).isRequired,
},
getDefaultProps: function() {
unboundFunc();
return {
linkifyEntities: true,
highlightEntities: false,
};
},
getInitialState: function() {
this.props.foo();
return {
heyoo: 23,
};
},
// comment here
_renderText: function(text: string): ReactElement<any> { // say something
return <Text text={text} />;
},
_renderImageRange: function(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: function() {},
okBindMe: function(): number { return 12; },
// Function comment
_renderRange: function(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: function() {
var content = this.props.text;
return (
<BaseText
{...this.props}
textRenderer={this._renderText}
rangeRenderer={this._renderRange}
text={content.text}
/>
);
},
});
var MyComponent4 = React.createClass({
foo: callMeMaybe(),
render: function() {},
});
module.exports = Relay.createContainer(MyComponent, {
queries: {
me: Relay.graphql`this is not graphql`,
},
});
var MyComponent5 = React.createClass({
getDefaultProps: function() {
return {
thisIs: true,
andThisIs: false,
};
},
statics: {},
getInitialState: function() {
return {
todos: [],
};
},
renderTodo: function(): ReactElement<any> {
return (
<div>
{this.state.todos.map((item) => <p key={item.id}>{item.text}</p>)}
</div>
);
},
render: function() {
return (
<div>
<h1>TODOs</h1>
{this.renderTodo()}
</div>
);
},
});
var GoodName = React.createClass({
displayName: 'GoodName',
render() {
return <div/>;
},
});
var SingleArgArrowFunction = React.createClass({
formatInt: function(/*number*/ num) /*string*/ {
return 'foobar';
},
render() {
return <div/>;
},
});
var mySpec = {};
var NotAnObjectLiteral = React.createClass(mySpec);
var WaitWhat = React.createClass();
var HasSpreadArgs = React.createClass({
_helper: function(...args) {
return args;
},
_helper2: function(a, b, c, ...args) {
return args.concat(a);
},
_helper3: function(a: number, ...args: Array<string>) {
return args.concat('' + a);
},
render() {
return <div/>;
},
});
var HasDefaultArgs = React.createClass({
_helper: function(foo = 12) {
return foo;
},
_helper2: function({foo: number = 12, abc}, bar: string = 'hey', ...args: Array<string>) {
return args.concat(foo, bar);
},
render() {
return <div/>;
},
});
var ManyArgs = React.createClass({
_helper: function(foo = 12) {
return foo;
},
_helper2: function({foo: number = 12, abc}, bar: string = 'hey', x: number, y: number, ...args: Array<string>) {
return args.concat(foo, bar);
},
render() {
return <div/>;
},
});