From 583174c2f39b4ccc8d191df32a5676b0e5e7c15e Mon Sep 17 00:00:00 2001 From: Todd Brannam Date: Wed, 9 May 2018 16:00:26 -0400 Subject: [PATCH 1/2] Update index.d.ts Add support for alternative Provider options, such as ApolloProvider exposing new-ish `options` parameter in `Navigatiotor` `function registerComponent(screenID, generator, store = undefined, Provider = undefined, options = {})` --- types/react-native-navigation/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/react-native-navigation/index.d.ts b/types/react-native-navigation/index.d.ts index 75c0d51be0..16da706d06 100644 --- a/types/react-native-navigation/index.d.ts +++ b/types/react-native-navigation/index.d.ts @@ -7,7 +7,7 @@ import * as React from 'react'; export namespace Navigation { - function registerComponent(screenID: string, generator: () => React.ComponentType, store?: any, provider?: any): void; + function registerComponent(screenID: string, generator: () => React.ComponentType, store?: any, provider?: any, options?: any): void; function startTabBasedApp(params: TabBasedApp): void; function startSingleScreenApp(params: SingleScreenApp): void; function showModal(params: ModalScreen): void; From 5af75097bb469ebf4be90279038bf020c9a1a9b1 Mon Sep 17 00:00:00 2001 From: Todd Brannam Date: Wed, 9 May 2018 21:27:42 -0400 Subject: [PATCH 2/2] Update react-native-navigation-tests.tsx Add example that exercises the expanded function `registerComponent` --- .../react-native-navigation-tests.tsx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/types/react-native-navigation/react-native-navigation-tests.tsx b/types/react-native-navigation/react-native-navigation-tests.tsx index 004673e10a..371465b1c9 100644 --- a/types/react-native-navigation/react-native-navigation-tests.tsx +++ b/types/react-native-navigation/react-native-navigation-tests.tsx @@ -63,7 +63,23 @@ const Drawer = (props: NavigationComponentProps) => { ); }; -Navigation.registerComponent('example.Screen1', () => Screen1); +interface TestProviderProps { + test: string; +} + +class TestProvider extends React.Component { + getChildContext() { + return { + test: this.props.test + }; + } + + render() { + return this.props.children; + } +} + +Navigation.registerComponent('example.Screen1', () => Screen1, {}, TestProvider, {test: "test"}); Navigation.registerComponent('example.Screen2', () => Screen2); Navigation.registerComponent('example.Drawer', () => Drawer);