mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-08-11 20:40:20 +00:00
Merge pull request #17517 from petejkim/master
[react-navigation] Fixed type definitions for NavigationActions.*
This commit is contained in:
Vendored
+41
-25
@@ -4,6 +4,7 @@
|
||||
// mhcgrq <https://github.com/mhcgrq>
|
||||
// fangpenlin <https://github.com/fangpenlin>
|
||||
// abrahambotros <https://github.com/abrahambotros>
|
||||
// petejkim <https://github.com/petejkim>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.3
|
||||
|
||||
@@ -188,46 +189,63 @@ export interface NavigationParams {
|
||||
[key: string]: any,
|
||||
}
|
||||
|
||||
export type NavigationNavigateAction = {
|
||||
type: 'Navigation/NAVIGATE',
|
||||
export interface NavigationNavigateActionPayload {
|
||||
routeName: string,
|
||||
params?: NavigationParams,
|
||||
|
||||
// The action to run inside the sub-router
|
||||
action?: NavigationNavigateAction,
|
||||
};
|
||||
}
|
||||
|
||||
export type NavigationBackAction = {
|
||||
type: 'Navigation/BACK',
|
||||
export interface NavigationNavigateAction extends NavigationNavigateActionPayload {
|
||||
type: 'Navigation/NAVIGATE',
|
||||
}
|
||||
|
||||
export interface NavigationBackActionPayload {
|
||||
key?: string | null,
|
||||
};
|
||||
}
|
||||
|
||||
export type NavigationSetParamsAction = {
|
||||
type: 'Navigation/SET_PARAMS',
|
||||
export interface NavigationBackAction extends NavigationBackActionPayload {
|
||||
type: 'Navigation/BACK',
|
||||
}
|
||||
|
||||
export interface NavigationSetParamsActionPayload {
|
||||
// The key of the route where the params should be set
|
||||
key: string,
|
||||
|
||||
// The new params to merge into the existing route params
|
||||
params?: NavigationParams,
|
||||
};
|
||||
}
|
||||
|
||||
export type NavigationInitAction = {
|
||||
type: 'Navigation/INIT',
|
||||
export interface NavigationSetParamsAction extends NavigationSetParamsActionPayload {
|
||||
type: 'Navigation/SET_PARAMS',
|
||||
}
|
||||
|
||||
export interface NavigationInitActionPayload {
|
||||
params?: NavigationParams,
|
||||
};
|
||||
}
|
||||
|
||||
export type NavigationResetAction = {
|
||||
type: 'Navigation/RESET',
|
||||
export interface NavigationInitAction extends NavigationInitActionPayload {
|
||||
type: 'Navigation/INIT',
|
||||
}
|
||||
|
||||
export interface NavigationResetActionPayload {
|
||||
index: number,
|
||||
key?: string | null,
|
||||
actions: Array<NavigationNavigateAction>,
|
||||
};
|
||||
}
|
||||
|
||||
export type NavigationUriAction = {
|
||||
type: 'Navigation/URI',
|
||||
export interface NavigationResetAction extends NavigationResetActionPayload {
|
||||
type: 'Navigation/RESET',
|
||||
}
|
||||
|
||||
export interface NavigationUriActionPayload {
|
||||
uri: string,
|
||||
};
|
||||
}
|
||||
|
||||
export interface NavigationUriAction extends NavigationUriActionPayload {
|
||||
type: 'Navigation/URI',
|
||||
}
|
||||
|
||||
export interface NavigationStackViewConfig {
|
||||
mode?: 'card' | 'modal',
|
||||
@@ -575,15 +593,13 @@ export const TabBarBottom: React.ComponentClass<any>;
|
||||
|
||||
/**
|
||||
* NavigationActions
|
||||
* @todo Is this necessary, or can we remove? Not referenced anywhere else here, but it seems a
|
||||
* recent commit or two touches these. Can anyone provide a strong use case for keeping this in?
|
||||
*/
|
||||
export namespace NavigationActions {
|
||||
function init(options?: NavigationInitAction): NavigationInitAction;
|
||||
function navigate(options: NavigationNavigateAction): NavigationNavigateAction;
|
||||
function reset(options: NavigationResetAction): NavigationResetAction;
|
||||
function back(options?: NavigationBackAction): NavigationBackAction;
|
||||
function setParams(options: NavigationSetParamsAction): NavigationSetParamsAction;
|
||||
export function init(options?: NavigationInitActionPayload): NavigationInitAction;
|
||||
export function navigate(options: NavigationNavigateActionPayload): NavigationNavigateAction;
|
||||
export function reset(options: NavigationResetActionPayload): NavigationResetAction;
|
||||
export function back(options?: NavigationBackActionPayload): NavigationBackAction;
|
||||
export function setParams(options: NavigationSetParamsActionPayload): NavigationSetParamsAction;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -5,22 +5,28 @@ import {
|
||||
ViewStyle,
|
||||
} from 'react-native';
|
||||
import {
|
||||
addNavigationHelpers,
|
||||
NavigationAction,
|
||||
NavigationActions,
|
||||
NavigationBackAction,
|
||||
NavigationInitAction,
|
||||
NavigationNavigateAction,
|
||||
NavigationProp,
|
||||
NavigationResetAction,
|
||||
NavigationRouteConfigMap,
|
||||
NavigationScreenProp,
|
||||
NavigationScreenProps,
|
||||
NavigationSetParamsAction,
|
||||
NavigationStackAction,
|
||||
NavigationStackScreenOptions,
|
||||
NavigationTabScreenOptions,
|
||||
NavigationTransitionProps,
|
||||
StackNavigator,
|
||||
StackNavigatorConfig,
|
||||
TabBarTop,
|
||||
TabNavigator,
|
||||
TabNavigatorConfig,
|
||||
TabBarTop,
|
||||
Transitioner,
|
||||
NavigationProp,
|
||||
NavigationAction,
|
||||
NavigationTransitionProps,
|
||||
addNavigationHelpers,
|
||||
} from 'react-navigation';
|
||||
|
||||
// Constants
|
||||
@@ -42,6 +48,7 @@ interface StartScreenNavigationParams {
|
||||
id: number,
|
||||
s: string,
|
||||
}
|
||||
|
||||
interface StartScreenProps extends NavigationScreenProps<StartScreenNavigationParams> { }
|
||||
class StartScreen extends React.Component<StartScreenProps, {}> {
|
||||
render() {
|
||||
@@ -219,3 +226,36 @@ class CustomTransitioner extends React.Component<CustomTransitionerProps, null>
|
||||
return {}
|
||||
}
|
||||
}
|
||||
|
||||
const initAction: NavigationInitAction = NavigationActions.init({
|
||||
params: {
|
||||
foo: "bar"
|
||||
}
|
||||
})
|
||||
|
||||
const navigateAction: NavigationNavigateAction = NavigationActions.navigate({
|
||||
routeName: "FooScreen",
|
||||
params: {
|
||||
foo: "bar"
|
||||
},
|
||||
action: NavigationActions.navigate({ routeName: "BarScreen" })
|
||||
})
|
||||
|
||||
const resetAction: NavigationResetAction = NavigationActions.reset({
|
||||
index: 0,
|
||||
key: "foo",
|
||||
actions: [
|
||||
NavigationActions.navigate({ routeName: "FooScreen" })
|
||||
]
|
||||
})
|
||||
|
||||
const backAction: NavigationBackAction = NavigationActions.back({
|
||||
key: "foo"
|
||||
})
|
||||
|
||||
const setParamsAction: NavigationSetParamsAction = NavigationActions.setParams({
|
||||
key: "foo",
|
||||
params: {
|
||||
foo: "bar"
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user