diff --git a/react-native/react-native.d.ts b/react-native/react-native.d.ts index c82a94013..f3120c004 100644 --- a/react-native/react-native.d.ts +++ b/react-native/react-native.d.ts @@ -1380,7 +1380,8 @@ declare namespace ReactNative { */ export interface NavigatorStatic extends React.ComponentClass { SceneConfigs: SceneConfigs; - NavigationBar: NavigatorStatic.NavigationBar; + NavigationBar: NavigatorStatic.NavigationBarStatic; + BreadcrumbNavigationBar: NavigatorStatic.BreadcrumbNavigationBarStatic getContext( self: any ): NavigatorStatic; @@ -1443,9 +1444,10 @@ declare namespace ReactNative { * Pop to the first scene in the stack, unmounting every other scene */ popToTop(): void; + } - module NavigatorStatic { + namespace NavigatorStatic { export interface NavState { @@ -1458,27 +1460,61 @@ declare namespace ReactNative { //TODO @see NavigationBarStyle.ios.js } + + export interface NavigationBarRouteMapper { + Title: ( route: Route, nav: Navigator, index: number, navState: NavState ) => React.ReactElement; + LeftButton: ( route: Route, nav: Navigator, index: number, navState: NavState )=> React.ReactElement; + RightButton: ( route: Route, nav: Navigator, index: number, navState: NavState )=> React.ReactElement; + } + /** * @see NavigatorNavigationBar.js */ - export interface NavigationBarProperties extends React.Props{ + export interface NavigationBarProperties extends React.Props{ navigator?: Navigator - routeMapper?: ({ - Title: ( route: Route, nav: Navigator, index: number, navState: NavState ) => React.ReactElement; - LeftButton: ( route: Route, nav: Navigator, index: number, navState: NavState )=> React.ReactElement; - RightButton: ( route: Route, nav: Navigator, index: number, navState: NavState )=> React.ReactElement; - }) + routeMapper?: NavigationBarRouteMapper navState?: NavState style?: ViewStyle } export interface NavigationBarStatic extends React.ComponentClass { - Styles?: NavigationBarStyle + Styles: NavigationBarStyle } - export var NavigationBar: NavigationBarStatic export type NavigationBar = NavigationBarStatic + export var NavigationBar: NavigationBarStatic + + + export interface BreadcrumbNavigationBarStyle { + //TODO &see NavigatorBreadcrumbNavigationBar.js + } + + export interface BreadcrumbNavigationBarRouteMapper { + rightContentForRoute: (route: Route, navigator: Navigator) => React.ReactElement + titleContentForRoute: (route: Route, navigator: Navigator) => React.ReactElement + iconForRoute: (route: Route, navigator: Navigator) => React.ReactElement + //in samples... + separatorForRoute: (route: Route, navigator: Navigator) => React.ReactElement + } + + /** + * @see NavigatorNavigationBar.js + */ + export interface BreadcrumbNavigationBarProperties extends React.Props{ + navigator?: Navigator + routeMapper?: BreadcrumbNavigationBarRouteMapper + navState?: NavState + style?: ViewStyle + } + + export interface BreadcrumbNavigationBarStatic extends React.ComponentClass { + Styles: BreadcrumbNavigationBarStyle + } + + export type BreadcrumbNavigationBar = BreadcrumbNavigationBarStatic + var BreadcrumbNavigationBar: BreadcrumbNavigationBarStatic + } @@ -2063,6 +2099,12 @@ declare namespace ReactNative { export var Navigator: NavigatorStatic; export type Navigator = NavigatorStatic; + //export var NavigationBar: NavigationBarStatic + //export type NavigationBar = NavigationBarStatic + + //export var BreadcrumbNavigationBar: BreadcrumbNavigationBarStatic + //export type BreadcrumbNavigationBar = BreadcrumbNavigationBarStatic + export var NavigatorIOS: NavigatorIOSStatic; export type NavigatorIOS = NavigatorIOSStatic;