@react-navigation/stack 7.0.0-alpha.2 → 7.0.0-alpha.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/lib/commonjs/TransitionConfigs/CardStyleInterpolators.js +29 -14
  2. package/lib/commonjs/TransitionConfigs/CardStyleInterpolators.js.map +1 -1
  3. package/lib/commonjs/TransitionConfigs/HeaderStyleInterpolators.js +19 -12
  4. package/lib/commonjs/TransitionConfigs/HeaderStyleInterpolators.js.map +1 -1
  5. package/lib/commonjs/TransitionConfigs/TransitionPresets.js +20 -22
  6. package/lib/commonjs/TransitionConfigs/TransitionPresets.js.map +1 -1
  7. package/lib/commonjs/TransitionConfigs/TransitionSpecs.js +7 -14
  8. package/lib/commonjs/TransitionConfigs/TransitionSpecs.js.map +1 -1
  9. package/lib/commonjs/index.js +2 -2
  10. package/lib/commonjs/index.js.map +1 -1
  11. package/lib/commonjs/navigators/createStackNavigator.js +35 -25
  12. package/lib/commonjs/navigators/createStackNavigator.js.map +1 -1
  13. package/lib/commonjs/types.js.map +1 -1
  14. package/lib/commonjs/utils/CardAnimationContext.js +3 -4
  15. package/lib/commonjs/utils/CardAnimationContext.js.map +1 -1
  16. package/lib/commonjs/utils/GestureHandlerRefContext.js +3 -4
  17. package/lib/commonjs/utils/GestureHandlerRefContext.js.map +1 -1
  18. package/lib/commonjs/utils/ModalPresentationContext.js +3 -4
  19. package/lib/commonjs/utils/ModalPresentationContext.js.map +1 -1
  20. package/lib/commonjs/utils/conditional.js.map +1 -1
  21. package/lib/commonjs/utils/debounce.js.map +1 -1
  22. package/lib/commonjs/utils/findLastIndex.js +1 -1
  23. package/lib/commonjs/utils/findLastIndex.js.map +1 -1
  24. package/lib/commonjs/utils/getDistanceForDirection.js +2 -2
  25. package/lib/commonjs/utils/getDistanceForDirection.js.map +1 -1
  26. package/lib/commonjs/utils/getInvertedMultiplier.js +3 -4
  27. package/lib/commonjs/utils/getInvertedMultiplier.js.map +1 -1
  28. package/lib/commonjs/utils/getModalRoutesKeys.js +17 -0
  29. package/lib/commonjs/utils/getModalRoutesKeys.js.map +1 -0
  30. package/lib/commonjs/utils/memoize.js.map +1 -1
  31. package/lib/commonjs/utils/useCardAnimation.js +2 -2
  32. package/lib/commonjs/utils/useCardAnimation.js.map +1 -1
  33. package/lib/commonjs/utils/useGestureHandlerRef.js +2 -2
  34. package/lib/commonjs/utils/useGestureHandlerRef.js.map +1 -1
  35. package/lib/commonjs/utils/useKeyboardManager.js +6 -6
  36. package/lib/commonjs/utils/useKeyboardManager.js.map +1 -1
  37. package/lib/commonjs/views/GestureHandler.android.js.map +1 -1
  38. package/lib/commonjs/views/GestureHandler.ios.js.map +1 -1
  39. package/lib/commonjs/views/GestureHandler.js +5 -8
  40. package/lib/commonjs/views/GestureHandler.js.map +1 -1
  41. package/lib/commonjs/views/GestureHandlerNative.js +2 -2
  42. package/lib/commonjs/views/GestureHandlerNative.js.map +1 -1
  43. package/lib/commonjs/views/Header/Header.js +4 -4
  44. package/lib/commonjs/views/Header/Header.js.map +1 -1
  45. package/lib/commonjs/views/Header/HeaderContainer.js +14 -11
  46. package/lib/commonjs/views/Header/HeaderContainer.js.map +1 -1
  47. package/lib/commonjs/views/Header/HeaderSegment.js +9 -2
  48. package/lib/commonjs/views/Header/HeaderSegment.js.map +1 -1
  49. package/lib/commonjs/views/Screens.js +2 -2
  50. package/lib/commonjs/views/Screens.js.map +1 -1
  51. package/lib/commonjs/views/Stack/Card.js +55 -48
  52. package/lib/commonjs/views/Stack/Card.js.map +1 -1
  53. package/lib/commonjs/views/Stack/CardContainer.js +27 -23
  54. package/lib/commonjs/views/Stack/CardContainer.js.map +1 -1
  55. package/lib/commonjs/views/Stack/CardSheet.js +24 -4
  56. package/lib/commonjs/views/Stack/CardSheet.js.map +1 -1
  57. package/lib/commonjs/views/Stack/CardStack.js +99 -73
  58. package/lib/commonjs/views/Stack/CardStack.js.map +1 -1
  59. package/lib/commonjs/views/Stack/StackView.js +27 -31
  60. package/lib/commonjs/views/Stack/StackView.js.map +1 -1
  61. package/lib/module/TransitionConfigs/CardStyleInterpolators.js +28 -14
  62. package/lib/module/TransitionConfigs/CardStyleInterpolators.js.map +1 -1
  63. package/lib/module/TransitionConfigs/HeaderStyleInterpolators.js +20 -13
  64. package/lib/module/TransitionConfigs/HeaderStyleInterpolators.js.map +1 -1
  65. package/lib/module/TransitionConfigs/TransitionPresets.js +10 -2
  66. package/lib/module/TransitionConfigs/TransitionPresets.js.map +1 -1
  67. package/lib/module/TransitionConfigs/TransitionSpecs.js.map +1 -1
  68. package/lib/module/index.js.map +1 -1
  69. package/lib/module/navigators/createStackNavigator.js +33 -22
  70. package/lib/module/navigators/createStackNavigator.js.map +1 -1
  71. package/lib/module/types.js.map +1 -1
  72. package/lib/module/utils/CardAnimationContext.js.map +1 -1
  73. package/lib/module/utils/GestureHandlerRefContext.js.map +1 -1
  74. package/lib/module/utils/ModalPresentationContext.js.map +1 -1
  75. package/lib/module/utils/conditional.js.map +1 -1
  76. package/lib/module/utils/debounce.js.map +1 -1
  77. package/lib/module/utils/findLastIndex.js +1 -1
  78. package/lib/module/utils/findLastIndex.js.map +1 -1
  79. package/lib/module/utils/getDistanceForDirection.js +2 -2
  80. package/lib/module/utils/getDistanceForDirection.js.map +1 -1
  81. package/lib/module/utils/getInvertedMultiplier.js +3 -4
  82. package/lib/module/utils/getInvertedMultiplier.js.map +1 -1
  83. package/lib/module/utils/getModalRoutesKeys.js +10 -0
  84. package/lib/module/utils/getModalRoutesKeys.js.map +1 -0
  85. package/lib/module/utils/memoize.js.map +1 -1
  86. package/lib/module/utils/useCardAnimation.js.map +1 -1
  87. package/lib/module/utils/useGestureHandlerRef.js.map +1 -1
  88. package/lib/module/utils/useKeyboardManager.js +4 -4
  89. package/lib/module/utils/useKeyboardManager.js.map +1 -1
  90. package/lib/module/views/GestureHandler.android.js.map +1 -1
  91. package/lib/module/views/GestureHandler.ios.js.map +1 -1
  92. package/lib/module/views/GestureHandler.js.map +1 -1
  93. package/lib/module/views/GestureHandlerNative.js.map +1 -1
  94. package/lib/module/views/Header/Header.js +1 -0
  95. package/lib/module/views/Header/Header.js.map +1 -1
  96. package/lib/module/views/Header/HeaderContainer.js +13 -10
  97. package/lib/module/views/Header/HeaderContainer.js.map +1 -1
  98. package/lib/module/views/Header/HeaderSegment.js +7 -0
  99. package/lib/module/views/Header/HeaderSegment.js.map +1 -1
  100. package/lib/module/views/Screens.js.map +1 -1
  101. package/lib/module/views/Stack/Card.js +52 -44
  102. package/lib/module/views/Stack/Card.js.map +1 -1
  103. package/lib/module/views/Stack/CardContainer.js +25 -20
  104. package/lib/module/views/Stack/CardContainer.js.map +1 -1
  105. package/lib/module/views/Stack/CardSheet.js +21 -0
  106. package/lib/module/views/Stack/CardSheet.js.map +1 -1
  107. package/lib/module/views/Stack/CardStack.js +95 -68
  108. package/lib/module/views/Stack/CardStack.js.map +1 -1
  109. package/lib/module/views/Stack/StackView.js +25 -29
  110. package/lib/module/views/Stack/StackView.js.map +1 -1
  111. package/lib/typescript/src/TransitionConfigs/CardStyleInterpolators.d.ts +4 -0
  112. package/lib/typescript/src/TransitionConfigs/CardStyleInterpolators.d.ts.map +1 -1
  113. package/lib/typescript/src/TransitionConfigs/HeaderStyleInterpolators.d.ts +3 -3
  114. package/lib/typescript/src/TransitionConfigs/HeaderStyleInterpolators.d.ts.map +1 -1
  115. package/lib/typescript/src/TransitionConfigs/TransitionPresets.d.ts +4 -0
  116. package/lib/typescript/src/TransitionConfigs/TransitionPresets.d.ts.map +1 -1
  117. package/lib/typescript/src/index.d.ts +1 -1
  118. package/lib/typescript/src/index.d.ts.map +1 -1
  119. package/lib/typescript/src/navigators/createStackNavigator.d.ts +15 -9
  120. package/lib/typescript/src/navigators/createStackNavigator.d.ts.map +1 -1
  121. package/lib/typescript/src/types.d.ts +70 -15
  122. package/lib/typescript/src/types.d.ts.map +1 -1
  123. package/lib/typescript/src/utils/getDistanceForDirection.d.ts +1 -1
  124. package/lib/typescript/src/utils/getDistanceForDirection.d.ts.map +1 -1
  125. package/lib/typescript/src/utils/getInvertedMultiplier.d.ts +1 -1
  126. package/lib/typescript/src/utils/getInvertedMultiplier.d.ts.map +1 -1
  127. package/lib/typescript/src/utils/getModalRoutesKeys.d.ts +4 -0
  128. package/lib/typescript/src/utils/getModalRoutesKeys.d.ts.map +1 -0
  129. package/lib/typescript/src/views/GestureHandlerNative.d.ts +3 -2
  130. package/lib/typescript/src/views/GestureHandlerNative.d.ts.map +1 -1
  131. package/lib/typescript/src/views/Header/Header.d.ts.map +1 -1
  132. package/lib/typescript/src/views/Header/HeaderContainer.d.ts +4 -3
  133. package/lib/typescript/src/views/Header/HeaderContainer.d.ts.map +1 -1
  134. package/lib/typescript/src/views/Header/HeaderSegment.d.ts +3 -1
  135. package/lib/typescript/src/views/Header/HeaderSegment.d.ts.map +1 -1
  136. package/lib/typescript/src/views/Screens.d.ts +4 -3
  137. package/lib/typescript/src/views/Screens.d.ts.map +1 -1
  138. package/lib/typescript/src/views/Stack/Card.d.ts +6 -5
  139. package/lib/typescript/src/views/Stack/Card.d.ts.map +1 -1
  140. package/lib/typescript/src/views/Stack/CardContainer.d.ts +3 -6
  141. package/lib/typescript/src/views/Stack/CardContainer.d.ts.map +1 -1
  142. package/lib/typescript/src/views/Stack/CardSheet.d.ts +1 -1
  143. package/lib/typescript/src/views/Stack/CardSheet.d.ts.map +1 -1
  144. package/lib/typescript/src/views/Stack/CardStack.d.ts +4 -5
  145. package/lib/typescript/src/views/Stack/CardStack.d.ts.map +1 -1
  146. package/lib/typescript/src/views/Stack/StackView.d.ts +9 -80
  147. package/lib/typescript/src/views/Stack/StackView.d.ts.map +1 -1
  148. package/package.json +19 -20
  149. package/src/TransitionConfigs/CardStyleInterpolators.tsx +18 -5
  150. package/src/TransitionConfigs/HeaderStyleInterpolators.tsx +32 -22
  151. package/src/TransitionConfigs/TransitionPresets.tsx +13 -4
  152. package/src/index.tsx +2 -0
  153. package/src/navigators/createStackNavigator.tsx +49 -14
  154. package/src/types.tsx +88 -15
  155. package/src/utils/findLastIndex.tsx +1 -1
  156. package/src/utils/getDistanceForDirection.tsx +3 -2
  157. package/src/utils/getInvertedMultiplier.tsx +4 -5
  158. package/src/utils/getModalRoutesKeys.ts +21 -0
  159. package/src/utils/useKeyboardManager.tsx +1 -1
  160. package/src/views/GestureHandlerNative.tsx +1 -1
  161. package/src/views/Header/Header.tsx +3 -2
  162. package/src/views/Header/HeaderContainer.tsx +19 -8
  163. package/src/views/Header/HeaderSegment.tsx +10 -3
  164. package/src/views/Screens.tsx +2 -1
  165. package/src/views/Stack/Card.tsx +82 -63
  166. package/src/views/Stack/CardContainer.tsx +20 -11
  167. package/src/views/Stack/CardSheet.tsx +25 -1
  168. package/src/views/Stack/CardStack.tsx +278 -193
  169. package/src/views/Stack/StackView.tsx +25 -28
  170. package/lib/commonjs/views/ModalStatusBarManager.js +0 -44
  171. package/lib/commonjs/views/ModalStatusBarManager.js.map +0 -1
  172. package/lib/module/views/ModalStatusBarManager.js +0 -36
  173. package/lib/module/views/ModalStatusBarManager.js.map +0 -1
  174. package/lib/typescript/src/views/ModalStatusBarManager.d.ts +0 -11
  175. package/lib/typescript/src/views/ModalStatusBarManager.d.ts.map +0 -1
  176. package/src/views/ModalStatusBarManager.tsx +0 -45
@@ -1,4 +1,4 @@
1
- import type { ParamListBase, Route, StackNavigationState } from '@react-navigation/native';
1
+ import type { LocaleDirection, ParamListBase, Route, StackNavigationState } from '@react-navigation/native';
2
2
  import * as React from 'react';
3
3
  import { Animated } from 'react-native';
4
4
  import type { EdgeInsets } from 'react-native-safe-area-context';
@@ -8,9 +8,11 @@ type GestureValues = {
8
8
  [key: string]: Animated.Value;
9
9
  };
10
10
  type Props = {
11
+ direction: LocaleDirection;
11
12
  insets: EdgeInsets;
12
13
  state: StackNavigationState<ParamListBase>;
13
14
  descriptors: StackDescriptorMap;
15
+ preloadedDescriptors: StackDescriptorMap;
14
16
  routes: Route<string>[];
15
17
  openingRouteKeys: string[];
16
18
  closingRouteKeys: string[];
@@ -24,9 +26,6 @@ type Props = {
24
26
  route: Route<string>;
25
27
  }) => Route<string> | undefined;
26
28
  renderHeader: (props: HeaderContainerProps) => React.ReactNode;
27
- renderScene: (props: {
28
- route: Route<string>;
29
- }) => React.ReactNode;
30
29
  isParentHeaderShown: boolean;
31
30
  isParentModal: boolean;
32
31
  onTransitionStart: (props: {
@@ -61,7 +60,7 @@ export declare class CardStack extends React.Component<Props, State> {
61
60
  private handleHeaderLayout;
62
61
  private getFocusedRoute;
63
62
  private getPreviousScene;
64
- render(): JSX.Element;
63
+ render(): React.JSX.Element;
65
64
  }
66
65
  export {};
67
66
  //# sourceMappingURL=CardStack.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CardStack.d.ts","sourceRoot":"","sources":["../../../../../src/views/Stack/CardStack.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CardStack.d.ts","sourceRoot":"","sources":["../../../../../src/views/Stack/CardStack.tsx"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
- import { ParamListBase, Route, StackNavigationState } from '@react-navigation/native';
1
+ import { type LocaleDirection, type ParamListBase, type Route, type RouteProp, type StackNavigationState } from '@react-navigation/native';
2
2
  import * as React from 'react';
3
- import type { StackDescriptorMap, StackNavigationConfig, StackNavigationHelpers } from '../../types';
3
+ import type { StackDescriptor, StackDescriptorMap, StackNavigationConfig, StackNavigationHelpers } from '../../types';
4
4
  type Props = StackNavigationConfig & {
5
+ direction: LocaleDirection;
5
6
  state: StackNavigationState<ParamListBase>;
6
7
  navigation: StackNavigationHelpers;
7
8
  descriptors: StackDescriptorMap;
9
+ describe: (route: RouteProp<ParamListBase>, placeholder: boolean) => StackDescriptor;
8
10
  };
9
11
  type State = {
10
12
  routes: Route<string>[];
@@ -17,88 +19,16 @@ type State = {
17
19
  };
18
20
  export declare class StackView extends React.Component<Props, State> {
19
21
  static getDerivedStateFromProps(props: Readonly<Props>, state: Readonly<State>): {
20
- routes: Route<string, object | undefined>[];
21
- previousRoutes: Route<string, object | undefined>[];
22
+ routes: Route<string>[];
23
+ previousRoutes: Route<string>[];
22
24
  descriptors: StackDescriptorMap;
23
25
  previousDescriptors: StackDescriptorMap;
24
26
  openingRouteKeys?: undefined;
25
27
  closingRouteKeys?: undefined;
26
28
  replacingRouteKeys?: undefined;
27
29
  } | {
28
- routes: (Readonly<{
29
- key: string;
30
- name: string;
31
- path?: string | undefined;
32
- }> & Readonly<{
33
- params?: Readonly<object | undefined>;
34
- }> & {
35
- state?: Readonly<{
36
- key: string;
37
- index: number;
38
- routeNames: string[];
39
- history?: unknown[] | undefined;
40
- routes: (Readonly<{
41
- key: string;
42
- name: string;
43
- path?: string | undefined;
44
- }> & Readonly<{
45
- params?: Readonly<object | undefined>;
46
- }> & any)[];
47
- type: string;
48
- stale: false;
49
- }> | import("@react-navigation/native").PartialState<Readonly<{
50
- key: string;
51
- index: number;
52
- routeNames: string[];
53
- history?: unknown[] | undefined;
54
- routes: (Readonly<{
55
- key: string;
56
- name: string;
57
- path?: string | undefined;
58
- }> & Readonly<{
59
- params?: Readonly<object | undefined>;
60
- }> & any)[];
61
- type: string;
62
- stale: false;
63
- }>> | undefined;
64
- })[];
65
- previousRoutes: (Readonly<{
66
- key: string;
67
- name: string;
68
- path?: string | undefined;
69
- }> & Readonly<{
70
- params?: Readonly<object | undefined>;
71
- }> & {
72
- state?: Readonly<{
73
- key: string;
74
- index: number;
75
- routeNames: string[];
76
- history?: unknown[] | undefined;
77
- routes: (Readonly<{
78
- key: string;
79
- name: string;
80
- path?: string | undefined;
81
- }> & Readonly<{
82
- params?: Readonly<object | undefined>;
83
- }> & any)[];
84
- type: string;
85
- stale: false;
86
- }> | import("@react-navigation/native").PartialState<Readonly<{
87
- key: string;
88
- index: number;
89
- routeNames: string[];
90
- history?: unknown[] | undefined;
91
- routes: (Readonly<{
92
- key: string;
93
- name: string;
94
- path?: string | undefined;
95
- }> & Readonly<{
96
- params?: Readonly<object | undefined>;
97
- }> & any)[];
98
- type: string;
99
- stale: false;
100
- }>> | undefined;
101
- })[];
30
+ routes: import("@react-navigation/native").NavigationRoute<ParamListBase, string>[];
31
+ previousRoutes: import("@react-navigation/native").NavigationRoute<ParamListBase, string>[];
102
32
  previousDescriptors: StackDescriptorMap;
103
33
  openingRouteKeys: string[];
104
34
  closingRouteKeys: string[];
@@ -107,7 +37,6 @@ export declare class StackView extends React.Component<Props, State> {
107
37
  };
108
38
  state: State;
109
39
  private getPreviousRoute;
110
- private renderScene;
111
40
  private renderHeader;
112
41
  private handleOpenRoute;
113
42
  private handleCloseRoute;
@@ -116,7 +45,7 @@ export declare class StackView extends React.Component<Props, State> {
116
45
  private handleGestureStart;
117
46
  private handleGestureEnd;
118
47
  private handleGestureCancel;
119
- render(): JSX.Element;
48
+ render(): React.JSX.Element;
120
49
  }
121
50
  export {};
122
51
  //# sourceMappingURL=StackView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StackView.d.ts","sourceRoot":"","sources":["../../../../../src/views/Stack/StackView.tsx"],"names":[],"mappings":"AAIA,OAAO,EAEL,aAAa,EACb,KAAK,EAEL,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AASrB,KAAK,KAAK,GAAG,qBAAqB,GAAG;IACnC,KAAK,EAAE,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAC3C,UAAU,EAAE,sBAAsB,CAAC;IACnC,WAAW,EAAE,kBAAkB,CAAC;CACjC,CAAC;AAEF,KAAK,KAAK,GAAG;IAEX,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IAExB,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IAEhC,mBAAmB,EAAE,kBAAkB,CAAC;IAExC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAE3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAE3B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAG7B,WAAW,EAAE,kBAAkB,CAAC;CACjC,CAAC;AAWF,qBAAa,SAAU,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IAC1D,MAAM,CAAC,wBAAwB,CAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EACtB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsNxB,KAAK,EAAE,KAAK,CAQV;IAEF,OAAO,CAAC,gBAAgB,CAYtB;IAEF,OAAO,CAAC,WAAW,CASjB;IAEF,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,eAAe,CAwCrB;IAEF,OAAO,CAAC,gBAAgB,CAwBtB;IAEF,OAAO,CAAC,qBAAqB,CAQxB;IAEL,OAAO,CAAC,mBAAmB,CAQtB;IAEL,OAAO,CAAC,kBAAkB,CAKxB;IAEF,OAAO,CAAC,gBAAgB,CAKtB;IAEF,OAAO,CAAC,mBAAmB,CAKzB;IAEF,MAAM;CAmDP"}
1
+ {"version":3,"file":"StackView.d.ts","sourceRoot":"","sources":["../../../../../src/views/Stack/StackView.tsx"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,KAAK,EACV,KAAK,SAAS,EAEd,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AASrB,KAAK,KAAK,GAAG,qBAAqB,GAAG;IACnC,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,EAAE,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAC3C,UAAU,EAAE,sBAAsB,CAAC;IACnC,WAAW,EAAE,kBAAkB,CAAC;IAChC,QAAQ,EAAE,CACR,KAAK,EAAE,SAAS,CAAC,aAAa,CAAC,EAC/B,WAAW,EAAE,OAAO,KACjB,eAAe,CAAC;CACtB,CAAC;AAEF,KAAK,KAAK,GAAG;IAEX,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IAExB,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IAEhC,mBAAmB,EAAE,kBAAkB,CAAC;IAExC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAE3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAE3B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAG7B,WAAW,EAAE,kBAAkB,CAAC;CACjC,CAAC;AAWF,qBAAa,SAAU,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IAC1D,MAAM,CAAC,wBAAwB,CAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EACtB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;IAmNxB,KAAK,EAAE,KAAK,CAQV;IAEF,OAAO,CAAC,gBAAgB,CAYtB;IAEF,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,eAAe,CAwCrB;IAEF,OAAO,CAAC,gBAAgB,CAwBtB;IAEF,OAAO,CAAC,qBAAqB,CAQxB;IAEL,OAAO,CAAC,mBAAmB,CAQtB;IAEL,OAAO,CAAC,kBAAkB,CAKxB;IAEF,OAAO,CAAC,gBAAgB,CAKtB;IAEF,OAAO,CAAC,mBAAmB,CAKzB;IAEF,MAAM;CAyDP"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@react-navigation/stack",
3
3
  "description": "Stack navigator component for iOS and Android with animated transitions and gestures",
4
- "version": "7.0.0-alpha.2",
4
+ "version": "7.0.0-alpha.20",
5
5
  "keywords": [
6
6
  "react-native-component",
7
7
  "react-component",
@@ -40,30 +40,29 @@
40
40
  "clean": "del lib"
41
41
  },
42
42
  "dependencies": {
43
- "@react-navigation/elements": "^1.4.0-alpha.1",
43
+ "@react-navigation/elements": "^2.0.0-alpha.17",
44
44
  "color": "^4.2.3"
45
45
  },
46
46
  "devDependencies": {
47
- "@react-navigation/native": "^7.0.0-alpha.2",
48
- "@testing-library/react-native": "^11.5.0",
49
- "@types/color": "^3.0.3",
50
- "@types/react": "~18.0.27",
51
- "@types/react-native": "~0.70.8",
52
- "del-cli": "^5.0.0",
47
+ "@react-navigation/native": "^7.0.0-alpha.18",
48
+ "@testing-library/react-native": "^12.4.3",
49
+ "@types/color": "^3.0.6",
50
+ "@types/react": "~18.2.45",
51
+ "del-cli": "^5.1.0",
53
52
  "react": "18.2.0",
54
- "react-native": "0.71.8",
55
- "react-native-builder-bob": "^0.20.4",
56
- "react-native-gesture-handler": "~2.9.0",
57
- "react-native-safe-area-context": "4.5.0",
58
- "react-native-screens": "~3.20.0",
59
- "typescript": "^4.9.4"
53
+ "react-native": "0.73.2",
54
+ "react-native-builder-bob": "^0.23.2",
55
+ "react-native-gesture-handler": "~2.14.0",
56
+ "react-native-safe-area-context": "4.8.2",
57
+ "react-native-screens": "~3.29.0",
58
+ "typescript": "^5.3.3"
60
59
  },
61
60
  "peerDependencies": {
62
- "@react-navigation/native": "^6.0.0",
63
- "react": "*",
64
- "react-native": "*",
65
- "react-native-gesture-handler": ">= 1.0.0",
66
- "react-native-safe-area-context": ">= 3.0.0",
61
+ "@react-navigation/native": "^7.0.0-alpha.18",
62
+ "react": ">= 18.2.0",
63
+ "react-native": ">= 0.72.0",
64
+ "react-native-gesture-handler": ">= 2.0.0",
65
+ "react-native-safe-area-context": ">= 4.0.0",
67
66
  "react-native-screens": ">= 3.0.0"
68
67
  },
69
68
  "react-native-builder-bob": {
@@ -80,5 +79,5 @@
80
79
  ]
81
80
  ]
82
81
  },
83
- "gitHead": "36c8f091556157dab74d3483651bbcbd340762ff"
82
+ "gitHead": "a41d932198d1b48d84f410be1633fc5ddcb2df3f"
84
83
  }
@@ -63,6 +63,19 @@ export function forHorizontalIOS({
63
63
  };
64
64
  }
65
65
 
66
+ /**
67
+ * iOS-style slide in from the left.
68
+ */
69
+ export function forHorizontalIOSInverted({
70
+ inverted,
71
+ ...rest
72
+ }: StackCardInterpolationProps): StackCardInterpolatedStyle {
73
+ return forHorizontalIOS({
74
+ ...rest,
75
+ inverted: Animated.multiply(inverted, -1),
76
+ });
77
+ }
78
+
66
79
  /**
67
80
  * Standard iOS-style slide in from the bottom (used for modals).
68
81
  */
@@ -156,11 +169,11 @@ export function forModalPresentationIOS({
156
169
  const borderRadius = isLandscape
157
170
  ? 0
158
171
  : isFirst
159
- ? progress.interpolate({
160
- inputRange: [0, 1, 1.0001, 2],
161
- outputRange: [0, 0, hasNotchIos ? 38 : 0, 10],
162
- })
163
- : 10;
172
+ ? progress.interpolate({
173
+ inputRange: [0, 1, 1.0001, 2],
174
+ outputRange: [0, 0, hasNotchIos ? 38 : 0, 10],
175
+ })
176
+ : 10;
164
177
 
165
178
  return {
166
179
  cardStyle: {
@@ -1,11 +1,11 @@
1
- import { Animated, I18nManager } from 'react-native';
1
+ import { Animated } from 'react-native';
2
2
 
3
3
  import type {
4
4
  StackHeaderInterpolatedStyle,
5
5
  StackHeaderInterpolationProps,
6
6
  } from '../types';
7
7
 
8
- const { add } = Animated;
8
+ const { add, multiply } = Animated;
9
9
 
10
10
  /**
11
11
  * Standard UIKit style animation for the header where the title fades into the back button label.
@@ -13,6 +13,7 @@ const { add } = Animated;
13
13
  export function forUIKit({
14
14
  current,
15
15
  next,
16
+ direction,
16
17
  layouts,
17
18
  }: StackHeaderInterpolationProps): StackHeaderInterpolatedStyle {
18
19
  const defaultOffset = 100;
@@ -34,6 +35,8 @@ export function forUIKit({
34
35
  // The back title also animates in from this position
35
36
  const rightOffset = layouts.screen.width / 4;
36
37
 
38
+ const multiplier = direction === 'rtl' ? -1 : 1;
39
+
37
40
  const progress = add(
38
41
  current.progress.interpolate({
39
42
  inputRange: [0, 1],
@@ -59,12 +62,13 @@ export function forUIKit({
59
62
  leftLabelStyle: {
60
63
  transform: [
61
64
  {
62
- translateX: progress.interpolate({
63
- inputRange: [0, 1, 2],
64
- outputRange: I18nManager.getConstants().isRTL
65
- ? [-rightOffset, 0, leftLabelOffset]
66
- : [leftLabelOffset, 0, -rightOffset],
67
- }),
65
+ translateX: multiply(
66
+ multiplier,
67
+ progress.interpolate({
68
+ inputRange: [0, 1, 2],
69
+ outputRange: [leftLabelOffset, 0, -rightOffset],
70
+ })
71
+ ),
68
72
  },
69
73
  ],
70
74
  },
@@ -81,24 +85,26 @@ export function forUIKit({
81
85
  }),
82
86
  transform: [
83
87
  {
84
- translateX: progress.interpolate({
85
- inputRange: [0.5, 1, 2],
86
- outputRange: I18nManager.getConstants().isRTL
87
- ? [-titleLeftOffset, 0, rightOffset]
88
- : [rightOffset, 0, -titleLeftOffset],
89
- }),
88
+ translateX: multiply(
89
+ multiplier,
90
+ progress.interpolate({
91
+ inputRange: [0.5, 1, 2],
92
+ outputRange: [rightOffset, 0, -titleLeftOffset],
93
+ })
94
+ ),
90
95
  },
91
96
  ],
92
97
  },
93
98
  backgroundStyle: {
94
99
  transform: [
95
100
  {
96
- translateX: progress.interpolate({
97
- inputRange: [0, 1, 2],
98
- outputRange: I18nManager.getConstants().isRTL
99
- ? [-layouts.screen.width, 0, layouts.screen.width]
100
- : [layouts.screen.width, 0, -layouts.screen.width],
101
- }),
101
+ translateX: multiply(
102
+ multiplier,
103
+ progress.interpolate({
104
+ inputRange: [0, 1, 2],
105
+ outputRange: [layouts.screen.width, 0, -layouts.screen.width],
106
+ })
107
+ ),
102
108
  },
103
109
  ],
104
110
  },
@@ -151,8 +157,10 @@ export function forFade({
151
157
  export function forSlideLeft({
152
158
  current,
153
159
  next,
160
+ direction,
154
161
  layouts: { screen },
155
162
  }: StackHeaderInterpolationProps): StackHeaderInterpolatedStyle {
163
+ const isRTL = direction === 'rtl';
156
164
  const progress = add(
157
165
  current.progress.interpolate({
158
166
  inputRange: [0, 1],
@@ -170,7 +178,7 @@ export function forSlideLeft({
170
178
 
171
179
  const translateX = progress.interpolate({
172
180
  inputRange: [0, 1, 2],
173
- outputRange: I18nManager.getConstants().isRTL
181
+ outputRange: isRTL
174
182
  ? [-screen.width, 0, screen.width]
175
183
  : [screen.width, 0, -screen.width],
176
184
  });
@@ -191,8 +199,10 @@ export function forSlideLeft({
191
199
  export function forSlideRight({
192
200
  current,
193
201
  next,
202
+ direction,
194
203
  layouts: { screen },
195
204
  }: StackHeaderInterpolationProps): StackHeaderInterpolatedStyle {
205
+ const isRTL = direction === 'rtl';
196
206
  const progress = add(
197
207
  current.progress.interpolate({
198
208
  inputRange: [0, 1],
@@ -210,7 +220,7 @@ export function forSlideRight({
210
220
 
211
221
  const translateX = progress.interpolate({
212
222
  inputRange: [0, 1, 2],
213
- outputRange: I18nManager.getConstants().isRTL
223
+ outputRange: isRTL
214
224
  ? [screen.width, 0, -screen.width]
215
225
  : [-screen.width, 0, screen.width],
216
226
  });
@@ -6,6 +6,7 @@ import {
6
6
  forFadeFromBottomAndroid,
7
7
  forFadeFromCenter as forFadeCard,
8
8
  forHorizontalIOS,
9
+ forHorizontalIOSInverted,
9
10
  forModalPresentationIOS,
10
11
  forRevealFromBottomAndroid,
11
12
  forScaleFromCenterAndroid,
@@ -135,11 +136,11 @@ export const ModalFadeTransition: TransitionPreset = {
135
136
  export const DefaultTransition = Platform.select({
136
137
  ios: SlideFromRightIOS,
137
138
  android:
138
- Platform.Version >= ANDROID_VERSION_10
139
+ Number(Platform.Version) >= ANDROID_VERSION_10
139
140
  ? ScaleFromCenterAndroid
140
- : Platform.Version >= ANDROID_VERSION_PIE
141
- ? RevealFromBottomAndroid
142
- : FadeFromBottomAndroid,
141
+ : Number(Platform.Version) >= ANDROID_VERSION_PIE
142
+ ? RevealFromBottomAndroid
143
+ : FadeFromBottomAndroid,
143
144
  default: ScaleFromCenterAndroid,
144
145
  });
145
146
 
@@ -150,3 +151,11 @@ export const ModalTransition = Platform.select({
150
151
  ios: ModalPresentationIOS,
151
152
  default: BottomSheetAndroid,
152
153
  });
154
+
155
+ /**
156
+ * Slide from left transition.
157
+ */
158
+ export const SlideFromLeftIOS: TransitionPreset = {
159
+ ...SlideFromRightIOS,
160
+ cardStyleInterpolator: forHorizontalIOSInverted,
161
+ };
package/src/index.tsx CHANGED
@@ -36,6 +36,7 @@ export { useGestureHandlerRef } from './utils/useGestureHandlerRef';
36
36
  * Types
37
37
  */
38
38
  export type {
39
+ StackAnimationName,
39
40
  StackCardInterpolatedStyle,
40
41
  StackCardInterpolationProps,
41
42
  StackCardStyleInterpolator,
@@ -46,6 +47,7 @@ export type {
46
47
  StackNavigationEventMap,
47
48
  StackNavigationOptions,
48
49
  StackNavigationProp,
50
+ StackOptionsArgs,
49
51
  StackScreenProps,
50
52
  TransitionPreset,
51
53
  } from './types';
@@ -1,13 +1,17 @@
1
1
  import {
2
2
  createNavigatorFactory,
3
- DefaultNavigatorOptions,
4
- EventArg,
5
- ParamListBase,
6
- StackActionHelpers,
3
+ type DefaultNavigatorOptions,
4
+ type EventArg,
5
+ type NavigatorTypeBagBase,
6
+ type ParamListBase,
7
+ type StackActionHelpers,
7
8
  StackActions,
8
- StackNavigationState,
9
+ type StackNavigationState,
9
10
  StackRouter,
10
- StackRouterOptions,
11
+ type StackRouterOptions,
12
+ type StaticConfig,
13
+ type TypedNavigator,
14
+ useLocale,
11
15
  useNavigationBuilder,
12
16
  } from '@react-navigation/native';
13
17
  import * as React from 'react';
@@ -16,14 +20,17 @@ import type {
16
20
  StackNavigationConfig,
17
21
  StackNavigationEventMap,
18
22
  StackNavigationOptions,
23
+ StackNavigationProp,
19
24
  } from '../types';
20
25
  import { StackView } from '../views/Stack/StackView';
21
26
 
22
27
  type Props = DefaultNavigatorOptions<
23
28
  ParamListBase,
29
+ string | undefined,
24
30
  StackNavigationState<ParamListBase>,
25
31
  StackNavigationOptions,
26
- StackNavigationEventMap
32
+ StackNavigationEventMap,
33
+ StackNavigationProp<ParamListBase>
27
34
  > &
28
35
  StackRouterOptions &
29
36
  StackNavigationConfig;
@@ -32,11 +39,16 @@ function StackNavigator({
32
39
  id,
33
40
  initialRouteName,
34
41
  children,
42
+ layout,
35
43
  screenListeners,
36
44
  screenOptions,
45
+ screenLayout,
46
+ UNSTABLE_getStateForRouteNamesChange,
37
47
  ...rest
38
48
  }: Props) {
39
- const { state, descriptors, navigation, NavigationContent } =
49
+ const { direction } = useLocale();
50
+
51
+ const { state, describe, descriptors, navigation, NavigationContent } =
40
52
  useNavigationBuilder<
41
53
  StackNavigationState<ParamListBase>,
42
54
  StackRouterOptions,
@@ -47,8 +59,11 @@ function StackNavigator({
47
59
  id,
48
60
  initialRouteName,
49
61
  children,
62
+ layout,
50
63
  screenListeners,
51
64
  screenOptions,
65
+ screenLayout,
66
+ UNSTABLE_getStateForRouteNamesChange,
52
67
  });
53
68
 
54
69
  React.useEffect(
@@ -81,7 +96,9 @@ function StackNavigator({
81
96
  <NavigationContent>
82
97
  <StackView
83
98
  {...rest}
99
+ direction={direction}
84
100
  state={state}
101
+ describe={describe}
85
102
  descriptors={descriptors}
86
103
  navigation={navigation}
87
104
  />
@@ -89,9 +106,27 @@ function StackNavigator({
89
106
  );
90
107
  }
91
108
 
92
- export const createStackNavigator = createNavigatorFactory<
93
- StackNavigationState<ParamListBase>,
94
- StackNavigationOptions,
95
- StackNavigationEventMap,
96
- typeof StackNavigator
97
- >(StackNavigator);
109
+ export function createStackNavigator<
110
+ ParamList extends ParamListBase,
111
+ NavigatorID extends string | undefined = undefined,
112
+ TypeBag extends NavigatorTypeBagBase = {
113
+ ParamList: ParamList;
114
+ NavigatorID: NavigatorID;
115
+ State: StackNavigationState<ParamList>;
116
+ ScreenOptions: StackNavigationOptions;
117
+ EventMap: StackNavigationEventMap;
118
+ NavigationList: {
119
+ [RouteName in keyof ParamList]: StackNavigationProp<
120
+ ParamList,
121
+ RouteName,
122
+ NavigatorID
123
+ >;
124
+ };
125
+ Navigator: typeof StackNavigator;
126
+ },
127
+ Config extends StaticConfig<TypeBag> | undefined =
128
+ | StaticConfig<TypeBag>
129
+ | undefined,
130
+ >(config?: Config): TypedNavigator<TypeBag, Config> {
131
+ return createNavigatorFactory(StackNavigator)(config);
132
+ }