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