react-native-screens 3.19.0 → 3.21.0

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 (203) hide show
  1. package/README.md +2 -1
  2. package/RNScreens.podspec +1 -1
  3. package/android/build.gradle +24 -6
  4. package/android/src/main/java/com/swmansion/rnscreens/CustomSearchView.kt +4 -0
  5. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt +7 -9
  6. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.kt +12 -4
  7. package/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt +32 -8
  8. package/android/src/main/java/com/swmansion/rnscreens/SearchBarView.kt +36 -15
  9. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderAttachedEvent.kt +24 -0
  10. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderDetachedEvent.kt +24 -0
  11. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarBlurEvent.kt +24 -0
  12. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarChangeTextEvent.kt +29 -0
  13. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarCloseEvent.kt +24 -0
  14. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarFocusEvent.kt +24 -0
  15. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarOpenEvent.kt +24 -0
  16. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarSearchButtonPressEvent.kt +26 -0
  17. package/android/src/main/res/base/anim/rns_standard_accelerate_interpolator.xml +6 -0
  18. package/android/src/main/res/v33/anim-v33/rns_default_enter_in.xml +38 -0
  19. package/android/src/main/res/v33/anim-v33/rns_default_enter_out.xml +38 -0
  20. package/android/src/main/res/v33/anim-v33/rns_default_exit_in.xml +38 -0
  21. package/android/src/main/res/v33/anim-v33/rns_default_exit_out.xml +38 -0
  22. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerDelegate.java +3 -0
  23. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerInterface.java +1 -0
  24. package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.h +1 -2
  25. package/ios/RCTImageComponentView+RNSScreenStackHeaderConfig.h +11 -0
  26. package/ios/RCTImageComponentView+RNSScreenStackHeaderConfig.mm +14 -0
  27. package/ios/RNSConvert.h +2 -2
  28. package/ios/RNSConvert.mm +2 -2
  29. package/ios/RNSFullWindowOverlay.h +5 -5
  30. package/ios/RNSFullWindowOverlay.mm +13 -13
  31. package/ios/RNSScreen.h +7 -6
  32. package/ios/RNSScreen.mm +35 -33
  33. package/ios/RNSScreenContainer.h +2 -2
  34. package/ios/RNSScreenContainer.mm +5 -5
  35. package/ios/RNSScreenNavigationContainer.mm +3 -3
  36. package/ios/RNSScreenStack.h +4 -4
  37. package/ios/RNSScreenStack.mm +62 -23
  38. package/ios/RNSScreenStackHeaderConfig.h +10 -3
  39. package/ios/RNSScreenStackHeaderConfig.mm +138 -81
  40. package/ios/RNSScreenStackHeaderSubview.h +5 -6
  41. package/ios/RNSScreenStackHeaderSubview.mm +20 -11
  42. package/ios/RNSScreenWindowTraits.mm +21 -2
  43. package/ios/RNSSearchBar.h +5 -4
  44. package/ios/RNSSearchBar.mm +87 -12
  45. package/ios/RNScreens.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  46. package/ios/RNScreens.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  47. package/ios/RNScreens.xcodeproj/project.xcworkspace/xcuserdata/wojciechlewicki.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  48. package/ios/RNScreens.xcodeproj/xcuserdata/wojciechlewicki.xcuserdatad/xcschemes/xcschememanagement.plist +19 -0
  49. package/lib/commonjs/TransitionProgressContext.js.map +1 -1
  50. package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js +0 -5
  51. package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
  52. package/lib/commonjs/fabric/ScreenContainerNativeComponent.js +0 -5
  53. package/lib/commonjs/fabric/ScreenContainerNativeComponent.js.map +1 -1
  54. package/lib/commonjs/fabric/ScreenNativeComponent.js +0 -5
  55. package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
  56. package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js +0 -5
  57. package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
  58. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js +0 -8
  59. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  60. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js +0 -8
  61. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
  62. package/lib/commonjs/fabric/ScreenStackNativeComponent.js +0 -5
  63. package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -1
  64. package/lib/commonjs/fabric/SearchBarNativeComponent.js +7 -7
  65. package/lib/commonjs/fabric/SearchBarNativeComponent.js.map +1 -1
  66. package/lib/commonjs/index.js +1 -1
  67. package/lib/commonjs/index.js.map +1 -1
  68. package/lib/commonjs/index.native.js +53 -11
  69. package/lib/commonjs/index.native.js.map +1 -1
  70. package/lib/commonjs/native-stack/index.js.map +1 -1
  71. package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js +18 -16
  72. package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
  73. package/lib/commonjs/native-stack/types.js.map +1 -1
  74. package/lib/commonjs/native-stack/utils/HeaderHeightContext.js.map +1 -1
  75. package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
  76. package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
  77. package/lib/commonjs/native-stack/utils/useBackPressSubscription.js.map +1 -1
  78. package/lib/commonjs/native-stack/utils/useHeaderHeight.js.map +1 -1
  79. package/lib/commonjs/native-stack/views/FontProcessor.js +1 -0
  80. package/lib/commonjs/native-stack/views/FontProcessor.js.map +1 -1
  81. package/lib/commonjs/native-stack/views/HeaderConfig.js +3 -1
  82. package/lib/commonjs/native-stack/views/HeaderConfig.js.map +1 -1
  83. package/lib/commonjs/native-stack/views/NativeStackView.js +14 -1
  84. package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -1
  85. package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
  86. package/lib/commonjs/reanimated/ReanimatedScreen.js.map +1 -1
  87. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js +3 -1
  88. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js.map +1 -1
  89. package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js.map +1 -1
  90. package/lib/commonjs/reanimated/index.js.map +1 -1
  91. package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js.map +1 -1
  92. package/lib/commonjs/types.js.map +1 -1
  93. package/lib/commonjs/useTransitionProgress.js.map +1 -1
  94. package/lib/commonjs/utils.js.map +1 -1
  95. package/lib/module/fabric/FullWindowOverlayNativeComponent.js +0 -5
  96. package/lib/module/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
  97. package/lib/module/fabric/ScreenContainerNativeComponent.js +0 -5
  98. package/lib/module/fabric/ScreenContainerNativeComponent.js.map +1 -1
  99. package/lib/module/fabric/ScreenNativeComponent.js +0 -5
  100. package/lib/module/fabric/ScreenNativeComponent.js.map +1 -1
  101. package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js +0 -5
  102. package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
  103. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js +0 -6
  104. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  105. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js +0 -6
  106. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
  107. package/lib/module/fabric/ScreenStackNativeComponent.js +0 -5
  108. package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -1
  109. package/lib/module/fabric/SearchBarNativeComponent.js +4 -6
  110. package/lib/module/fabric/SearchBarNativeComponent.js.map +1 -1
  111. package/lib/module/index.js +1 -1
  112. package/lib/module/index.js.map +1 -1
  113. package/lib/module/index.native.js +54 -11
  114. package/lib/module/index.native.js.map +1 -1
  115. package/lib/module/native-stack/navigators/createNativeStackNavigator.js +18 -16
  116. package/lib/module/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
  117. package/lib/module/native-stack/types.js.map +1 -1
  118. package/lib/module/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
  119. package/lib/module/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
  120. package/lib/module/native-stack/utils/useBackPressSubscription.js.map +1 -1
  121. package/lib/module/native-stack/utils/useHeaderHeight.js.map +1 -1
  122. package/lib/module/native-stack/views/FontProcessor.js +1 -0
  123. package/lib/module/native-stack/views/FontProcessor.js.map +1 -1
  124. package/lib/module/native-stack/views/HeaderConfig.js +3 -1
  125. package/lib/module/native-stack/views/HeaderConfig.js.map +1 -1
  126. package/lib/module/native-stack/views/NativeStackView.js +15 -1
  127. package/lib/module/native-stack/views/NativeStackView.js.map +1 -1
  128. package/lib/module/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
  129. package/lib/module/reanimated/ReanimatedScreen.js.map +1 -1
  130. package/lib/module/reanimated/ReanimatedScreenProvider.js +3 -1
  131. package/lib/module/reanimated/ReanimatedScreenProvider.js.map +1 -1
  132. package/lib/module/reanimated/useReanimatedTransitionProgress.js.map +1 -1
  133. package/lib/module/types.js.map +1 -1
  134. package/lib/module/useTransitionProgress.js.map +1 -1
  135. package/lib/module/utils.js.map +1 -1
  136. package/lib/typescript/fabric/FullWindowOverlayNativeComponent.d.ts +6 -0
  137. package/lib/typescript/fabric/ScreenContainerNativeComponent.d.ts +6 -0
  138. package/lib/typescript/fabric/ScreenNativeComponent.d.ts +62 -0
  139. package/lib/typescript/fabric/ScreenNavigationContainerNativeComponent.d.ts +6 -0
  140. package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts +34 -0
  141. package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts +9 -0
  142. package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts +9 -0
  143. package/lib/typescript/fabric/SearchBarNativeComponent.d.ts +46 -0
  144. package/lib/typescript/index.d.ts +2 -2
  145. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts +2 -2
  146. package/lib/typescript/native-stack/types.d.ts +55 -1
  147. package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts +1 -1
  148. package/lib/typescript/reanimated/ReanimatedScreen.d.ts +1 -1
  149. package/lib/typescript/types.d.ts +81 -2
  150. package/lib/typescript/useTransitionProgress.d.ts +3 -3
  151. package/native-stack/README.md +59 -1
  152. package/package.json +11 -14
  153. package/src/fabric/FullWindowOverlayNativeComponent.ts +6 -0
  154. package/src/fabric/ScreenContainerNativeComponent.ts +6 -0
  155. package/src/fabric/ScreenNativeComponent.ts +97 -0
  156. package/src/fabric/ScreenNavigationContainerNativeComponent.ts +9 -0
  157. package/src/fabric/ScreenStackHeaderConfigNativeComponent.ts +43 -0
  158. package/src/fabric/ScreenStackHeaderSubviewNativeComponent.ts +20 -0
  159. package/src/fabric/ScreenStackNativeComponent.ts +12 -0
  160. package/src/fabric/SearchBarNativeComponent.ts +73 -0
  161. package/src/index.native.tsx +107 -14
  162. package/src/index.tsx +4 -3
  163. package/src/native-stack/navigators/createNativeStackNavigator.tsx +23 -19
  164. package/src/native-stack/types.tsx +55 -0
  165. package/src/native-stack/views/FontProcessor.tsx +1 -0
  166. package/src/native-stack/views/HeaderConfig.tsx +3 -1
  167. package/src/native-stack/views/NativeStackView.tsx +14 -2
  168. package/src/types.tsx +84 -2
  169. package/android/src/main/java/com/swmansion/rnscreens/LifecycleHelper.kt +0 -60
  170. package/createNativeStackNavigator/README.md +0 -522
  171. package/createNativeStackNavigator/package.json +0 -6
  172. package/lib/commonjs/createNativeStackNavigator.js +0 -374
  173. package/lib/commonjs/createNativeStackNavigator.js.map +0 -1
  174. package/lib/module/createNativeStackNavigator.js +0 -366
  175. package/lib/module/createNativeStackNavigator.js.map +0 -1
  176. package/lib/typescript/createNativeStackNavigator.d.ts +0 -51
  177. package/src/createNativeStackNavigator.tsx +0 -594
  178. package/src/fabric/FullWindowOverlayNativeComponent.js +0 -19
  179. package/src/fabric/ScreenContainerNativeComponent.js +0 -19
  180. package/src/fabric/ScreenNativeComponent.js +0 -104
  181. package/src/fabric/ScreenNavigationContainerNativeComponent.js +0 -19
  182. package/src/fabric/ScreenStackHeaderConfigNativeComponent.js +0 -54
  183. package/src/fabric/ScreenStackHeaderSubviewNativeComponent.js +0 -31
  184. package/src/fabric/ScreenStackNativeComponent.js +0 -23
  185. package/src/fabric/SearchBarNativeComponent.js +0 -62
  186. /package/android/src/main/res/{anim → base/anim}/rns_default_enter_in.xml +0 -0
  187. /package/android/src/main/res/{anim → base/anim}/rns_default_enter_out.xml +0 -0
  188. /package/android/src/main/res/{anim → base/anim}/rns_default_exit_in.xml +0 -0
  189. /package/android/src/main/res/{anim → base/anim}/rns_default_exit_out.xml +0 -0
  190. /package/android/src/main/res/{anim → base/anim}/rns_fade_from_bottom.xml +0 -0
  191. /package/android/src/main/res/{anim → base/anim}/rns_fade_in.xml +0 -0
  192. /package/android/src/main/res/{anim → base/anim}/rns_fade_out.xml +0 -0
  193. /package/android/src/main/res/{anim → base/anim}/rns_fade_to_bottom.xml +0 -0
  194. /package/android/src/main/res/{anim → base/anim}/rns_no_animation_20.xml +0 -0
  195. /package/android/src/main/res/{anim → base/anim}/rns_no_animation_250.xml +0 -0
  196. /package/android/src/main/res/{anim → base/anim}/rns_no_animation_350.xml +0 -0
  197. /package/android/src/main/res/{anim → base/anim}/rns_no_animation_medium.xml +0 -0
  198. /package/android/src/main/res/{anim → base/anim}/rns_slide_in_from_bottom.xml +0 -0
  199. /package/android/src/main/res/{anim → base/anim}/rns_slide_in_from_left.xml +0 -0
  200. /package/android/src/main/res/{anim → base/anim}/rns_slide_in_from_right.xml +0 -0
  201. /package/android/src/main/res/{anim → base/anim}/rns_slide_out_to_bottom.xml +0 -0
  202. /package/android/src/main/res/{anim → base/anim}/rns_slide_out_to_left.xml +0 -0
  203. /package/android/src/main/res/{anim → base/anim}/rns_slide_out_to_right.xml +0 -0
@@ -1,366 +0,0 @@
1
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
- import React from 'react';
3
- import { Platform, StyleSheet } from 'react-native';
4
- import { ScreenContext, ScreenStack, ScreenStackHeaderBackButtonImage, ScreenStackHeaderCenterView, ScreenStackHeaderConfig, ScreenStackHeaderLeftView, ScreenStackHeaderRightView, ScreenStackHeaderSearchBarView, SearchBar } from 'react-native-screens';
5
- import { createNavigator, SceneView, StackActions, StackRouter } from 'react-navigation';
6
- import { HeaderBackButton } from 'react-navigation-stack';
7
- const REMOVE_ACTION = 'NativeStackNavigator/REMOVE';
8
- const isAndroid = Platform.OS === 'android';
9
- let didWarn = isAndroid;
10
- function renderComponentOrThunk(componentOrThunk, props) {
11
- if (typeof componentOrThunk === 'function') {
12
- return componentOrThunk(props);
13
- }
14
- return componentOrThunk;
15
- }
16
- function removeScene(route, dismissCount, navigation) {
17
- navigation.dispatch({
18
- // @ts-ignore special navigation action for native stack
19
- type: REMOVE_ACTION,
20
- immediate: true,
21
- key: route.key,
22
- dismissCount
23
- });
24
- }
25
- function onAppear(route, descriptor, navigation) {
26
- var _descriptor$options, _descriptor$options$o;
27
- (_descriptor$options = descriptor.options) === null || _descriptor$options === void 0 ? void 0 : (_descriptor$options$o = _descriptor$options.onAppear) === null || _descriptor$options$o === void 0 ? void 0 : _descriptor$options$o.call(_descriptor$options);
28
- navigation.dispatch(StackActions.completeTransition({
29
- toChildKey: route.key,
30
- key: navigation.state.key
31
- }));
32
- }
33
- function onFinishTransitioning(navigation) {
34
- const {
35
- routes
36
- } = navigation.state;
37
- const lastRoute = (routes === null || routes === void 0 ? void 0 : routes.length) && routes[routes.length - 1];
38
- if (lastRoute) {
39
- navigation.dispatch(StackActions.completeTransition({
40
- toChildKey: lastRoute.key,
41
- key: navigation.state.key
42
- }));
43
- }
44
- }
45
- function renderHeaderConfig(index, route, descriptor, navigationConfig) {
46
- const {
47
- options
48
- } = descriptor;
49
- const {
50
- headerMode
51
- } = navigationConfig;
52
- const {
53
- backButtonInCustomView,
54
- direction,
55
- disableBackButtonMenu,
56
- headerBackTitle,
57
- headerBackTitleStyle,
58
- headerBackTitleVisible,
59
- headerHideBackButton,
60
- headerHideShadow,
61
- headerLargeStyle,
62
- headerLargeTitle,
63
- headerLargeTitleHideShadow,
64
- headerLargeTitleStyle,
65
- headerShown,
66
- headerStyle,
67
- headerTintColor,
68
- headerTitleStyle,
69
- headerTopInsetEnabled = true,
70
- headerTranslucent,
71
- hideShadow,
72
- largeTitle,
73
- largeTitleHideShadow,
74
- title,
75
- translucent
76
- } = options;
77
- const scene = {
78
- index,
79
- key: route.key,
80
- route,
81
- descriptor
82
- };
83
- const headerOptions = {
84
- backButtonInCustomView,
85
- backTitle: headerBackTitleVisible === false ? '' : headerBackTitle,
86
- backTitleFontFamily: headerBackTitleStyle === null || headerBackTitleStyle === void 0 ? void 0 : headerBackTitleStyle.fontFamily,
87
- backTitleFontSize: headerBackTitleStyle === null || headerBackTitleStyle === void 0 ? void 0 : headerBackTitleStyle.fontSize,
88
- color: headerTintColor,
89
- direction,
90
- disableBackButtonMenu,
91
- topInsetEnabled: headerTopInsetEnabled,
92
- hideBackButton: headerHideBackButton,
93
- hideShadow: headerHideShadow || hideShadow,
94
- largeTitle: headerLargeTitle || largeTitle,
95
- largeTitleBackgroundColor: (headerLargeStyle === null || headerLargeStyle === void 0 ? void 0 : headerLargeStyle.backgroundColor) || ( // @ts-ignore old implementation, will not be present in TS API, but can be used here
96
- headerLargeTitleStyle === null || headerLargeTitleStyle === void 0 ? void 0 : headerLargeTitleStyle.backgroundColor),
97
- largeTitleColor: headerLargeTitleStyle === null || headerLargeTitleStyle === void 0 ? void 0 : headerLargeTitleStyle.color,
98
- largeTitleFontFamily: headerLargeTitleStyle === null || headerLargeTitleStyle === void 0 ? void 0 : headerLargeTitleStyle.fontFamily,
99
- largeTitleFontSize: headerLargeTitleStyle === null || headerLargeTitleStyle === void 0 ? void 0 : headerLargeTitleStyle.fontSize,
100
- largeTitleFontWeight: headerLargeTitleStyle === null || headerLargeTitleStyle === void 0 ? void 0 : headerLargeTitleStyle.fontWeight,
101
- largeTitleHideShadow: largeTitleHideShadow || headerLargeTitleHideShadow,
102
- title,
103
- titleColor: (headerTitleStyle === null || headerTitleStyle === void 0 ? void 0 : headerTitleStyle.color) || headerTintColor,
104
- titleFontFamily: headerTitleStyle === null || headerTitleStyle === void 0 ? void 0 : headerTitleStyle.fontFamily,
105
- titleFontSize: headerTitleStyle === null || headerTitleStyle === void 0 ? void 0 : headerTitleStyle.fontSize,
106
- titleFontWeight: headerTitleStyle === null || headerTitleStyle === void 0 ? void 0 : headerTitleStyle.fontWeight,
107
- translucent: headerTranslucent || translucent || false
108
- };
109
- const hasHeader = headerShown !== false && headerMode !== 'none' && options.header !== null;
110
- if (!hasHeader) {
111
- return /*#__PURE__*/React.createElement(ScreenStackHeaderConfig, _extends({}, headerOptions, {
112
- hidden: true
113
- }));
114
- }
115
- if (headerStyle !== undefined) {
116
- headerOptions.backgroundColor = headerStyle.backgroundColor;
117
- headerOptions.blurEffect = headerStyle.blurEffect;
118
- }
119
- const children = [];
120
- if (options.backButtonImage) {
121
- children.push( /*#__PURE__*/React.createElement(ScreenStackHeaderBackButtonImage, {
122
- key: "backImage",
123
- source: options.backButtonImage
124
- }));
125
- }
126
- if (Platform.OS === 'ios' && options.searchBar) {
127
- children.push( /*#__PURE__*/React.createElement(ScreenStackHeaderSearchBarView, null, /*#__PURE__*/React.createElement(SearchBar, options.searchBar)));
128
- }
129
- if (options.headerLeft !== undefined) {
130
- children.push( /*#__PURE__*/React.createElement(ScreenStackHeaderLeftView, {
131
- key: "left"
132
- }, renderComponentOrThunk(options.headerLeft, {
133
- scene
134
- })));
135
- } else if (options.headerBackImage !== undefined) {
136
- const goBack = () => {
137
- // Go back on next tick because button ripple effect needs to happen on Android
138
- requestAnimationFrame(() => {
139
- descriptor.navigation.goBack(descriptor.key);
140
- });
141
- };
142
- children.push( /*#__PURE__*/React.createElement(ScreenStackHeaderLeftView, {
143
- key: "left"
144
- }, /*#__PURE__*/React.createElement(HeaderBackButton, {
145
- onPress: goBack,
146
- pressColorAndroid: options.headerPressColorAndroid,
147
- tintColor: options.headerTintColor,
148
- backImage: options.headerBackImage,
149
- label: options.backButtonTitle,
150
- truncatedLabel: options.truncatedBackButtonTitle,
151
- labelVisible: options.backTitleVisible,
152
- labelStyle: options.headerBackTitleStyle,
153
- titleLayout: options.layoutPreset
154
- // @ts-ignore old props kept for very old version of `react-navigation-stack`
155
- ,
156
- title: options.backButtonTitle,
157
- truncatedTitle: options.truncatedBackButtonTitle,
158
- backTitleVisible: options.backTitleVisible,
159
- titleStyle: options.headerBackTitleStyle,
160
- layoutPreset: options.layoutPreset,
161
- scene: scene
162
- })));
163
- }
164
- if (options.headerTitle) {
165
- if (title === undefined && typeof options.headerTitle === 'string') {
166
- headerOptions.title = options.headerTitle;
167
- } else {
168
- children.push( /*#__PURE__*/React.createElement(ScreenStackHeaderCenterView, {
169
- key: "center"
170
- }, renderComponentOrThunk(options.headerTitle, {
171
- scene
172
- })));
173
- }
174
- }
175
- if (options.headerRight) {
176
- children.push( /*#__PURE__*/React.createElement(ScreenStackHeaderRightView, {
177
- key: "right"
178
- }, renderComponentOrThunk(options.headerRight, {
179
- scene
180
- })));
181
- }
182
- if (children.length > 0) {
183
- headerOptions.children = children;
184
- }
185
- return /*#__PURE__*/React.createElement(ScreenStackHeaderConfig, headerOptions);
186
- }
187
- const MaybeNestedStack = _ref => {
188
- let {
189
- isHeaderInModal,
190
- screenProps,
191
- route,
192
- navigation,
193
- SceneComponent,
194
- index,
195
- descriptor,
196
- navigationConfig
197
- } = _ref;
198
- const Screen = React.useContext(ScreenContext);
199
- if (isHeaderInModal) {
200
- return /*#__PURE__*/React.createElement(ScreenStack, {
201
- style: styles.scenes
202
- }, /*#__PURE__*/React.createElement(Screen, {
203
- style: StyleSheet.absoluteFill,
204
- enabled: true,
205
- isNativeStack: true
206
- }, renderHeaderConfig(index, route, descriptor, navigationConfig), /*#__PURE__*/React.createElement(SceneView, {
207
- screenProps: screenProps,
208
- navigation: navigation,
209
- component: SceneComponent
210
- })));
211
- }
212
- return /*#__PURE__*/React.createElement(SceneView, {
213
- screenProps: screenProps,
214
- navigation: navigation,
215
- component: SceneComponent
216
- });
217
- };
218
- function StackView(_ref2) {
219
- let {
220
- navigation,
221
- descriptors,
222
- navigationConfig,
223
- screenProps
224
- } = _ref2;
225
- const {
226
- routes
227
- } = navigation.state;
228
- const Screen = React.useContext(ScreenContext);
229
- return /*#__PURE__*/React.createElement(ScreenStack, {
230
- style: styles.scenes,
231
- onFinishTransitioning: () => onFinishTransitioning(navigation)
232
- }, routes.map((route, index) => {
233
- const descriptor = descriptors[route.key];
234
- const {
235
- getComponent,
236
- options
237
- } = descriptor;
238
- const routeNavigationProp = descriptor.navigation;
239
- const {
240
- mode,
241
- transparentCard
242
- } = navigationConfig;
243
- const SceneComponent = getComponent();
244
- let stackPresentation = 'push';
245
- if (options.stackPresentation) {
246
- stackPresentation = options.stackPresentation;
247
- } else {
248
- // this shouldn't be used because we have a prop for that
249
- if (mode === 'modal' || mode === 'containedModal') {
250
- stackPresentation = mode;
251
- if (transparentCard || options.cardTransparent) {
252
- stackPresentation = mode === 'containedModal' ? 'containedTransparentModal' : 'transparentModal';
253
- }
254
- }
255
- }
256
- let stackAnimation = options.stackAnimation;
257
- if (options.animationEnabled === false) {
258
- stackAnimation = 'none';
259
- }
260
- const hasHeader = options.headerShown !== false && (navigationConfig === null || navigationConfig === void 0 ? void 0 : navigationConfig.headerMode) !== 'none' && options.header !== null;
261
- if (!didWarn && stackPresentation !== 'push' && options.headerShown !== undefined) {
262
- didWarn = true;
263
- console.warn('Be aware that changing the visibility of header in modal on iOS will result in resetting the state of the screen.');
264
- }
265
- const isHeaderInModal = isAndroid ? false : stackPresentation !== 'push' && hasHeader && options.headerShown === true;
266
- const isHeaderInPush = isAndroid ? hasHeader : stackPresentation === 'push' && hasHeader;
267
- return /*#__PURE__*/React.createElement(Screen, {
268
- key: `screen_${route.key}`,
269
- enabled: true,
270
- isNativeStack: true,
271
- style: [StyleSheet.absoluteFill, options.cardStyle],
272
- stackAnimation: stackAnimation,
273
- customAnimationOnSwipe: options.customAnimationOnSwipe,
274
- stackPresentation: stackPresentation,
275
- replaceAnimation: options.replaceAnimation === undefined ? 'pop' : options.replaceAnimation,
276
- pointerEvents: index === navigation.state.routes.length - 1 ? 'auto' : 'none',
277
- gestureEnabled: Platform.OS === 'android' ? false : options.gestureEnabled === undefined ? true : options.gestureEnabled,
278
- nativeBackButtonDismissalEnabled: options.nativeBackButtonDismissalEnabled,
279
- fullScreenSwipeEnabled: options.fullScreenSwipeEnabled,
280
- screenOrientation: options.screenOrientation,
281
- statusBarAnimation: options.statusBarAnimation,
282
- statusBarColor: options.statusBarColor,
283
- statusBarHidden: options.statusBarHidden,
284
- statusBarStyle: options.statusBarStyle,
285
- statusBarTranslucent: options.statusBarTranslucent,
286
- onAppear: () => onAppear(route, descriptor, routeNavigationProp),
287
- onWillAppear: () => {
288
- var _options$onWillAppear;
289
- return options === null || options === void 0 ? void 0 : (_options$onWillAppear = options.onWillAppear) === null || _options$onWillAppear === void 0 ? void 0 : _options$onWillAppear.call(options);
290
- },
291
- onWillDisappear: () => {
292
- var _options$onWillDisapp;
293
- return options === null || options === void 0 ? void 0 : (_options$onWillDisapp = options.onWillDisappear) === null || _options$onWillDisapp === void 0 ? void 0 : _options$onWillDisapp.call(options);
294
- },
295
- onDisappear: () => {
296
- var _options$onDisappear;
297
- return options === null || options === void 0 ? void 0 : (_options$onDisappear = options.onDisappear) === null || _options$onDisappear === void 0 ? void 0 : _options$onDisappear.call(options);
298
- },
299
- onHeaderBackButtonClicked: () => removeScene(route, 1, routeNavigationProp),
300
- onDismissed: e => removeScene(route, e.nativeEvent.dismissCount, routeNavigationProp)
301
- }, isHeaderInPush && renderHeaderConfig(index, route, descriptor, navigationConfig), /*#__PURE__*/React.createElement(MaybeNestedStack, {
302
- isHeaderInModal: isHeaderInModal,
303
- screenProps: screenProps,
304
- route: route,
305
- navigation: routeNavigationProp,
306
- SceneComponent: SceneComponent,
307
- index: index,
308
- descriptor: descriptor,
309
- navigationConfig: navigationConfig
310
- }));
311
- }));
312
- }
313
- const styles = StyleSheet.create({
314
- scenes: {
315
- flex: 1
316
- }
317
- });
318
- function createStackNavigator(routeConfigMap) {
319
- let stackConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
320
- const router = StackRouter(routeConfigMap, stackConfig);
321
-
322
- // below we override getStateForAction method in order to add handling for
323
- // a custom native stack navigation action. The action REMOVE that we want to
324
- // add works in a similar way to POP, but it does not remove all the routes
325
- // that sit on top of the removed route. For example if we have three routes
326
- // [a,b,c] and call POP on b, then both b and c will go away. In case we
327
- // call REMOVE on b, only b will be removed from the stack and the resulting
328
- // state will be [a, c]
329
- const superGetStateForAction = router.getStateForAction;
330
- router.getStateForAction = (action, state) => {
331
- if (action.type === REMOVE_ACTION) {
332
- const {
333
- key,
334
- immediate,
335
- dismissCount
336
- } = action;
337
- let backRouteIndex = state.index;
338
- if (key) {
339
- const backRoute = state.routes.find(route => route.key === key);
340
- backRouteIndex = state.routes.indexOf(backRoute);
341
- }
342
- if (backRouteIndex > 0) {
343
- const newRoutes = [...state.routes];
344
- if (dismissCount > 1) {
345
- // when dismissing with iOS 14 native header back button, we can pop more than 1 screen at a time
346
- // and the `backRouteIndex` is the index of the previous screen. Since we are starting already
347
- // on the previous screen, we add 1 to start.
348
- newRoutes.splice(backRouteIndex - dismissCount + 1, dismissCount);
349
- } else {
350
- newRoutes.splice(backRouteIndex, 1);
351
- }
352
- return {
353
- ...state,
354
- routes: newRoutes,
355
- index: newRoutes.length - 1,
356
- isTransitioning: immediate !== true
357
- };
358
- }
359
- }
360
- return superGetStateForAction(action, state);
361
- };
362
- // Create a navigator with StackView as the view
363
- return createNavigator(StackView, router, stackConfig);
364
- }
365
- export default createStackNavigator;
366
- //# sourceMappingURL=createNativeStackNavigator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","Platform","StyleSheet","ScreenContext","ScreenStack","ScreenStackHeaderBackButtonImage","ScreenStackHeaderCenterView","ScreenStackHeaderConfig","ScreenStackHeaderLeftView","ScreenStackHeaderRightView","ScreenStackHeaderSearchBarView","SearchBar","createNavigator","SceneView","StackActions","StackRouter","HeaderBackButton","REMOVE_ACTION","isAndroid","OS","didWarn","renderComponentOrThunk","componentOrThunk","props","removeScene","route","dismissCount","navigation","dispatch","type","immediate","key","onAppear","descriptor","options","completeTransition","toChildKey","state","onFinishTransitioning","routes","lastRoute","length","renderHeaderConfig","index","navigationConfig","headerMode","backButtonInCustomView","direction","disableBackButtonMenu","headerBackTitle","headerBackTitleStyle","headerBackTitleVisible","headerHideBackButton","headerHideShadow","headerLargeStyle","headerLargeTitle","headerLargeTitleHideShadow","headerLargeTitleStyle","headerShown","headerStyle","headerTintColor","headerTitleStyle","headerTopInsetEnabled","headerTranslucent","hideShadow","largeTitle","largeTitleHideShadow","title","translucent","scene","headerOptions","backTitle","backTitleFontFamily","fontFamily","backTitleFontSize","fontSize","color","topInsetEnabled","hideBackButton","largeTitleBackgroundColor","backgroundColor","largeTitleColor","largeTitleFontFamily","largeTitleFontSize","largeTitleFontWeight","fontWeight","titleColor","titleFontFamily","titleFontSize","titleFontWeight","hasHeader","header","undefined","blurEffect","children","backButtonImage","push","searchBar","headerLeft","headerBackImage","goBack","requestAnimationFrame","headerPressColorAndroid","backButtonTitle","truncatedBackButtonTitle","backTitleVisible","layoutPreset","headerTitle","headerRight","MaybeNestedStack","isHeaderInModal","screenProps","SceneComponent","Screen","useContext","styles","scenes","absoluteFill","StackView","descriptors","map","getComponent","routeNavigationProp","mode","transparentCard","stackPresentation","cardTransparent","stackAnimation","animationEnabled","console","warn","isHeaderInPush","cardStyle","customAnimationOnSwipe","replaceAnimation","gestureEnabled","nativeBackButtonDismissalEnabled","fullScreenSwipeEnabled","screenOrientation","statusBarAnimation","statusBarColor","statusBarHidden","statusBarStyle","statusBarTranslucent","onWillAppear","onWillDisappear","onDisappear","e","nativeEvent","create","flex","createStackNavigator","routeConfigMap","stackConfig","router","superGetStateForAction","getStateForAction","action","backRouteIndex","backRoute","find","indexOf","newRoutes","splice","isTransitioning"],"sources":["createNativeStackNavigator.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Platform,\n StyleSheet,\n Animated,\n StyleProp,\n TextStyle,\n ViewStyle,\n} from 'react-native';\nimport {\n ScreenContext,\n ScreenStack,\n ScreenStackHeaderBackButtonImage,\n ScreenStackHeaderCenterView,\n ScreenStackHeaderConfig,\n ScreenStackHeaderConfigProps,\n ScreenStackHeaderLeftView,\n ScreenStackHeaderRightView,\n ScreenStackHeaderSearchBarView,\n SearchBar,\n StackPresentationTypes,\n} from 'react-native-screens';\nimport {\n createNavigator,\n SceneView,\n StackActions,\n StackRouter,\n NavigationRouteConfigMap,\n CreateNavigatorConfig,\n NavigationStackRouterConfig,\n NavigationParams,\n NavigationRoute,\n NavigationDescriptor,\n NavigationState,\n NavigationNavigator,\n NavigationAction,\n NavigationProp,\n NavigationScreenProp,\n} from 'react-navigation';\nimport { NativeStackNavigationOptions as NativeStackNavigationOptionsV5 } from './native-stack/types';\nimport { HeaderBackButton } from 'react-navigation-stack';\nimport {\n StackNavigationHelpers,\n StackNavigationProp,\n Layout,\n} from 'react-navigation-stack/src/vendor/types';\n\nconst REMOVE_ACTION = 'NativeStackNavigator/REMOVE';\n\nconst isAndroid = Platform.OS === 'android';\n\nlet didWarn = isAndroid;\n\nfunction renderComponentOrThunk(componentOrThunk: unknown, props: unknown) {\n if (typeof componentOrThunk === 'function') {\n return componentOrThunk(props);\n }\n return componentOrThunk;\n}\n\ntype NativeStackRemoveNavigationAction = {\n type: typeof REMOVE_ACTION;\n immediate: boolean;\n dismissCount: number;\n key?: string;\n};\n\nexport type NativeStackNavigationProp = StackNavigationProp;\n\nexport type NativeStackNavigationOptions = StackNavigatorOptions &\n NativeStackNavigationOptionsV5 &\n BackButtonProps & {\n onWillAppear?: () => void;\n onAppear?: () => void;\n onWillDisappear?: () => void;\n onDisappear?: () => void;\n // these props differ from the ones used in v5 `native-stack`, and we would like to keep the API consistent between versions\n /** Use `headerHideShadow` to be consistent with v5 `native-stack` */\n hideShadow?: boolean;\n /** Use `headerLargeTitle` to be consistent with v5 `native-stack` */\n largeTitle?: boolean;\n /** Use `headerLargeTitleHideShadow` to be consistent with v5 `native-stack` */\n largeTitleHideShadow?: boolean;\n /** Use `headerTranslucent` to be consistent with v5 `native-stack` */\n translucent?: boolean;\n };\n\n// these are adopted from `stack` navigator\ntype StackNavigatorOptions = {\n /** This is an option from `stackNavigator` and it hides the header when set to `null`. Use `headerShown` instead to be consistent with v5 `native-stack`. */\n header?: React.ComponentType<Record<string, unknown>> | null;\n /** This is an option from `stackNavigator` and it controls the stack presentation along with `mode` prop. Use `stackPresentation` instead to be consistent with v5 `native-stack` */\n cardTransparent?: boolean;\n /** This is an option from `stackNavigator` and it sets stack animation to none when `false` passed. Use `stackAnimation: 'none'` instead to be consistent with v5 `native-stack` */\n animationEnabled?: boolean;\n cardStyle?: StyleProp<ViewStyle>;\n};\n\n// these are the props used for rendering back button taken from `react-navigation-stack`\ntype BackButtonProps = {\n headerBackImage?: (props: { tintColor: string }) => React.ReactNode;\n headerPressColorAndroid?: string;\n headerTintColor?: string;\n backButtonTitle?: string;\n truncatedBackButtonTitle?: string;\n backTitleVisible?: boolean;\n headerBackTitleStyle?: Animated.WithAnimatedValue<StyleProp<TextStyle>>;\n layoutPreset?: Layout;\n};\n\ntype NativeStackDescriptor = NavigationDescriptor<\n NavigationParams,\n NativeStackNavigationOptions\n>;\n\ntype NativeStackDescriptorMap = {\n [key: string]: NativeStackDescriptor;\n};\n\n// these are the props used for rendering back button taken from `react-navigation-stack`\ntype NativeStackNavigationConfig = {\n /** This is an option from `stackNavigator` and controls the stack presentation along with `cardTransparent` prop. Use `stackPresentation` instead to be consistent with v5 `native-stack` */\n mode?: 'modal' | 'containedModal';\n /** This is an option from `stackNavigator` and makes the header hide when set to `none`. Use `headerShown` instead to be consistent with v5 `native-stack` */\n headerMode?: 'none';\n /** This is an option from `stackNavigator` and controls the stack presentation along with `mode` prop. Use `stackPresentation` instead to be consistent with v5 `native-stack` */\n transparentCard?: boolean;\n};\n\nfunction removeScene(\n route: NavigationRoute<NavigationParams>,\n dismissCount: number,\n navigation: StackNavigationHelpers\n) {\n navigation.dispatch({\n // @ts-ignore special navigation action for native stack\n type: REMOVE_ACTION,\n immediate: true,\n key: route.key,\n dismissCount,\n });\n}\n\nfunction onAppear(\n route: NavigationRoute<NavigationParams>,\n descriptor: NativeStackDescriptor,\n navigation: StackNavigationHelpers\n) {\n descriptor.options?.onAppear?.();\n navigation.dispatch(\n StackActions.completeTransition({\n toChildKey: route.key,\n key: navigation.state.key,\n })\n );\n}\n\nfunction onFinishTransitioning(navigation: StackNavigationHelpers) {\n const { routes } = navigation.state;\n const lastRoute = routes?.length && routes[routes.length - 1];\n\n if (lastRoute) {\n navigation.dispatch(\n StackActions.completeTransition({\n toChildKey: lastRoute.key,\n key: navigation.state.key,\n })\n );\n }\n}\n\nfunction renderHeaderConfig(\n index: number,\n route: NavigationRoute<NavigationParams>,\n descriptor: NativeStackDescriptor,\n navigationConfig: NativeStackNavigationConfig\n) {\n const { options } = descriptor;\n const { headerMode } = navigationConfig;\n\n const {\n backButtonInCustomView,\n direction,\n disableBackButtonMenu,\n headerBackTitle,\n headerBackTitleStyle,\n headerBackTitleVisible,\n headerHideBackButton,\n headerHideShadow,\n headerLargeStyle,\n headerLargeTitle,\n headerLargeTitleHideShadow,\n headerLargeTitleStyle,\n headerShown,\n headerStyle,\n headerTintColor,\n headerTitleStyle,\n headerTopInsetEnabled = true,\n headerTranslucent,\n hideShadow,\n largeTitle,\n largeTitleHideShadow,\n title,\n translucent,\n } = options;\n\n const scene = {\n index,\n key: route.key,\n route,\n descriptor,\n };\n\n const headerOptions: ScreenStackHeaderConfigProps = {\n backButtonInCustomView,\n backTitle: headerBackTitleVisible === false ? '' : headerBackTitle,\n backTitleFontFamily: headerBackTitleStyle?.fontFamily,\n backTitleFontSize: headerBackTitleStyle?.fontSize,\n color: headerTintColor,\n direction,\n disableBackButtonMenu,\n topInsetEnabled: headerTopInsetEnabled,\n hideBackButton: headerHideBackButton,\n hideShadow: headerHideShadow || hideShadow,\n largeTitle: headerLargeTitle || largeTitle,\n largeTitleBackgroundColor:\n headerLargeStyle?.backgroundColor ||\n // @ts-ignore old implementation, will not be present in TS API, but can be used here\n headerLargeTitleStyle?.backgroundColor,\n largeTitleColor: headerLargeTitleStyle?.color,\n largeTitleFontFamily: headerLargeTitleStyle?.fontFamily,\n largeTitleFontSize: headerLargeTitleStyle?.fontSize,\n largeTitleFontWeight: headerLargeTitleStyle?.fontWeight,\n largeTitleHideShadow: largeTitleHideShadow || headerLargeTitleHideShadow,\n title,\n titleColor: headerTitleStyle?.color || headerTintColor,\n titleFontFamily: headerTitleStyle?.fontFamily,\n titleFontSize: headerTitleStyle?.fontSize,\n titleFontWeight: headerTitleStyle?.fontWeight,\n translucent: headerTranslucent || translucent || false,\n };\n\n const hasHeader =\n headerShown !== false && headerMode !== 'none' && options.header !== null;\n if (!hasHeader) {\n return <ScreenStackHeaderConfig {...headerOptions} hidden />;\n }\n\n if (headerStyle !== undefined) {\n headerOptions.backgroundColor = headerStyle.backgroundColor;\n headerOptions.blurEffect = headerStyle.blurEffect;\n }\n\n const children = [];\n\n if (options.backButtonImage) {\n children.push(\n <ScreenStackHeaderBackButtonImage\n key=\"backImage\"\n source={options.backButtonImage}\n />\n );\n }\n\n if (Platform.OS === 'ios' && options.searchBar) {\n children.push(\n <ScreenStackHeaderSearchBarView>\n <SearchBar {...options.searchBar} />\n </ScreenStackHeaderSearchBarView>\n );\n }\n\n if (options.headerLeft !== undefined) {\n children.push(\n <ScreenStackHeaderLeftView key=\"left\">\n {renderComponentOrThunk(options.headerLeft, { scene })}\n </ScreenStackHeaderLeftView>\n );\n } else if (options.headerBackImage !== undefined) {\n const goBack = () => {\n // Go back on next tick because button ripple effect needs to happen on Android\n requestAnimationFrame(() => {\n descriptor.navigation.goBack(descriptor.key);\n });\n };\n\n children.push(\n <ScreenStackHeaderLeftView key=\"left\">\n <HeaderBackButton\n onPress={goBack}\n pressColorAndroid={options.headerPressColorAndroid}\n tintColor={options.headerTintColor}\n backImage={options.headerBackImage}\n label={options.backButtonTitle}\n truncatedLabel={options.truncatedBackButtonTitle}\n labelVisible={options.backTitleVisible}\n labelStyle={options.headerBackTitleStyle}\n titleLayout={options.layoutPreset}\n // @ts-ignore old props kept for very old version of `react-navigation-stack`\n title={options.backButtonTitle}\n truncatedTitle={options.truncatedBackButtonTitle}\n backTitleVisible={options.backTitleVisible}\n titleStyle={options.headerBackTitleStyle}\n layoutPreset={options.layoutPreset}\n scene={scene}\n />\n </ScreenStackHeaderLeftView>\n );\n }\n\n if (options.headerTitle) {\n if (title === undefined && typeof options.headerTitle === 'string') {\n headerOptions.title = options.headerTitle;\n } else {\n children.push(\n <ScreenStackHeaderCenterView key=\"center\">\n {renderComponentOrThunk(options.headerTitle, { scene })}\n </ScreenStackHeaderCenterView>\n );\n }\n }\n\n if (options.headerRight) {\n children.push(\n <ScreenStackHeaderRightView key=\"right\">\n {renderComponentOrThunk(options.headerRight, { scene })}\n </ScreenStackHeaderRightView>\n );\n }\n\n if (children.length > 0) {\n headerOptions.children = children;\n }\n\n return <ScreenStackHeaderConfig {...headerOptions} />;\n}\n\nconst MaybeNestedStack = ({\n isHeaderInModal,\n screenProps,\n route,\n navigation,\n SceneComponent,\n index,\n descriptor,\n navigationConfig,\n}: {\n isHeaderInModal: boolean;\n screenProps: unknown;\n route: NavigationRoute<NavigationParams>;\n navigation: NavigationScreenProp<\n NavigationRoute<NavigationParams>,\n NavigationParams\n >;\n SceneComponent: React.ComponentType<Record<string, unknown>>;\n index: number;\n descriptor: NativeStackDescriptor;\n navigationConfig: NativeStackNavigationConfig;\n}) => {\n const Screen = React.useContext(ScreenContext);\n\n if (isHeaderInModal) {\n return (\n <ScreenStack style={styles.scenes}>\n <Screen style={StyleSheet.absoluteFill} enabled isNativeStack>\n {renderHeaderConfig(index, route, descriptor, navigationConfig)}\n <SceneView\n screenProps={screenProps}\n navigation={navigation}\n component={SceneComponent}\n />\n </Screen>\n </ScreenStack>\n );\n }\n return (\n <SceneView\n screenProps={screenProps}\n navigation={navigation}\n component={SceneComponent}\n />\n );\n};\n\ntype StackViewProps = {\n navigation: StackNavigationHelpers;\n descriptors: NativeStackDescriptorMap;\n navigationConfig: NativeStackNavigationConfig;\n screenProps: unknown;\n};\n\nfunction StackView({\n navigation,\n descriptors,\n navigationConfig,\n screenProps,\n}: StackViewProps) {\n const { routes } = navigation.state;\n const Screen = React.useContext(ScreenContext);\n return (\n <ScreenStack\n style={styles.scenes}\n onFinishTransitioning={() => onFinishTransitioning(navigation)}\n >\n {routes.map((route, index) => {\n const descriptor = descriptors[route.key];\n const { getComponent, options } = descriptor;\n const routeNavigationProp = descriptor.navigation;\n const { mode, transparentCard } = navigationConfig;\n const SceneComponent = getComponent();\n\n let stackPresentation: StackPresentationTypes = 'push';\n\n if (options.stackPresentation) {\n stackPresentation = options.stackPresentation;\n } else {\n // this shouldn't be used because we have a prop for that\n if (mode === 'modal' || mode === 'containedModal') {\n stackPresentation = mode;\n if (transparentCard || options.cardTransparent) {\n stackPresentation =\n mode === 'containedModal'\n ? 'containedTransparentModal'\n : 'transparentModal';\n }\n }\n }\n let stackAnimation = options.stackAnimation;\n if (options.animationEnabled === false) {\n stackAnimation = 'none';\n }\n\n const hasHeader =\n options.headerShown !== false &&\n navigationConfig?.headerMode !== 'none' &&\n options.header !== null;\n\n if (\n !didWarn &&\n stackPresentation !== 'push' &&\n options.headerShown !== undefined\n ) {\n didWarn = true;\n console.warn(\n 'Be aware that changing the visibility of header in modal on iOS will result in resetting the state of the screen.'\n );\n }\n\n const isHeaderInModal = isAndroid\n ? false\n : stackPresentation !== 'push' &&\n hasHeader &&\n options.headerShown === true;\n const isHeaderInPush = isAndroid\n ? hasHeader\n : stackPresentation === 'push' && hasHeader;\n\n return (\n <Screen\n key={`screen_${route.key}`}\n enabled\n isNativeStack\n style={[StyleSheet.absoluteFill, options.cardStyle]}\n stackAnimation={stackAnimation}\n customAnimationOnSwipe={options.customAnimationOnSwipe}\n stackPresentation={stackPresentation}\n replaceAnimation={\n options.replaceAnimation === undefined\n ? 'pop'\n : options.replaceAnimation\n }\n pointerEvents={\n index === navigation.state.routes.length - 1 ? 'auto' : 'none'\n }\n gestureEnabled={\n Platform.OS === 'android'\n ? false\n : options.gestureEnabled === undefined\n ? true\n : options.gestureEnabled\n }\n nativeBackButtonDismissalEnabled={\n options.nativeBackButtonDismissalEnabled\n }\n fullScreenSwipeEnabled={options.fullScreenSwipeEnabled}\n screenOrientation={options.screenOrientation}\n statusBarAnimation={options.statusBarAnimation}\n statusBarColor={options.statusBarColor}\n statusBarHidden={options.statusBarHidden}\n statusBarStyle={options.statusBarStyle}\n statusBarTranslucent={options.statusBarTranslucent}\n onAppear={() => onAppear(route, descriptor, routeNavigationProp)}\n onWillAppear={() => options?.onWillAppear?.()}\n onWillDisappear={() => options?.onWillDisappear?.()}\n onDisappear={() => options?.onDisappear?.()}\n onHeaderBackButtonClicked={() =>\n removeScene(route, 1, routeNavigationProp)\n }\n onDismissed={(e) =>\n removeScene(\n route,\n e.nativeEvent.dismissCount,\n routeNavigationProp\n )\n }\n >\n {isHeaderInPush &&\n renderHeaderConfig(index, route, descriptor, navigationConfig)}\n <MaybeNestedStack\n isHeaderInModal={isHeaderInModal}\n screenProps={screenProps}\n route={route}\n navigation={routeNavigationProp}\n SceneComponent={SceneComponent}\n index={index}\n descriptor={descriptor}\n navigationConfig={navigationConfig}\n />\n </Screen>\n );\n })}\n </ScreenStack>\n );\n}\n\nconst styles = StyleSheet.create({\n scenes: { flex: 1 },\n});\n\nfunction createStackNavigator(\n routeConfigMap: NavigationRouteConfigMap<\n NativeStackNavigationOptions,\n StackNavigationProp\n >,\n stackConfig: CreateNavigatorConfig<\n NativeStackNavigationConfig,\n NavigationStackRouterConfig,\n NativeStackNavigationOptions,\n StackNavigationProp\n > = {}\n): NavigationNavigator<\n Record<string, unknown>,\n NavigationProp<NavigationState>\n> {\n const router = StackRouter(routeConfigMap, stackConfig);\n\n // below we override getStateForAction method in order to add handling for\n // a custom native stack navigation action. The action REMOVE that we want to\n // add works in a similar way to POP, but it does not remove all the routes\n // that sit on top of the removed route. For example if we have three routes\n // [a,b,c] and call POP on b, then both b and c will go away. In case we\n // call REMOVE on b, only b will be removed from the stack and the resulting\n // state will be [a, c]\n const superGetStateForAction = router.getStateForAction;\n router.getStateForAction = (\n action: NavigationAction | NativeStackRemoveNavigationAction,\n state\n ) => {\n if (action.type === REMOVE_ACTION) {\n const { key, immediate, dismissCount } = action;\n let backRouteIndex = state.index;\n if (key) {\n const backRoute = state.routes.find(\n (route: NavigationRoute<NavigationParams>) => route.key === key\n );\n backRouteIndex = state.routes.indexOf(backRoute);\n }\n\n if (backRouteIndex > 0) {\n const newRoutes = [...state.routes];\n if (dismissCount > 1) {\n // when dismissing with iOS 14 native header back button, we can pop more than 1 screen at a time\n // and the `backRouteIndex` is the index of the previous screen. Since we are starting already\n // on the previous screen, we add 1 to start.\n newRoutes.splice(backRouteIndex - dismissCount + 1, dismissCount);\n } else {\n newRoutes.splice(backRouteIndex, 1);\n }\n\n return {\n ...state,\n routes: newRoutes,\n index: newRoutes.length - 1,\n isTransitioning: immediate !== true,\n };\n }\n }\n return superGetStateForAction(action as NavigationAction, state);\n };\n // Create a navigator with StackView as the view\n return createNavigator(StackView, router, stackConfig);\n}\n\nexport default createStackNavigator;\n"],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- import React from 'react';
2
- import { Animated, StyleProp, TextStyle, ViewStyle } from 'react-native';
3
- import { NavigationRouteConfigMap, CreateNavigatorConfig, NavigationStackRouterConfig, NavigationState, NavigationNavigator, NavigationProp } from 'react-navigation';
4
- import { NativeStackNavigationOptions as NativeStackNavigationOptionsV5 } from './native-stack/types';
5
- import { StackNavigationProp, Layout } from 'react-navigation-stack/src/vendor/types';
6
- export declare type NativeStackNavigationProp = StackNavigationProp;
7
- export declare type NativeStackNavigationOptions = StackNavigatorOptions & NativeStackNavigationOptionsV5 & BackButtonProps & {
8
- onWillAppear?: () => void;
9
- onAppear?: () => void;
10
- onWillDisappear?: () => void;
11
- onDisappear?: () => void;
12
- /** Use `headerHideShadow` to be consistent with v5 `native-stack` */
13
- hideShadow?: boolean;
14
- /** Use `headerLargeTitle` to be consistent with v5 `native-stack` */
15
- largeTitle?: boolean;
16
- /** Use `headerLargeTitleHideShadow` to be consistent with v5 `native-stack` */
17
- largeTitleHideShadow?: boolean;
18
- /** Use `headerTranslucent` to be consistent with v5 `native-stack` */
19
- translucent?: boolean;
20
- };
21
- declare type StackNavigatorOptions = {
22
- /** This is an option from `stackNavigator` and it hides the header when set to `null`. Use `headerShown` instead to be consistent with v5 `native-stack`. */
23
- header?: React.ComponentType<Record<string, unknown>> | null;
24
- /** This is an option from `stackNavigator` and it controls the stack presentation along with `mode` prop. Use `stackPresentation` instead to be consistent with v5 `native-stack` */
25
- cardTransparent?: boolean;
26
- /** This is an option from `stackNavigator` and it sets stack animation to none when `false` passed. Use `stackAnimation: 'none'` instead to be consistent with v5 `native-stack` */
27
- animationEnabled?: boolean;
28
- cardStyle?: StyleProp<ViewStyle>;
29
- };
30
- declare type BackButtonProps = {
31
- headerBackImage?: (props: {
32
- tintColor: string;
33
- }) => React.ReactNode;
34
- headerPressColorAndroid?: string;
35
- headerTintColor?: string;
36
- backButtonTitle?: string;
37
- truncatedBackButtonTitle?: string;
38
- backTitleVisible?: boolean;
39
- headerBackTitleStyle?: Animated.WithAnimatedValue<StyleProp<TextStyle>>;
40
- layoutPreset?: Layout;
41
- };
42
- declare type NativeStackNavigationConfig = {
43
- /** This is an option from `stackNavigator` and controls the stack presentation along with `cardTransparent` prop. Use `stackPresentation` instead to be consistent with v5 `native-stack` */
44
- mode?: 'modal' | 'containedModal';
45
- /** This is an option from `stackNavigator` and makes the header hide when set to `none`. Use `headerShown` instead to be consistent with v5 `native-stack` */
46
- headerMode?: 'none';
47
- /** This is an option from `stackNavigator` and controls the stack presentation along with `mode` prop. Use `stackPresentation` instead to be consistent with v5 `native-stack` */
48
- transparentCard?: boolean;
49
- };
50
- declare function createStackNavigator(routeConfigMap: NavigationRouteConfigMap<NativeStackNavigationOptions, StackNavigationProp>, stackConfig?: CreateNavigatorConfig<NativeStackNavigationConfig, NavigationStackRouterConfig, NativeStackNavigationOptions, StackNavigationProp>): NavigationNavigator<Record<string, unknown>, NavigationProp<NavigationState>>;
51
- export default createStackNavigator;