mirror of
https://github.com/zhigang1992/react-navigation.git
synced 2026-04-21 02:27:25 +08:00
Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5a791bf3a9 | ||
|
|
6e80d7c75a | ||
|
|
1c75f17a86 | ||
|
|
e542c84e29 | ||
|
|
a7265155bd | ||
|
|
69e40950b1 | ||
|
|
3deec699ee | ||
|
|
2c875e39ae | ||
|
|
8788dd77b4 | ||
|
|
71cb16dc7f | ||
|
|
445dcfcdf2 | ||
|
|
ec97b610c5 | ||
|
|
b9f50bd012 | ||
|
|
dbf165dbe7 | ||
|
|
bd09153448 | ||
|
|
c766a66be8 | ||
|
|
53bb89c1e3 | ||
|
|
4c29c57fe2 | ||
|
|
368b6812bf | ||
|
|
73d416ec02 | ||
|
|
89786a39ab |
57
CHANGELOG.md
57
CHANGELOG.md
@@ -7,9 +7,57 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [3.7.0] - [2019-04-10](https://github.com/react-navigation/react-navigation/releases/tag/3.7.0)
|
||||||
|
|
||||||
|
## 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
|
## Changed
|
||||||
|
|
||||||
- Updated react-native-gesture-handler to ~3.1.0
|
- 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 +230,12 @@ 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.7.0...HEAD
|
||||||
|
[3.7.0]: https://github.com/react-navigation/react-navigation/compare/3.6.1...3.7.0
|
||||||
|
[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
46
flow/react-navigation.js
vendored
46
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 =
|
||||||
@@ -407,7 +408,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) => {},
|
||||||
@@ -466,10 +469,10 @@ declare module 'react-navigation' {
|
|||||||
disableKeyboardHandling?: boolean,
|
disableKeyboardHandling?: boolean,
|
||||||
|};
|
|};
|
||||||
|
|
||||||
declare export type StackNavigatorConfig = {|
|
declare export type StackNavigatorConfig = $Shape<{|
|
||||||
...NavigationStackViewConfig,
|
...NavigationStackViewConfig,
|
||||||
...NavigationStackRouterConfig,
|
...NavigationStackRouterConfig,
|
||||||
|};
|
|}>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Switch Navigator
|
* Switch Navigator
|
||||||
@@ -658,7 +661,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
|
||||||
@@ -709,6 +714,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 +926,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<{}>,
|
||||||
};
|
};
|
||||||
@@ -1037,7 +1043,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 +1116,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 +1184,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 +1208,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 +1242,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: {},
|
||||||
|
|||||||
16
package.json
16
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "react-navigation",
|
"name": "react-navigation",
|
||||||
"version": "3.4.1",
|
"version": "3.7.0",
|
||||||
"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.3.0",
|
||||||
"react-navigation-drawer": "1.3.0",
|
"react-navigation-drawer": "1.2.1",
|
||||||
"react-navigation-stack": "1.1.1",
|
"react-navigation-stack": "1.2.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",
|
||||||
@@ -58,13 +58,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() {
|
||||||
|
|||||||
100
typescript/react-navigation.d.ts
vendored
100
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> =
|
||||||
@@ -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;
|
||||||
@@ -874,7 +890,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 +912,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 +1055,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 +1123,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 +1153,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 +1290,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 +1335,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 +1352,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 +1374,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 +1460,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