@@ -10,20 +10,26 @@ import { CONTEXT } from '../constants';
10
10
declare class ReactClassType { }
11
11
12
12
// eslint-disable-next-line flowtype/require-exact-type
13
- declare class __ReactComponent { }
13
+ declare class __ReactComponent {
14
+ state : mixed ,
15
+ props : mixed ,
16
+ setState : ( newStateOrFn : mixed ) => void
17
+ }
18
+
19
+ type Class < T > = { new ( ) : T } ;
14
20
15
21
type ReactElementType = { |
16
22
17
23
| } ;
18
24
19
25
type ReactType = { |
20
- Component : __ReactComponent ,
26
+ Component : typeof __ReactComponent ,
21
27
createClass : ( { | render : ( ) => ReactElementType , componentDidMount : ( ) => void , componentDidUpdate : ( ) => void | } ) => ( typeof ReactClassType ) ,
22
28
createElement : ( string , ?{ [ string ] : mixed } , ...children : $ReadOnlyArray < ReactElementType > ) => ReactElementType
23
29
| } ;
24
30
25
31
type ReactDomType = { |
26
- findDOMNode : ( typeof ReactClassType ) => HTMLElement
32
+ findDOMNode : ( __ReactComponent ) => HTMLElement
27
33
| } ;
28
34
29
35
type ReactLibraryType = { |
@@ -35,7 +41,7 @@ type ReactLibraryType = {|
35
41
/**
36
42
* Util to check if component is currently mounted
37
43
*/
38
- function isMounted ( component : typeof ReactClassType , ReactDOM : ReactDomType ) : boolean {
44
+ function isMounted ( component : __ReactComponent , ReactDOM : ReactDomType ) : boolean {
39
45
try {
40
46
return Boolean ( ReactDOM . findDOMNode ( component ) ) ;
41
47
}
@@ -45,19 +51,16 @@ function isMounted(component : typeof ReactClassType, ReactDOM : ReactDomType) :
45
51
}
46
52
}
47
53
54
+ export const react : ComponentDriverType < * , ReactLibraryType, Class < __ReactComponent > > = {
48
55
49
- export const react : ComponentDriverType < * , ReactLibraryType, typeof ReactClassType > = {
50
-
51
- register : ( tag , propsDef , init , { React, ReactDOM } ) => {
56
+ register : ( tag , propsDef , init , { React, ReactDOM } ) : Class < __ReactComponent > => {
52
57
53
- // $FlowFixMe
54
- return class extends React . Component {
58
+ return class ZoidReactComponent extends React . Component {
55
59
render ( ) : ReactElementType {
56
60
return React . createElement ( 'div' , null) ;
57
61
}
58
62
59
63
componentDidMount ( ) {
60
- // $FlowFixMe
61
64
const el = ReactDOM . findDOMNode ( this ) ;
62
65
const parent = init ( extend ( { } , this . props ) ) ;
63
66
parent . render ( el , CONTEXT . IFRAME )
0 commit comments