mirror of
https://github.com/zhigang1992/react-navigation.git
synced 2026-02-14 22:37:48 +08:00
27 lines
772 B
TypeScript
27 lines
772 B
TypeScript
import * as React from 'react';
|
|
import Screen from './Screen';
|
|
import { ParamListBase, TypedNavigator } from './types';
|
|
|
|
/**
|
|
* Higher order component to create a `Navigator` and `Screen` pair.
|
|
* Custom navigators should wrap the navigator component in `createNavigator` before exporting.
|
|
*
|
|
* @param Navigator The navigtor component to wrap.
|
|
* @returns Factory method to create a `Navigator` and `Screen` pair.
|
|
*/
|
|
export default function createNavigatorFactory<
|
|
ScreenOptions extends object,
|
|
NavigatorComponent extends React.ComponentType<any>
|
|
>(Navigator: NavigatorComponent) {
|
|
return <ParamList extends ParamListBase>(): TypedNavigator<
|
|
ParamList,
|
|
ScreenOptions,
|
|
typeof Navigator
|
|
> => {
|
|
return {
|
|
Navigator,
|
|
Screen,
|
|
};
|
|
};
|
|
}
|