From e5843ac8f5e492298e8974ee8413cd426d7f6cd4 Mon Sep 17 00:00:00 2001 From: abrahambotros Date: Wed, 14 Jun 2017 22:52:14 -0700 Subject: [PATCH] [react-navigation] Misc fixes and improvements --- types/react-navigation/index.d.ts | 40 ++++++++++--------- .../react-navigation-tests.tsx | 7 ++-- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/types/react-navigation/index.d.ts b/types/react-navigation/index.d.ts index 615954c913..82de567263 100644 --- a/types/react-navigation/index.d.ts +++ b/types/react-navigation/index.d.ts @@ -61,7 +61,7 @@ export type NavigationState = { routes: Array, }; -export type NavigationRoute = NavigationLeafRoute | NavigationStateRoute; +export type NavigationRoute = NavigationLeafRoute | NavigationStateRoute; export type NavigationLeafRoute = { /** @@ -85,7 +85,7 @@ export type NavigationLeafRoute = { params?: Params, }; -export type NavigationStateRoute = NavigationLeafRoute & { +export type NavigationStateRoute = NavigationLeafRoute & { index: number, routes: Array>, }; @@ -109,14 +109,14 @@ export type NavigationRouter = { */ getActionForPathAndParams: ( path: string, - params?: NavigationParamsGeneric + params?: NavigationParams ) => (Action | null), getPathAndParamsForState: ( state: State ) => { path: string, - params?: NavigationParamsGeneric, + params?: NavigationParams, }, getComponentForRouteName: (routeName: string) => NavigationComponent, @@ -181,7 +181,7 @@ export type NavigationNavigator = React.ComponentClas navigationOptions?: NavigationScreenConfig, }; -export type NavigationParamsGeneric = { +export type NavigationParams = { [key: string]: string, }; @@ -346,16 +346,16 @@ export type NavigationScreenProp = { goBack: (routeKey?: (string | null)) => boolean, navigate: ( routeName: string, - params?: NavigationParamsGeneric, + params?: any, action?: NavigationAction ) => boolean, - setParams: (newParams: NavigationParamsGeneric) => boolean, + setParams: (newParams: NavigationParams) => boolean, }; export type NavigationNavigatorProps = { - navigation: NavigationProp, - screenProps: { [key: string]: any } - navigationOptions: any, + navigation?: NavigationProp, + screenProps?: { [key: string]: any } + navigationOptions?: any, }; /** @@ -462,6 +462,8 @@ export type LayoutEvent = { * END FLOW TYPEDEFINITION.JS PORT */ +// From addNavigatorHelpers.js +export function addNavigationHelpers(navigation: NavigationProp): NavigationScreenProp; // From createNavigationContainer.js interface NavigationContainerProps { @@ -473,11 +475,13 @@ interface NavigationContainerProps { ) => void, } -export interface NavigationContainer extends React.Component< - NavigationContainerProps & NavigationNavigatorProps, - { nav: NavigationState | null } +export interface NavigationContainer extends React.ComponentClass< + NavigationContainerProps & NavigationNavigatorProps > { router: NavigationRouter + screenProps: { [key: string]: any }, + navigationOptions: any, + state: { nav: NavigationState | null }, } export interface StackNavigatorConfig extends NavigationStackViewConfig, NavigationStackRouterConfig { @@ -488,7 +492,7 @@ export interface StackNavigatorConfig extends NavigationStackViewConfig, Navigat export function StackNavigator( routeConfigMap: NavigationRouteConfigMap, stackConfig?: StackNavigatorConfig, -): NavigationContainer +): NavigationContainer; /** * Drawer Navigator @@ -515,7 +519,7 @@ export interface DrawerNavigatorConfig extends NavigationTabRouterConfig, Drawer export function DrawerNavigator( routeConfigMap: NavigationRouteConfigMap, drawerConfig?: DrawerNavigatorConfig, -): NavigationContainer; +): NavigationContainer; /** * Tab Navigator @@ -555,10 +559,10 @@ export interface TabNavigatorConfig extends NavigationTabRouterConfig, TabViewCo export function TabNavigator( routeConfigMap: NavigationRouteConfigMap, drawConfig?: TabNavigatorConfig, -): NavigationContainer; +): NavigationContainer; -export const TabBarTop: React.ReactElement; -export const TabBarBottom: React.ReactElement; +export const TabBarTop: React.ComponentClass; +export const TabBarBottom: React.ComponentClass; /** diff --git a/types/react-navigation/react-navigation-tests.tsx b/types/react-navigation/react-navigation-tests.tsx index 2493d92f84..884d57e4f0 100644 --- a/types/react-navigation/react-navigation-tests.tsx +++ b/types/react-navigation/react-navigation-tests.tsx @@ -2,8 +2,9 @@ import * as React from 'react'; import { View } from 'react-native'; import { addNavigationHelpers, + NavigationStackAction, + NavigationTabScreenOptions, StackNavigator, - TabNavigatorScreenOptions, TabNavigatorConfig, TabBarTop, TabBarBottom, @@ -26,14 +27,14 @@ const Router = (props: any) => ( { return true; }, state: {}, }) } /> ); -const tabNavigatorScreenOptions: TabNavigatorScreenOptions = { +const tabNavigatorScreenOptions: NavigationTabScreenOptions = { title: 'title', tabBarVisible: true, tabBarIcon: ,