77 * of patent rights can be found in the PATENTS file in the same directory.
88 *
99 * @providesModule createExamplePage
10+ * @flow
1011 */
1112'use strict' ;
1213
@@ -16,7 +17,19 @@ var UIExplorerPage = require('./UIExplorerPage');
1617
1718var invariant = require ( 'invariant' ) ;
1819
19- var createExamplePage = function ( title , exampleModule ) {
20+ class Example extends React . Component {
21+ title : string ;
22+ description : string ;
23+ }
24+
25+ type ExampleModule = {
26+ title : string ;
27+ description: string ;
28+ examples: Array < Example > ;
29+ } ;
30+
31+ var createExamplePage = function ( title : ?string , exampleModule : ExampleModule )
32+ : ReactClass < any , any , any > {
2033 invariant ( ! ! exampleModule . examples, 'The module must have examples' ) ;
2134
2235 var ExamplePage = React . createClass ( {
@@ -31,15 +44,17 @@ var createExamplePage = function(title, exampleModule) {
3144 var originalRenderComponent = React . renderComponent ;
3245 var originalRender = React . render ;
3346 var renderedComponent ;
34- React . render = React . renderComponent = function ( element , container ) {
47+ // TODO remove typecasts when Flow bug #6560135 is fixed
48+ // and workaround is removed from react-native.js
49+ ( React : Object ) . render = ( React : Object ) . renderComponent = function ( element , container ) {
3550 renderedComponent = element ;
3651 } ;
3752 var result = example . render ( null ) ;
3853 if ( result ) {
3954 renderedComponent = result ;
4055 }
41- React . renderComponent = originalRenderComponent ;
42- React . render = originalRender ;
56+ ( React : Object ) . renderComponent = originalRenderComponent ;
57+ ( React : Object ) . render = originalRender ;
4358 return (
4459 < UIExplorerBlock
4560 key = { i }
0 commit comments