mirror of
https://github.com/zhigang1992/react-navigation.git
synced 2026-04-28 12:25:21 +08:00
Compare commits
27 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
57d2bbeb96 | ||
|
|
e3c38aefe8 | ||
|
|
fb7da05beb | ||
|
|
5d097b92f4 | ||
|
|
60618d5d1d | ||
|
|
28e1753434 | ||
|
|
48b1bd965b | ||
|
|
6e80d7c75a | ||
|
|
1c75f17a86 | ||
|
|
e542c84e29 | ||
|
|
a7265155bd | ||
|
|
69e40950b1 | ||
|
|
3deec699ee | ||
|
|
2c875e39ae | ||
|
|
8788dd77b4 | ||
|
|
71cb16dc7f | ||
|
|
445dcfcdf2 | ||
|
|
ec97b610c5 | ||
|
|
b9f50bd012 | ||
|
|
dbf165dbe7 | ||
|
|
bd09153448 | ||
|
|
c766a66be8 | ||
|
|
53bb89c1e3 | ||
|
|
4c29c57fe2 | ||
|
|
368b6812bf | ||
|
|
73d416ec02 | ||
|
|
89786a39ab |
78
CHANGELOG.md
78
CHANGELOG.md
@@ -7,9 +7,76 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [3.8.1] - [2019-04-12](https://github.com/react-navigation/react-navigation/releases/tag/3.8.1)
|
||||||
|
|
||||||
## Changed
|
## Changed
|
||||||
|
|
||||||
- Updated react-native-gesture-handler to ~3.1.0
|
- Add missing type for `enableURLHandling` to TypeScript definition (#5803)
|
||||||
|
- Update Flow types (#5806)
|
||||||
|
|
||||||
|
## [3.8.0] - [2019-04-12](https://github.com/react-navigation/react-navigation/releases/tag/3.8.0)
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
|
||||||
|
- `onRefresh` on exported lists `FlatList` and `SectionList` works as expected now (no need to add `refreshControl` prop explicitly)
|
||||||
|
- On Android, the exported `ScrollView` is now same as the React Native ScrollView (but with scroll-to-top behavior added), whereas on iOS we still use react-native-gesture-handler ScrollView. We can change Android back to react-native-gesture-handler ScrollView when https://github.com/kmagiera/react-native-gesture-handler/issues/560 is resolved.
|
||||||
|
- Look for `scrollResponderScrollTo` function in our ScrollView, in react-native 0.59 the interface appears to have changed for FlatList such that this is needed. (react-navigation-native#20)
|
||||||
|
|
||||||
|
## Changed
|
||||||
|
|
||||||
|
- Stack header style improvements for web (react-navigation-stack#104)
|
||||||
|
|
||||||
|
## [3.7.1] - [2019-04-10](https://github.com/react-navigation/react-navigation/releases/tag/3.7.1)
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
|
||||||
|
- Update Flow types (#5800 and #5801)
|
||||||
|
- More open `navigationOptions` types for bottom tab navigator config (#5796)
|
||||||
|
- Fix hit slop for bottom tab bar (react-navigation-tabs#110)
|
||||||
|
|
||||||
|
## Added
|
||||||
|
|
||||||
|
- Add accessibility role and state to bottom bar (react-navigation-tabs#90)
|
||||||
|
- Hide tab bar when keyboard is shown (react-navigation-tabs#112)
|
||||||
|
- Specify default values for getAccessibilityX on tabs (react-navigation-tabs##116)
|
||||||
|
- Add a isFirstRouteInParent method to navigation object (react-navigation-core#51)
|
||||||
|
|
||||||
|
## [3.6.1] - [2019-04-02](https://github.com/react-navigation/react-navigation/releases/tag/3.6.1)
|
||||||
|
|
||||||
|
## Fixed
|
||||||
|
|
||||||
|
- Move event subscriptions to constructor in `withNavigationFocus` to ensure initial `didFocus` event is received.
|
||||||
|
|
||||||
|
## [3.6.0] - [2019-03-31](https://github.com/react-navigation/react-navigation/releases/tag/3.6.0)
|
||||||
|
|
||||||
|
## Added
|
||||||
|
|
||||||
|
- Export TabBarIconProps, TabBarLabelProps, DrawerIconProps, DrawerLabelProps, ScreenProps and InitialLayout.
|
||||||
|
- Add `disabled` prop to HeaderBackButton
|
||||||
|
- Add `StackViewTransitionConfigs.NoAnimation`
|
||||||
|
- Add `drawerContainerStyle` to navigator config for drawer navigator
|
||||||
|
|
||||||
|
## [3.5.1] - [2019-03-19](https://github.com/react-navigation/react-navigation/releases/tag/3.5.1)
|
||||||
|
|
||||||
|
## Added
|
||||||
|
|
||||||
|
- Export StackGestureContext and DrawerGestureContext
|
||||||
|
- Add missing type for withOrientation
|
||||||
|
|
||||||
|
## Fixed
|
||||||
|
|
||||||
|
- Fix header HeaderBackButton title TypeScript type
|
||||||
|
|
||||||
|
## [3.5.0] - [2019-03-19](https://github.com/react-navigation/react-navigation/releases/tag/3.5.0)
|
||||||
|
|
||||||
|
## Fixed
|
||||||
|
|
||||||
|
- Fixed types for `BottomTabBar`
|
||||||
|
- export `NavigationContext` type
|
||||||
|
|
||||||
|
## Changed
|
||||||
|
|
||||||
|
- Make 'react-native-gesture-handler' a peer dependency rather than a hard dependency
|
||||||
|
|
||||||
## [3.4.1] - [2019-03-16](https://github.com/react-navigation/react-navigation/releases/tag/3.4.1)
|
## [3.4.1] - [2019-03-16](https://github.com/react-navigation/react-navigation/releases/tag/3.4.1)
|
||||||
|
|
||||||
@@ -182,7 +249,14 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|||||||
|
|
||||||
- [2.x](https://github.com/react-navigation/react-navigation/blob/2.x/CHANGELOG.md)
|
- [2.x](https://github.com/react-navigation/react-navigation/blob/2.x/CHANGELOG.md)
|
||||||
|
|
||||||
[Unreleased]: https://github.com/react-navigation/react-navigation/compare/3.4.1...HEAD
|
[Unreleased]: https://github.com/react-navigation/react-navigation/compare/3.8.1...HEAD
|
||||||
|
[3.8.1]: https://github.com/react-navigation/react-navigation/compare/3.8.0...3.8.1
|
||||||
|
[3.8.0]: https://github.com/react-navigation/react-navigation/compare/3.7.1...3.8.0
|
||||||
|
[3.7.1]: https://github.com/react-navigation/react-navigation/compare/3.6.1...3.7.1
|
||||||
|
[3.6.1]: https://github.com/react-navigation/react-navigation/compare/3.6.0...3.6.1
|
||||||
|
[3.6.0]: https://github.com/react-navigation/react-navigation/compare/3.5.1...3.6.0
|
||||||
|
[3.5.1]: https://github.com/react-navigation/react-navigation/compare/3.5.0...3.5.1
|
||||||
|
[3.5.0]: https://github.com/react-navigation/react-navigation/compare/3.4.1...3.5.0
|
||||||
[3.4.1]: https://github.com/react-navigation/react-navigation/compare/3.4.0...3.4.1
|
[3.4.1]: https://github.com/react-navigation/react-navigation/compare/3.4.0...3.4.1
|
||||||
[3.4.0]: https://github.com/react-navigation/react-navigation/compare/3.3.2...3.4.0
|
[3.4.0]: https://github.com/react-navigation/react-navigation/compare/3.3.2...3.4.0
|
||||||
[3.3.2]: https://github.com/react-navigation/react-navigation/compare/3.3.1...3.3.2
|
[3.3.2]: https://github.com/react-navigation/react-navigation/compare/3.3.1...3.3.2
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ See our [Contributing Guide](CONTRIBUTING.md)!
|
|||||||
|
|
||||||
#### Is this the only library available for navigation?
|
#### Is this the only library available for navigation?
|
||||||
|
|
||||||
Certainly not! There other libraries - which, depending on your needs, can be better or worse suited for your project. Read more in the [alternative libraries](https://reactnavigation.org/docs/alternatives.html) documentation, and read React Navigation's [pitch & anti-pitch](https://reactnavigation.org/docs/pitch.html) to understand the tradeoffs.
|
Certainly not! There are other libraries - which, depending on your needs, can be better or worse suited for your project. Read more in the [alternative libraries](https://reactnavigation.org/docs/alternatives.html) documentation, and read React Navigation's [pitch & anti-pitch](https://reactnavigation.org/docs/pitch.html) to understand the tradeoffs.
|
||||||
|
|
||||||
#### Can I use this library for web?
|
#### Can I use this library for web?
|
||||||
|
|
||||||
|
|||||||
3
babel.config.js
Normal file
3
babel.config.js
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
module.exports = {
|
||||||
|
presets: ['module:metro-react-native-babel-preset'],
|
||||||
|
};
|
||||||
@@ -5,6 +5,7 @@ import {
|
|||||||
StatusBar,
|
StatusBar,
|
||||||
StyleSheet,
|
StyleSheet,
|
||||||
View,
|
View,
|
||||||
|
Platform,
|
||||||
} from 'react-native';
|
} from 'react-native';
|
||||||
import { createStackNavigator, createSwitchNavigator } from 'react-navigation';
|
import { createStackNavigator, createSwitchNavigator } from 'react-navigation';
|
||||||
import { Button } from './commonComponents/ButtonWithMargin';
|
import { Button } from './commonComponents/ButtonWithMargin';
|
||||||
@@ -53,7 +54,7 @@ class HomeScreen extends React.Component<any, any> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
signOutAsync = async () => {
|
signOutAsync = async () => {
|
||||||
await AsyncStorage.clear();
|
Platform.OS === 'ios' ? await AsyncStorage.getAllKeys().then(AsyncStorage.multiRemove) : await AsyncStorage.clear()
|
||||||
this.props.navigation.navigate('Auth');
|
this.props.navigation.navigate('Auth');
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -73,7 +74,7 @@ class OtherScreen extends React.Component<any, any> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
signOutAsync = async () => {
|
signOutAsync = async () => {
|
||||||
await AsyncStorage.clear();
|
Platform.OS === 'ios' ? await AsyncStorage.getAllKeys().then(AsyncStorage.multiRemove) : await AsyncStorage.clear()
|
||||||
this.props.navigation.navigate('Auth');
|
this.props.navigation.navigate('Auth');
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
85
flow/react-navigation.js
vendored
85
flow/react-navigation.js
vendored
@@ -238,6 +238,7 @@ declare module 'react-navigation' {
|
|||||||
*/
|
*/
|
||||||
index: number,
|
index: number,
|
||||||
routes: Array<NavigationRoute>,
|
routes: Array<NavigationRoute>,
|
||||||
|
isTransitioning?: boolean,
|
||||||
};
|
};
|
||||||
|
|
||||||
declare export type NavigationRoute =
|
declare export type NavigationRoute =
|
||||||
@@ -352,12 +353,8 @@ declare module 'react-navigation' {
|
|||||||
declare export type NavigationScreenComponent<
|
declare export type NavigationScreenComponent<
|
||||||
Route: NavigationRoute,
|
Route: NavigationRoute,
|
||||||
Options: {},
|
Options: {},
|
||||||
Props: {}
|
Props: NavigationNavigatorProps<Options, Route>
|
||||||
> = React$ComponentType<{
|
> = React$ComponentType<Props> & withOptionalNavigationOptions<Options>;
|
||||||
...Props,
|
|
||||||
...NavigationNavigatorProps<Options, Route>,
|
|
||||||
}> &
|
|
||||||
withOptionalNavigationOptions<Options>;
|
|
||||||
|
|
||||||
declare interface withRouter<State, Options> {
|
declare interface withRouter<State, Options> {
|
||||||
router: NavigationRouter<State, Options>;
|
router: NavigationRouter<State, Options>;
|
||||||
@@ -366,11 +363,8 @@ declare module 'react-navigation' {
|
|||||||
declare export type NavigationNavigator<
|
declare export type NavigationNavigator<
|
||||||
State: NavigationState,
|
State: NavigationState,
|
||||||
Options: {},
|
Options: {},
|
||||||
Props: {}
|
Props: NavigationNavigatorProps<Options, State>
|
||||||
> = React$StatelessFunctionalComponent<{
|
> = React$ComponentType<Props> &
|
||||||
...Props,
|
|
||||||
...NavigationNavigatorProps<Options, State>,
|
|
||||||
}> &
|
|
||||||
withRouter<State, Options> &
|
withRouter<State, Options> &
|
||||||
withOptionalNavigationOptions<Options>;
|
withOptionalNavigationOptions<Options>;
|
||||||
|
|
||||||
@@ -407,7 +401,9 @@ declare module 'react-navigation' {
|
|||||||
NavigationSceneRendererProps & {
|
NavigationSceneRendererProps & {
|
||||||
mode: HeaderMode,
|
mode: HeaderMode,
|
||||||
router: NavigationRouter<NavigationState, NavigationStackScreenOptions>,
|
router: NavigationRouter<NavigationState, NavigationStackScreenOptions>,
|
||||||
getScreenDetails: NavigationScene => NavigationScreenDetails<NavigationStackScreenOptions>,
|
getScreenDetails: NavigationScene => NavigationScreenDetails<
|
||||||
|
NavigationStackScreenOptions
|
||||||
|
>,
|
||||||
leftInterpolator: (props: NavigationSceneRendererProps) => {},
|
leftInterpolator: (props: NavigationSceneRendererProps) => {},
|
||||||
titleInterpolator: (props: NavigationSceneRendererProps) => {},
|
titleInterpolator: (props: NavigationSceneRendererProps) => {},
|
||||||
rightInterpolator: (props: NavigationSceneRendererProps) => {},
|
rightInterpolator: (props: NavigationSceneRendererProps) => {},
|
||||||
@@ -460,16 +456,22 @@ declare module 'react-navigation' {
|
|||||||
prevTransitionProps: ?NavigationTransitionProps,
|
prevTransitionProps: ?NavigationTransitionProps,
|
||||||
isModal: boolean
|
isModal: boolean
|
||||||
) => TransitionConfig,
|
) => TransitionConfig,
|
||||||
onTransitionStart?: () => void,
|
onTransitionStart?: (
|
||||||
onTransitionEnd?: () => void,
|
transitionProps: NavigationTransitionProps,
|
||||||
|
prevTransitionProps: ?NavigationTransitionProps
|
||||||
|
) => void,
|
||||||
|
onTransitionEnd?: (
|
||||||
|
transitionProps: NavigationTransitionProps,
|
||||||
|
prevTransitionProps: ?NavigationTransitionProps
|
||||||
|
) => void,
|
||||||
transparentCard?: boolean,
|
transparentCard?: boolean,
|
||||||
disableKeyboardHandling?: boolean,
|
disableKeyboardHandling?: boolean,
|
||||||
|};
|
|};
|
||||||
|
|
||||||
declare export type StackNavigatorConfig = {|
|
declare export type StackNavigatorConfig = $Shape<{|
|
||||||
...NavigationStackViewConfig,
|
...NavigationStackViewConfig,
|
||||||
...NavigationStackRouterConfig,
|
...NavigationStackRouterConfig,
|
||||||
|};
|
|}>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Switch Navigator
|
* Switch Navigator
|
||||||
@@ -586,8 +588,8 @@ declare module 'react-navigation' {
|
|||||||
fallback?: $ElementType<
|
fallback?: $ElementType<
|
||||||
$PropertyType<
|
$PropertyType<
|
||||||
{|
|
{|
|
||||||
...{| params: {| [ParamName]: void |} |},
|
|
||||||
...$Exact<S>,
|
...$Exact<S>,
|
||||||
|
...{| params: {| [ParamName]: void |} |},
|
||||||
|},
|
|},
|
||||||
'params'
|
'params'
|
||||||
>,
|
>,
|
||||||
@@ -596,14 +598,14 @@ declare module 'react-navigation' {
|
|||||||
) => $ElementType<
|
) => $ElementType<
|
||||||
$PropertyType<
|
$PropertyType<
|
||||||
{|
|
{|
|
||||||
...{| params: {| [ParamName]: void |} |},
|
|
||||||
...$Exact<S>,
|
...$Exact<S>,
|
||||||
|
...{| params: {| [ParamName]: void |} |},
|
||||||
|},
|
|},
|
||||||
'params'
|
'params'
|
||||||
>,
|
>,
|
||||||
ParamName
|
ParamName
|
||||||
>,
|
>,
|
||||||
dangerouslyGetParent: () => NavigationScreenProp<*>,
|
dangerouslyGetParent: () => ?NavigationScreenProp<NavigationState>,
|
||||||
isFocused: () => boolean,
|
isFocused: () => boolean,
|
||||||
// Shared action creators that exist for all routers
|
// Shared action creators that exist for all routers
|
||||||
goBack: (routeKey?: ?string) => boolean,
|
goBack: (routeKey?: ?string) => boolean,
|
||||||
@@ -658,7 +660,9 @@ declare module 'react-navigation' {
|
|||||||
onWillBlur?: NavigationEventCallback,
|
onWillBlur?: NavigationEventCallback,
|
||||||
onDidBlur?: NavigationEventCallback,
|
onDidBlur?: NavigationEventCallback,
|
||||||
};
|
};
|
||||||
declare export var NavigationEvents: React$ComponentType<_NavigationEventsProps>;
|
declare export var NavigationEvents: React$ComponentType<
|
||||||
|
_NavigationEventsProps
|
||||||
|
>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Navigation container
|
* Navigation container
|
||||||
@@ -667,11 +671,8 @@ declare module 'react-navigation' {
|
|||||||
declare export type NavigationContainer<
|
declare export type NavigationContainer<
|
||||||
State: NavigationState,
|
State: NavigationState,
|
||||||
Options: {},
|
Options: {},
|
||||||
Props: {}
|
Props: NavigationContainerProps<Options, State>
|
||||||
> = React$ComponentType<{
|
> = React$ComponentType<Props> &
|
||||||
...Props,
|
|
||||||
...NavigationContainerProps<State, Options>,
|
|
||||||
}> &
|
|
||||||
withRouter<State, Options> &
|
withRouter<State, Options> &
|
||||||
withOptionalNavigationOptions<Options>;
|
withOptionalNavigationOptions<Options>;
|
||||||
|
|
||||||
@@ -709,6 +710,7 @@ declare module 'react-navigation' {
|
|||||||
isStale: boolean,
|
isStale: boolean,
|
||||||
key: string,
|
key: string,
|
||||||
route: NavigationRoute,
|
route: NavigationRoute,
|
||||||
|
descriptor: ?NavigationDescriptor,
|
||||||
};
|
};
|
||||||
|
|
||||||
declare export type NavigationTransitionProps = $Shape<{
|
declare export type NavigationTransitionProps = $Shape<{
|
||||||
@@ -920,9 +922,9 @@ declare module 'react-navigation' {
|
|||||||
router: NavigationRouter<S, O>,
|
router: NavigationRouter<S, O>,
|
||||||
};
|
};
|
||||||
|
|
||||||
declare type NavigationDescriptor = {
|
declare export type NavigationDescriptor = {
|
||||||
key: string,
|
key: string,
|
||||||
state: NavigationLeafRoute | NavigationStateRoute,
|
state: NavigationRoute,
|
||||||
navigation: NavigationScreenProp<*>,
|
navigation: NavigationScreenProp<*>,
|
||||||
getComponent: () => React$ComponentType<{}>,
|
getComponent: () => React$ComponentType<{}>,
|
||||||
};
|
};
|
||||||
@@ -930,6 +932,7 @@ declare module 'react-navigation' {
|
|||||||
declare type NavigationView<O, S> = React$ComponentType<{
|
declare type NavigationView<O, S> = React$ComponentType<{
|
||||||
descriptors: { [key: string]: NavigationDescriptor },
|
descriptors: { [key: string]: NavigationDescriptor },
|
||||||
navigation: NavigationScreenProp<S>,
|
navigation: NavigationScreenProp<S>,
|
||||||
|
navigationConfig: *,
|
||||||
}>;
|
}>;
|
||||||
|
|
||||||
declare export function createNavigator<O: *, S: *, NavigatorConfig: *>(
|
declare export function createNavigator<O: *, S: *, NavigatorConfig: *>(
|
||||||
@@ -1037,7 +1040,9 @@ declare module 'react-navigation' {
|
|||||||
*/
|
*/
|
||||||
transitionConfig?: () => TransitionConfig,
|
transitionConfig?: () => TransitionConfig,
|
||||||
} & NavigationNavigatorProps<NavigationStackScreenOptions, NavigationState>;
|
} & NavigationNavigatorProps<NavigationStackScreenOptions, NavigationState>;
|
||||||
declare export var CardStackTransitioner: React$ComponentType<_CardStackTransitionerProps>;
|
declare export var CardStackTransitioner: React$ComponentType<
|
||||||
|
_CardStackTransitionerProps
|
||||||
|
>;
|
||||||
|
|
||||||
declare type _CardStackProps = {
|
declare type _CardStackProps = {
|
||||||
screenProps?: {},
|
screenProps?: {},
|
||||||
@@ -1108,7 +1113,9 @@ declare module 'react-navigation' {
|
|||||||
truncatedTitle?: ?string,
|
truncatedTitle?: ?string,
|
||||||
width?: ?number,
|
width?: ?number,
|
||||||
};
|
};
|
||||||
declare export var HeaderBackButton: React$ComponentType<_HeaderBackButtonProps>;
|
declare export var HeaderBackButton: React$ComponentType<
|
||||||
|
_HeaderBackButtonProps
|
||||||
|
>;
|
||||||
|
|
||||||
declare type _DrawerViewProps = {
|
declare type _DrawerViewProps = {
|
||||||
drawerLockMode?: 'unlocked' | 'locked-closed' | 'locked-open',
|
drawerLockMode?: 'unlocked' | 'locked-closed' | 'locked-open',
|
||||||
@@ -1174,7 +1181,7 @@ declare module 'react-navigation' {
|
|||||||
};
|
};
|
||||||
declare export var TabView: React$ComponentType<_TabViewProps>;
|
declare export var TabView: React$ComponentType<_TabViewProps>;
|
||||||
|
|
||||||
declare type _TabBarTopProps = {
|
declare type _MaterialTopTabBarProps = {
|
||||||
activeTintColor: string,
|
activeTintColor: string,
|
||||||
inactiveTintColor: string,
|
inactiveTintColor: string,
|
||||||
showIcon: boolean,
|
showIcon: boolean,
|
||||||
@@ -1198,9 +1205,18 @@ declare module 'react-navigation' {
|
|||||||
labelStyle?: TextStyleProp,
|
labelStyle?: TextStyleProp,
|
||||||
iconStyle?: ViewStyleProp,
|
iconStyle?: ViewStyleProp,
|
||||||
};
|
};
|
||||||
declare export var TabBarTop: React$ComponentType<_TabBarTopProps>;
|
declare export var MaterialTopTabBar: React$ComponentType<
|
||||||
|
_MaterialTopTabBarProps
|
||||||
|
>;
|
||||||
|
|
||||||
declare type _TabBarBottomProps = {
|
declare type _BottomTabBarButtonComponentProps = {
|
||||||
|
onPress: () => void,
|
||||||
|
onLongPress: () => void,
|
||||||
|
testID: string,
|
||||||
|
accessibilityLabel: string,
|
||||||
|
style: ViewStyleProp,
|
||||||
|
};
|
||||||
|
declare type _BottomTabBarProps = {
|
||||||
activeTintColor: string,
|
activeTintColor: string,
|
||||||
activeBackgroundColor: string,
|
activeBackgroundColor: string,
|
||||||
adaptive?: boolean,
|
adaptive?: boolean,
|
||||||
@@ -1223,13 +1239,16 @@ declare module 'react-navigation' {
|
|||||||
}) => void,
|
}) => void,
|
||||||
getTestIDProps: (scene: TabScene) => (scene: TabScene) => any,
|
getTestIDProps: (scene: TabScene) => (scene: TabScene) => any,
|
||||||
renderIcon: (scene: TabScene) => React$Node,
|
renderIcon: (scene: TabScene) => React$Node,
|
||||||
|
getButtonComponent: (
|
||||||
|
scene: TabScene
|
||||||
|
) => React$ComponentType<_BottomTabBarButtonComponentProps>,
|
||||||
style?: ViewStyleProp,
|
style?: ViewStyleProp,
|
||||||
animateStyle?: ViewStyleProp,
|
animateStyle?: ViewStyleProp,
|
||||||
labelStyle?: TextStyleProp,
|
labelStyle?: TextStyleProp,
|
||||||
tabStyle?: ViewStyleProp,
|
tabStyle?: ViewStyleProp,
|
||||||
showIcon?: boolean,
|
showIcon?: boolean,
|
||||||
};
|
};
|
||||||
declare export var TabBarBottom: React$ComponentType<_TabBarBottomProps>;
|
declare export var BottomTabBar: React$ComponentType<_BottomTabBarProps>;
|
||||||
|
|
||||||
declare export function withNavigation<
|
declare export function withNavigation<
|
||||||
Props: {},
|
Props: {},
|
||||||
|
|||||||
17
package.json
17
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "react-navigation",
|
"name": "react-navigation",
|
||||||
"version": "3.4.1",
|
"version": "3.8.1",
|
||||||
"description": "Routing and navigation for your React Native apps",
|
"description": "Routing and navigation for your React Native apps",
|
||||||
"main": "src/react-navigation.js",
|
"main": "src/react-navigation.js",
|
||||||
"types": "typescript/react-navigation.d.ts",
|
"types": "typescript/react-navigation.d.ts",
|
||||||
@@ -36,11 +36,11 @@
|
|||||||
"react-native": "*"
|
"react-native": "*"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@react-navigation/core": "3.2.0",
|
"@react-navigation/core": "~3.3.0",
|
||||||
"@react-navigation/native": "~3.1.5",
|
"@react-navigation/native": "~3.4.0",
|
||||||
"react-navigation-drawer": "1.3.0",
|
"react-navigation-drawer": "1.2.1",
|
||||||
"react-navigation-stack": "1.1.1",
|
"react-navigation-stack": "1.3.0",
|
||||||
"react-navigation-tabs": "1.0.2"
|
"react-navigation-tabs": "1.1.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/react-native": "~0.57.38",
|
"@types/react-native": "~0.57.38",
|
||||||
@@ -50,7 +50,6 @@
|
|||||||
"babel-jest": "^22.4.1",
|
"babel-jest": "^22.4.1",
|
||||||
"babel-preset-react-native": "^2.1.0",
|
"babel-preset-react-native": "^2.1.0",
|
||||||
"codecov": "^2.2.0",
|
"codecov": "^2.2.0",
|
||||||
"conventional-changelog-cli": "^2.0.5",
|
|
||||||
"eslint": "^4.2.0",
|
"eslint": "^4.2.0",
|
||||||
"eslint-config-prettier": "^2.9.0",
|
"eslint-config-prettier": "^2.9.0",
|
||||||
"eslint-plugin-import": "^2.7.0",
|
"eslint-plugin-import": "^2.7.0",
|
||||||
@@ -58,13 +57,13 @@
|
|||||||
"eslint-plugin-prettier": "^2.6.0",
|
"eslint-plugin-prettier": "^2.6.0",
|
||||||
"eslint-plugin-react": "^7.1.0",
|
"eslint-plugin-react": "^7.1.0",
|
||||||
"husky": "^0.14.3",
|
"husky": "^0.14.3",
|
||||||
"jest": "^22.1.3",
|
"jest": "^24.5.0",
|
||||||
"jest-expo": "^25.1.0",
|
"jest-expo": "^25.1.0",
|
||||||
"lint-staged": "^4.2.1",
|
"lint-staged": "^4.2.1",
|
||||||
"prettier": "^1.12.1",
|
"prettier": "^1.12.1",
|
||||||
"prettier-eslint": "^8.8.1",
|
"prettier-eslint": "^8.8.1",
|
||||||
"react": "16.6.1",
|
"react": "16.6.1",
|
||||||
"react-native": "^0.52.0",
|
"react-native": "~0.57.7",
|
||||||
"react-native-vector-icons": "^4.2.0",
|
"react-native-vector-icons": "^4.2.0",
|
||||||
"react-test-renderer": "^16.0.0",
|
"react-test-renderer": "^16.0.0",
|
||||||
"release-it": "^7.6.1"
|
"release-it": "^7.6.1"
|
||||||
|
|||||||
9
src/react-navigation.js
vendored
9
src/react-navigation.js
vendored
@@ -121,6 +121,15 @@ module.exports = {
|
|||||||
return require('react-navigation-drawer').createDrawerNavigator;
|
return require('react-navigation-drawer').createDrawerNavigator;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Gesture contexts
|
||||||
|
|
||||||
|
get StackGestureContext() {
|
||||||
|
return require('react-navigation-stack').StackGestureContext;
|
||||||
|
},
|
||||||
|
get DrawerGestureContext() {
|
||||||
|
return require('react-navigation-drawer').DrawerGestureContext;
|
||||||
|
},
|
||||||
|
|
||||||
// Routers and Actions
|
// Routers and Actions
|
||||||
|
|
||||||
get DrawerRouter() {
|
get DrawerRouter() {
|
||||||
|
|||||||
110
typescript/react-navigation.d.ts
vendored
110
typescript/react-navigation.d.ts
vendored
@@ -33,6 +33,8 @@
|
|||||||
|
|
||||||
declare module 'react-navigation' {
|
declare module 'react-navigation' {
|
||||||
import * as React from 'react';
|
import * as React from 'react';
|
||||||
|
import { PanGestureHandler } from 'react-native-gesture-handler';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Animated,
|
Animated,
|
||||||
TextStyle,
|
TextStyle,
|
||||||
@@ -64,10 +66,14 @@ declare module 'react-navigation' {
|
|||||||
|
|
||||||
export const HeaderStyleInterpolator: HeaderStyleInterpolatorStatic;
|
export const HeaderStyleInterpolator: HeaderStyleInterpolatorStatic;
|
||||||
|
|
||||||
|
export type ScreenProps = {
|
||||||
|
[key: string]: any;
|
||||||
|
}
|
||||||
|
|
||||||
// @todo - any..
|
// @todo - any..
|
||||||
export function getActiveChildNavigationOptions<S>(
|
export function getActiveChildNavigationOptions<S>(
|
||||||
navigation: NavigationProp<S>,
|
navigation: NavigationProp<S>,
|
||||||
screenProps?: object
|
screenProps?: ScreenProps
|
||||||
): NavigationParams;
|
): NavigationParams;
|
||||||
|
|
||||||
// @todo when we split types into common, native and web,
|
// @todo when we split types into common, native and web,
|
||||||
@@ -170,7 +176,7 @@ declare module 'react-navigation' {
|
|||||||
|
|
||||||
export type NavigationScreenOptionsGetter<Options> = (
|
export type NavigationScreenOptionsGetter<Options> = (
|
||||||
navigation: NavigationScreenProp<NavigationRoute<any>>,
|
navigation: NavigationScreenProp<NavigationRoute<any>>,
|
||||||
screenProps?: { [key: string]: any }
|
screenProps?: ScreenProps
|
||||||
) => Options;
|
) => Options;
|
||||||
|
|
||||||
export interface NavigationRouter<State = NavigationState, Options = {}> {
|
export interface NavigationRouter<State = NavigationState, Options = {}> {
|
||||||
@@ -231,7 +237,7 @@ declare module 'react-navigation' {
|
|||||||
|
|
||||||
export interface NavigationScreenConfigProps {
|
export interface NavigationScreenConfigProps {
|
||||||
navigation: NavigationScreenProp<NavigationRoute>;
|
navigation: NavigationScreenProp<NavigationRoute>;
|
||||||
screenProps: { [key: string]: any };
|
screenProps: ScreenProps;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type NavigationScreenConfig<Options> =
|
export type NavigationScreenConfig<Options> =
|
||||||
@@ -543,14 +549,14 @@ declare module 'react-navigation' {
|
|||||||
export interface NavigationTabRouterConfig
|
export interface NavigationTabRouterConfig
|
||||||
extends NavigationTabRouterConfigBase {
|
extends NavigationTabRouterConfigBase {
|
||||||
defaultNavigationOptions?: NavigationScreenConfig<NavigationScreenOptions>;
|
defaultNavigationOptions?: NavigationScreenConfig<NavigationScreenOptions>;
|
||||||
navigationOptions?: NavigationTabRouterConfigBase;
|
navigationOptions?: NavigationScreenConfig<any>;
|
||||||
}
|
}
|
||||||
export interface NavigationBottomTabRouterConfig
|
export interface NavigationBottomTabRouterConfig
|
||||||
extends NavigationTabRouterConfigBase {
|
extends NavigationTabRouterConfigBase {
|
||||||
defaultNavigationOptions?: NavigationScreenConfig<
|
defaultNavigationOptions?: NavigationScreenConfig<
|
||||||
NavigationBottomTabScreenOptions
|
NavigationBottomTabScreenOptions
|
||||||
>;
|
>;
|
||||||
navigationOptions?: NavigationTabRouterConfigBase;
|
navigationOptions?: NavigationScreenConfig<any>;
|
||||||
}
|
}
|
||||||
export interface TabScene {
|
export interface TabScene {
|
||||||
route: NavigationRoute;
|
route: NavigationRoute;
|
||||||
@@ -558,23 +564,28 @@ declare module 'react-navigation' {
|
|||||||
index: number;
|
index: number;
|
||||||
tintColor?: string;
|
tintColor?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface TabBarIconProps {
|
||||||
|
tintColor: string | null;
|
||||||
|
focused: boolean;
|
||||||
|
horizontal: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TabBarLabelProps {
|
||||||
|
tintColor: string | null;
|
||||||
|
focused: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
// tslint:disable-next-line:strict-export-declare-modifiers
|
// tslint:disable-next-line:strict-export-declare-modifiers
|
||||||
interface NavigationTabScreenOptionsBase {
|
interface NavigationTabScreenOptionsBase {
|
||||||
title?: string;
|
title?: string;
|
||||||
tabBarIcon?:
|
tabBarIcon?:
|
||||||
| React.ReactElement<any>
|
| React.ReactElement<any>
|
||||||
| ((options: {
|
| ((options: TabBarIconProps) => React.ReactElement<any> | null);
|
||||||
tintColor: string | null;
|
|
||||||
focused: boolean;
|
|
||||||
horizontal: boolean;
|
|
||||||
}) => React.ReactElement<any> | null);
|
|
||||||
tabBarLabel?:
|
tabBarLabel?:
|
||||||
| string
|
| string
|
||||||
| React.ReactElement<any>
|
| React.ReactElement<any>
|
||||||
| ((options: {
|
| ((options: TabBarLabelProps) => React.ReactElement<any> | string | null);
|
||||||
tintColor: string | null;
|
|
||||||
focused: boolean;
|
|
||||||
}) => React.ReactElement<any> | string | null);
|
|
||||||
tabBarVisible?: boolean;
|
tabBarVisible?: boolean;
|
||||||
tabBarTestIDProps?: { testID?: string; accessibilityLabel?: string };
|
tabBarTestIDProps?: { testID?: string; accessibilityLabel?: string };
|
||||||
}
|
}
|
||||||
@@ -606,21 +617,25 @@ declare module 'react-navigation' {
|
|||||||
|
|
||||||
export type DrawerLockMode = 'unlocked' | 'locked-closed' | 'locked-open';
|
export type DrawerLockMode = 'unlocked' | 'locked-closed' | 'locked-open';
|
||||||
|
|
||||||
|
export interface DrawerIconProps {
|
||||||
|
tintColor: string | null;
|
||||||
|
focused: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface DrawerLabelProps {
|
||||||
|
tintColor: string | null;
|
||||||
|
focused: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
export interface NavigationDrawerScreenOptions {
|
export interface NavigationDrawerScreenOptions {
|
||||||
title?: string;
|
title?: string;
|
||||||
drawerIcon?:
|
drawerIcon?:
|
||||||
| React.ReactElement<any>
|
| React.ReactElement<any>
|
||||||
| ((options: {
|
| ((options: DrawerIconProps) => React.ReactElement<any> | null);
|
||||||
tintColor: string | null;
|
|
||||||
focused: boolean;
|
|
||||||
}) => React.ReactElement<any> | null);
|
|
||||||
drawerLabel?:
|
drawerLabel?:
|
||||||
| string
|
| string
|
||||||
| React.ReactElement<any>
|
| React.ReactElement<any>
|
||||||
| ((options: {
|
| ((options: DrawerLabelProps) => React.ReactElement<any> | null);
|
||||||
tintColor: string | null;
|
|
||||||
focused: boolean;
|
|
||||||
}) => React.ReactElement<any> | null);
|
|
||||||
drawerLockMode?: DrawerLockMode;
|
drawerLockMode?: DrawerLockMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -721,7 +736,7 @@ declare module 'react-navigation' {
|
|||||||
export interface NavigationNavigatorProps<O = {}, S = {}> {
|
export interface NavigationNavigatorProps<O = {}, S = {}> {
|
||||||
detached?: boolean;
|
detached?: boolean;
|
||||||
navigation?: NavigationProp<S>;
|
navigation?: NavigationProp<S>;
|
||||||
screenProps?: { [key: string]: any };
|
screenProps?: ScreenProps;
|
||||||
navigationOptions?: O;
|
navigationOptions?: O;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -776,7 +791,7 @@ declare module 'react-navigation' {
|
|||||||
scene: NavigationScene;
|
scene: NavigationScene;
|
||||||
index: number;
|
index: number;
|
||||||
|
|
||||||
screenProps?: { [key: string]: any };
|
screenProps?: ScreenProps;
|
||||||
}
|
}
|
||||||
|
|
||||||
// The scene renderer props are nearly identical to the props used for rendering
|
// The scene renderer props are nearly identical to the props used for rendering
|
||||||
@@ -832,6 +847,7 @@ declare module 'react-navigation' {
|
|||||||
ModalSlideFromBottomIOS: TransitionConfig;
|
ModalSlideFromBottomIOS: TransitionConfig;
|
||||||
FadeInFromBottomAndroid: TransitionConfig;
|
FadeInFromBottomAndroid: TransitionConfig;
|
||||||
FadeOutToBottomAndroid: TransitionConfig;
|
FadeOutToBottomAndroid: TransitionConfig;
|
||||||
|
NoAnimation: TransitionConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const StackViewTransitionConfigs: StackViewTransitionConfigsType;
|
export const StackViewTransitionConfigs: StackViewTransitionConfigsType;
|
||||||
@@ -866,6 +882,12 @@ declare module 'react-navigation' {
|
|||||||
|
|
||||||
export interface NavigationContainerProps<S = {}, O = {}> {
|
export interface NavigationContainerProps<S = {}, O = {}> {
|
||||||
uriPrefix?: string | RegExp;
|
uriPrefix?: string | RegExp;
|
||||||
|
/**
|
||||||
|
* Controls whether the navigation container handles URLs opened via 'Linking'
|
||||||
|
* @see https://facebook.github.io/react-native/docs/linking
|
||||||
|
* @see https://reactnavigation.org/docs/en/deep-linking.html
|
||||||
|
*/
|
||||||
|
enableURLHandling?: boolean; // defaults to true
|
||||||
onNavigationStateChange?: (
|
onNavigationStateChange?: (
|
||||||
prevNavigationState: NavigationState,
|
prevNavigationState: NavigationState,
|
||||||
nextNavigationState: NavigationState,
|
nextNavigationState: NavigationState,
|
||||||
@@ -874,7 +896,7 @@ declare module 'react-navigation' {
|
|||||||
navigation?: NavigationScreenProp<S>;
|
navigation?: NavigationScreenProp<S>;
|
||||||
persistenceKey?: string | null;
|
persistenceKey?: string | null;
|
||||||
renderLoadingExperimental?: React.ComponentType;
|
renderLoadingExperimental?: React.ComponentType;
|
||||||
screenProps?: any;
|
screenProps?: ScreenProps;
|
||||||
navigationOptions?: O;
|
navigationOptions?: O;
|
||||||
style?: StyleProp<ViewStyle>;
|
style?: StyleProp<ViewStyle>;
|
||||||
}
|
}
|
||||||
@@ -896,7 +918,7 @@ declare module 'react-navigation' {
|
|||||||
): NavigationContainerComponent;
|
): NavigationContainerComponent;
|
||||||
|
|
||||||
router: NavigationRouter<any, any>;
|
router: NavigationRouter<any, any>;
|
||||||
screenProps: { [key: string]: any };
|
screenProps: ScreenProps;
|
||||||
navigationOptions: any;
|
navigationOptions: any;
|
||||||
state: { nav: NavigationState | null };
|
state: { nav: NavigationState | null };
|
||||||
}
|
}
|
||||||
@@ -1039,20 +1061,25 @@ declare module 'react-navigation' {
|
|||||||
lazy?: boolean;
|
lazy?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface InitialLayout {
|
||||||
|
height: number;
|
||||||
|
width: number;
|
||||||
|
}
|
||||||
|
|
||||||
// From navigators/TabNavigator.js
|
// From navigators/TabNavigator.js
|
||||||
export interface TabNavigatorConfig
|
export interface TabNavigatorConfig
|
||||||
extends NavigationTabRouterConfig,
|
extends NavigationTabRouterConfig,
|
||||||
TabViewConfig {
|
TabViewConfig {
|
||||||
lazy?: boolean;
|
lazy?: boolean;
|
||||||
removeClippedSubviews?: boolean;
|
removeClippedSubviews?: boolean;
|
||||||
initialLayout?: { height: number; width: number };
|
initialLayout?: InitialLayout;
|
||||||
}
|
}
|
||||||
export interface BottomTabNavigatorConfig
|
export interface BottomTabNavigatorConfig
|
||||||
extends NavigationBottomTabRouterConfig,
|
extends NavigationBottomTabRouterConfig,
|
||||||
TabViewConfig {
|
TabViewConfig {
|
||||||
lazy?: boolean;
|
lazy?: boolean;
|
||||||
removeClippedSubviews?: boolean;
|
removeClippedSubviews?: boolean;
|
||||||
initialLayout?: { height: number; width: number };
|
initialLayout?: InitialLayout;
|
||||||
}
|
}
|
||||||
|
|
||||||
// From navigators/TabNavigator.js
|
// From navigators/TabNavigator.js
|
||||||
@@ -1102,7 +1129,7 @@ declare module 'react-navigation' {
|
|||||||
iconStyle?: ViewStyle;
|
iconStyle?: ViewStyle;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface TabBarBottomProps {
|
export interface BottomTabBarProps {
|
||||||
activeTintColor: string;
|
activeTintColor: string;
|
||||||
activeBackgroundColor: string;
|
activeBackgroundColor: string;
|
||||||
adaptive?: boolean;
|
adaptive?: boolean;
|
||||||
@@ -1132,7 +1159,7 @@ declare module 'react-navigation' {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const TabBarTop: React.ComponentType<TabBarTopProps>;
|
export const TabBarTop: React.ComponentType<TabBarTopProps>;
|
||||||
export const TabBarBottom: React.ComponentType<TabBarBottomProps>;
|
export const BottomTabBar: React.ComponentType<BottomTabBarProps>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NavigationActions
|
* NavigationActions
|
||||||
@@ -1269,7 +1296,7 @@ declare module 'react-navigation' {
|
|||||||
{
|
{
|
||||||
descriptors: { [key: string]: NavigationDescriptor };
|
descriptors: { [key: string]: NavigationDescriptor };
|
||||||
navigationConfig: O;
|
navigationConfig: O;
|
||||||
screenProps?: { [key: string]: any };
|
screenProps?: ScreenProps;
|
||||||
} & NavigationInjectedProps
|
} & NavigationInjectedProps
|
||||||
>;
|
>;
|
||||||
|
|
||||||
@@ -1314,7 +1341,7 @@ declare module 'react-navigation' {
|
|||||||
Options = any
|
Options = any
|
||||||
> {
|
> {
|
||||||
navigation: NavigationScreenProp<NavigationRoute<Params>, Params>;
|
navigation: NavigationScreenProp<NavigationRoute<Params>, Params>;
|
||||||
screenProps?: { [key: string]: any };
|
screenProps?: ScreenProps;
|
||||||
navigationOptions?: NavigationScreenConfig<Options>;
|
navigationOptions?: NavigationScreenConfig<Options>;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1331,11 +1358,12 @@ declare module 'react-navigation' {
|
|||||||
export interface HeaderBackButtonProps {
|
export interface HeaderBackButtonProps {
|
||||||
onPress?: () => void;
|
onPress?: () => void;
|
||||||
pressColorAndroid?: string;
|
pressColorAndroid?: string;
|
||||||
title?: string;
|
title?: string | null;
|
||||||
titleStyle?: StyleProp<TextStyle>;
|
titleStyle?: StyleProp<TextStyle>;
|
||||||
tintColor?: string;
|
tintColor?: string;
|
||||||
truncatedTitle?: string;
|
truncatedTitle?: string;
|
||||||
width?: number;
|
width?: number;
|
||||||
|
disabled?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const HeaderBackButton: React.ComponentClass<HeaderBackButtonProps>;
|
export const HeaderBackButton: React.ComponentClass<HeaderBackButtonProps>;
|
||||||
@@ -1352,6 +1380,18 @@ declare module 'react-navigation' {
|
|||||||
T extends React.ComponentType<any>
|
T extends React.ComponentType<any>
|
||||||
> = T extends React.ComponentType<infer P> ? P : never;
|
> = T extends React.ComponentType<infer P> ? P : never;
|
||||||
|
|
||||||
|
export interface NavigationOrientationInjectedProps {
|
||||||
|
isLandscape: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function withOrientation<P extends NavigationOrientationInjectedProps>(
|
||||||
|
Component: React.ComponentType<P>
|
||||||
|
): React.ComponentType<Omit<P, keyof NavigationOrientationInjectedProps>>;
|
||||||
|
|
||||||
|
export interface NavigationInjectedProps<P = NavigationParams> {
|
||||||
|
navigation: NavigationScreenProp<NavigationRoute<P>, P>;
|
||||||
|
}
|
||||||
|
|
||||||
export interface NavigationInjectedProps<P = NavigationParams> {
|
export interface NavigationInjectedProps<P = NavigationParams> {
|
||||||
navigation: NavigationScreenProp<NavigationRoute<P>, P>;
|
navigation: NavigationScreenProp<NavigationRoute<P>, P>;
|
||||||
}
|
}
|
||||||
@@ -1426,4 +1466,8 @@ declare module 'react-navigation' {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const SafeAreaView: React.ComponentClass<SafeAreaViewProps>;
|
export const SafeAreaView: React.ComponentClass<SafeAreaViewProps>;
|
||||||
|
|
||||||
|
export const NavigationContext: React.Context<NavigationScreenProp<NavigationRoute>>;
|
||||||
|
export const StackGestureContext: React.Context<React.Ref<PanGestureHandler>>;
|
||||||
|
export const DrawerGestureContext: React.Context<React.Ref<PanGestureHandler>>;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user