fix: add error message when trying to use v4 API with v5

This commit is contained in:
Satyajit Sahoo
2020-01-24 00:01:35 +01:00
parent 2f1f0af862
commit 179e807a64
2 changed files with 20 additions and 2 deletions

View File

@@ -0,0 +1,12 @@
import createNavigatorFactory from '../createNavigatorFactory';
it('throws descriptive error if an argument is passed', () => {
const createDummyNavigator = createNavigatorFactory(() => null);
expect(() => createDummyNavigator()).not.toThrowError();
// @ts-ignore
expect(() => createDummyNavigator({})).toThrowError(
"Creating a navigator doesn't take an argument."
);
});

View File

@@ -13,11 +13,17 @@ export default function createNavigatorFactory<
ScreenOptions extends object,
NavigatorComponent extends React.ComponentType<any>
>(Navigator: NavigatorComponent) {
return <ParamList extends ParamListBase>(): TypedNavigator<
return function<ParamList extends ParamListBase>(): TypedNavigator<
ParamList,
ScreenOptions,
typeof Navigator
> => {
> {
if (arguments[0] !== undefined) {
throw new Error(
"Creating a navigator doesn't take an argument. Maybe you are trying to use React Navigation 4 API with React Navigation 5?"
);
}
return {
Navigator,
Screen,