diff --git a/types/react-navigation/index.d.ts b/types/react-navigation/index.d.ts index 3e0d0d9d20..8f448eba93 100644 --- a/types/react-navigation/index.d.ts +++ b/types/react-navigation/index.d.ts @@ -247,6 +247,25 @@ export interface NavigationUriAction extends NavigationUriActionPayload { type: 'Navigation/URI'; } +export interface NavigationPopActionPayload { + // n: the number of routes to pop of the stack + n?: number; + immediate?: boolean; +} + +export interface NavigationPopAction extends NavigationPopActionPayload { + type: 'Navigation/POP'; +} + +export interface NavigationPopToTopActionPayload { + key?: string; + immediate?: boolean; +} + +export interface NavigationPopToTopAction extends NavigationPopToTopActionPayload { + type: 'Navigation/POP_TO_TOP'; +} + export interface NavigationStackViewConfig { mode?: 'card' | 'modal'; headerMode?: HeaderMode; @@ -287,7 +306,9 @@ export type NavigationStackAction = | NavigationNavigateAction | NavigationBackAction | NavigationSetParamsAction - | NavigationResetAction; + | NavigationResetAction + | NavigationPopAction + | NavigationPopToTopAction; export type NavigationTabAction = NavigationInitAction @@ -731,12 +752,16 @@ export namespace NavigationActions { const RESET: 'Navigation/RESET'; const SET_PARAMS: 'Navigation/SET_PARAMS'; const URI: 'Navigation/URI'; + const POP: 'Navigation/POP'; + const POP_TO_TOP: 'Navigation/POP_TO_TOP'; function init(options?: NavigationInitActionPayload): NavigationInitAction; function navigate(options: NavigationNavigateActionPayload): NavigationNavigateAction; function reset(options: NavigationResetActionPayload): NavigationResetAction; function back(options?: NavigationBackActionPayload): NavigationBackAction; function setParams(options: NavigationSetParamsActionPayload): NavigationSetParamsAction; + function pop(options: NavigationPopActionPayload): NavigationPopAction; + function popToTop(options: NavigationPopToTopActionPayload): NavigationPopToTopAction; } /** diff --git a/types/react-navigation/react-navigation-tests.tsx b/types/react-navigation/react-navigation-tests.tsx index 79ca619c00..b94e2e0bc2 100644 --- a/types/react-navigation/react-navigation-tests.tsx +++ b/types/react-navigation/react-navigation-tests.tsx @@ -34,6 +34,8 @@ import { HeaderBackButton, Header, NavigationParams, + NavigationPopAction, + NavigationPopToTopAction, } from 'react-navigation'; // Constants @@ -363,3 +365,13 @@ const setParamsAction: NavigationSetParamsAction = NavigationActions.setParams({ foo: "bar" } }); + +const popAction: NavigationPopAction = NavigationActions.pop({ + n: 1, + immediate: true +}); + +const popToTopAction: NavigationPopToTopAction = NavigationActions.popToTop({ + key: "foo", + immediate: true +});