Skip to content

Commit e4680fd

Browse files
committed
Merge pull request facebook#363 from iamdustan/flow-023
flow 0.23
2 parents 86ff842 + cf13a33 commit e4680fd

30 files changed

+594
-346
lines changed

.eslintrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ plugins:
88
- react
99

1010
globals:
11-
ReactElement: false
11+
React$Element: false
1212

1313
rules:
1414
brace-style: [2, 1tbs]

.flowconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe
1515
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue
1616

1717
[version]
18-
0.21.0
18+
0.23.0

.travis.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,12 @@ script:
88
- npm run lint
99
- flow check
1010
- npm test
11+
env:
12+
- CXX=g++-4.8
13+
addons:
14+
apt:
15+
sources:
16+
- ubuntu-toolchain-r-test
17+
packages:
18+
- g++-4.8
19+

frontend/BlurInput.js

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,25 @@
1212

1313
var React = require('react');
1414

15-
import type {DOMEvent} from './types';
15+
import type {DOMEvent, DOMNode} from './types';
16+
17+
type Props = {
18+
value?: string,
19+
onChange: (text: string) => any,
20+
};
21+
22+
type DefaultProps = {};
23+
type State = {
24+
text: string,
25+
};
26+
1627

1728
class BlurInput extends React.Component {
29+
props: Props;
30+
defaultProps: DefaultProps;
31+
state: State;
32+
node: ?DOMNode;
33+
1834
constructor(props: Object) {
1935
super(props);
2036
this.state = {text: this.props.value || ''};
@@ -39,7 +55,7 @@ class BlurInput extends React.Component {
3955
}
4056
}
4157

42-
render(): ReactElement {
58+
render() {
4359
return (
4460
<input
4561
value={this.state.text}

frontend/Container.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ import type MenuItem from './ContextMenu';
2222
class Container extends React.Component {
2323
props: {
2424
reload: () => void,
25-
extraPanes: Array<(node: Object) => ReactElement>,
26-
extraTabs: ?{[key: string]: () => ReactElement},
25+
extraPanes: Array<(node: Object) => React$Element>,
26+
extraTabs: ?{[key: string]: () => React$Element},
2727
menuItems: {
2828
tree?: (id: string, node: Object, store: Object) => ?Array<MenuItem>,
2929
attr?: (
@@ -35,10 +35,10 @@ class Container extends React.Component {
3535
store: Object
3636
) => ?Array<MenuItem>,
3737
},
38-
extraTabs: {[key: string]: () => ReactElement},
38+
extraTabs: {[key: string]: () => React$Element},
3939
};
4040

41-
render(): ReactElement {
41+
render() {
4242
var tabs = {
4343
Elements: () => (
4444
<SplitPane

frontend/DataView/DataView.js

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,23 @@ var assign = require('object-assign');
1919
var consts = require('../../agent/consts');
2020
var previewComplex = require('./previewComplex');
2121

22+
type Inspect = (path: Array<string>, cb: () => void) => void;
23+
type ShowMenu = boolean | (e: DOMEvent, val: any, path: Array<string>, name: string) => void;
24+
25+
type DataViewProps = {
26+
data: Object,
27+
path: Array<string>,
28+
inspect: Inspect,
29+
showMenu: ShowMenu,
30+
startOpen?: boolean,
31+
noSort?: boolean,
32+
readOnly?: boolean,
33+
};
34+
2235
class DataView extends React.Component {
23-
props: {
24-
data: Object,
25-
path: Array<string>,
26-
inspect: (path: Array<string>, cb: () => void) => void,
27-
showMenu: (e: DOMEvent, val: any, path: Array<string>, name: string) => void,
28-
startOpen: boolean,
29-
noSort?: boolean,
30-
readOnly: boolean,
31-
};
36+
props: DataViewProps;
3237

33-
render(): ReactElement {
38+
render() {
3439
var data = this.props.data;
3540
if (!data) {
3641
return <div style={styles.missing}>null</div>;
@@ -80,9 +85,22 @@ class DataView extends React.Component {
8085
}
8186

8287
class DataItem extends React.Component {
88+
props: {
89+
path: Array<string>,
90+
inspect: Inspect,
91+
showMenu: ShowMenu,
92+
startOpen?: boolean,
93+
noSort?: boolean,
94+
readOnly?: boolean,
95+
name: string,
96+
value: any,
97+
};
98+
defaultProps: {};
99+
state: {open: boolean, loading: boolean};
100+
83101
constructor(props) {
84102
super(props);
85-
this.state = {open: this.props.startOpen, loading: false};
103+
this.state = {open: !!this.props.startOpen, loading: false};
86104
}
87105

88106
componentDidMount() {
@@ -182,7 +200,11 @@ class DataItem extends React.Component {
182200
{this.props.name}:
183201
</div>
184202
<div
185-
onContextMenu={e => this.props.showMenu(e, this.props.value, this.props.path, this.props.name)}
203+
onContextMenu={e => {
204+
if (typeof this.props.showMenu === 'function') {
205+
return this.props.showMenu(e, this.props.value, this.props.path, this.props.name);
206+
}
207+
}}
186208
style={styles.preview}
187209
>
188210
{preview}

frontend/DataView/Simple.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,21 @@ var assign = require('object-assign');
1717
var flash = require('../flash');
1818
var valueStyles = require('../value-styles');
1919

20-
import type {DOMEvent} from '../types';
20+
import type {DOMEvent, DOMNode} from '../types';
21+
22+
type State = {
23+
editing: boolean,
24+
text: string,
25+
};
2126

2227
class Simple extends React.Component {
28+
state: State;
29+
input: DOMNode;
30+
2331
constructor(props: Object) {
2432
super(props);
2533
this.state = {
34+
text: '',
2635
editing: false,
2736
};
2837
}
@@ -90,7 +99,7 @@ class Simple extends React.Component {
9099
}
91100
}
92101

93-
render(): ReactElement {
102+
render() {
94103
if (this.state.editing) {
95104
return (
96105
<input

frontend/Draggable.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class Draggable extends React.Component {
5050
this.props.onStop();
5151
}
5252

53-
render(): ReactElement {
53+
render() {
5454
return (
5555
<div
5656
style={this.props.style}

frontend/HighlightHover.js

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,26 @@
1313
var React = require('react');
1414
var assign = require('object-assign');
1515

16+
type Props = {
17+
style: ?Object,
18+
children?: any,
19+
};
20+
21+
type State = {
22+
hover: boolean,
23+
};
24+
1625
class HighlightHover extends React.Component {
26+
props: Props;
27+
defaultProps: {};
28+
state: State;
29+
1730
constructor(props: Object) {
1831
super(props);
1932
this.state = {hover: false};
2033
}
2134

22-
render(): ReactElement {
35+
render() {
2336
return (
2437
<div
2538
onMouseOver={() => !this.state.hover && this.setState({hover: true})}

frontend/Node.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ class Node extends React.Component {
6464
this.context.scrollTo(node.offsetTop, node.offsetHeight);
6565
}
6666

67-
render(): ReactElement {
67+
render() {
6868
var node = this.props.node;
6969
if (!node) {
7070
return <span>Node was deleted</span>;

0 commit comments

Comments
 (0)