react-native-screens 3.28.0 → 3.30.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 (448) hide show
  1. package/README.md +7 -7
  2. package/RNScreens.podspec +3 -3
  3. package/android/CMakeLists.txt +27 -0
  4. package/android/build.gradle +21 -2
  5. package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +17 -14
  6. package/android/src/main/cpp/jni-adapter.cpp +110 -0
  7. package/android/src/main/java/com/swmansion/rnscreens/CustomSearchView.kt +13 -8
  8. package/android/src/main/java/com/swmansion/rnscreens/FragmentBackPressOverrider.kt +8 -8
  9. package/android/src/main/java/com/swmansion/rnscreens/ModalScreenViewManager.kt +12 -0
  10. package/android/src/main/java/com/swmansion/rnscreens/RNScreensPackage.kt +38 -5
  11. package/android/src/main/java/com/swmansion/rnscreens/Screen.kt +32 -42
  12. package/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.kt +76 -48
  13. package/android/src/main/java/com/swmansion/rnscreens/ScreenFragment.kt +38 -35
  14. package/android/src/main/java/com/swmansion/rnscreens/ScreenStack.kt +43 -37
  15. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt +23 -23
  16. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt +73 -71
  17. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.kt +3 -3
  18. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubview.kt +5 -5
  19. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubviewManager.kt +3 -3
  20. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackViewManager.kt +3 -3
  21. package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +4 -4
  22. package/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt +13 -16
  23. package/android/src/main/java/com/swmansion/rnscreens/ScreensModule.kt +105 -0
  24. package/android/src/main/java/com/swmansion/rnscreens/ScreensShadowNode.kt +2 -2
  25. package/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt +1 -0
  26. package/android/src/main/java/com/swmansion/rnscreens/SearchBarView.kt +14 -10
  27. package/android/src/main/java/com/swmansion/rnscreens/SearchViewFormatter.kt +8 -8
  28. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderAttachedEvent.kt +3 -7
  29. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderBackButtonClickedEvent.kt +4 -8
  30. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderDetachedEvent.kt +3 -7
  31. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt +3 -3
  32. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenTransitionProgressEvent.kt +9 -13
  33. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarBlurEvent.kt +3 -7
  34. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarChangeTextEvent.kt +3 -7
  35. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarCloseEvent.kt +3 -7
  36. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarFocusEvent.kt +3 -7
  37. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarOpenEvent.kt +3 -7
  38. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarSearchButtonPressEvent.kt +3 -7
  39. package/android/src/main/jni/rnscreens.h +1 -0
  40. package/android/src/main/res/v33/anim-v33/rns_default_enter_in.xml +0 -1
  41. package/android/src/main/res/v33/anim-v33/rns_default_enter_out.xml +2 -2
  42. package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +1 -1
  43. package/android/src/paper/java/com/swmansion/rnscreens/NativeScreensModuleSpec.java +32 -0
  44. package/common/cpp/react/renderer/components/rnscreens/RNSModalScreenComponentDescriptor.h +41 -0
  45. package/common/cpp/react/renderer/components/rnscreens/RNSModalScreenShadowNode.cpp +15 -0
  46. package/common/cpp/react/renderer/components/rnscreens/RNSModalScreenShadowNode.h +31 -0
  47. package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.cpp +6 -0
  48. package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.h +1 -5
  49. package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.cpp +1 -1
  50. package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.h +8 -3
  51. package/cpp/RNScreensTurboModule.cpp +107 -0
  52. package/cpp/RNScreensTurboModule.h +43 -0
  53. package/gesture-handler/package.json +6 -0
  54. package/ios/RNSConvert.h +2 -0
  55. package/ios/RNSConvert.mm +5 -2
  56. package/ios/RNSEnums.h +1 -0
  57. package/ios/RNSModalScreen.h +8 -0
  58. package/ios/RNSModalScreen.mm +36 -0
  59. package/ios/RNSModule.h +19 -0
  60. package/ios/RNSModule.mm +174 -0
  61. package/ios/RNSScreen.h +4 -1
  62. package/ios/RNSScreen.mm +48 -26
  63. package/ios/RNSScreenStack.h +6 -0
  64. package/ios/RNSScreenStack.mm +150 -23
  65. package/ios/RNSScreenStackAnimator.mm +89 -1
  66. package/ios/RNSScreenStackHeaderConfig.mm +7 -1
  67. package/ios/RNSScreenWindowTraits.h +1 -1
  68. package/ios/RNSScreenWindowTraits.mm +24 -50
  69. package/ios/RNSSearchBar.mm +24 -0
  70. package/ios/utils/RNSUIBarButtonItem.h +2 -0
  71. package/lib/commonjs/TransitionProgressContext.js +3 -4
  72. package/lib/commonjs/TransitionProgressContext.js.map +1 -1
  73. package/lib/commonjs/components/FullWindowOverlay.js +28 -0
  74. package/lib/commonjs/components/FullWindowOverlay.js.map +1 -0
  75. package/lib/commonjs/components/FullWindowOverlay.web.js +9 -0
  76. package/lib/commonjs/components/FullWindowOverlay.web.js.map +1 -0
  77. package/lib/commonjs/components/Screen.js +161 -0
  78. package/lib/commonjs/components/Screen.js.map +1 -0
  79. package/lib/commonjs/components/Screen.web.js +46 -0
  80. package/lib/commonjs/components/Screen.web.js.map +1 -0
  81. package/lib/commonjs/components/ScreenContainer.js +33 -0
  82. package/lib/commonjs/components/ScreenContainer.js.map +1 -0
  83. package/lib/commonjs/components/ScreenContainer.web.js +11 -0
  84. package/lib/commonjs/components/ScreenContainer.web.js.map +1 -0
  85. package/lib/commonjs/components/ScreenStack.js +45 -0
  86. package/lib/commonjs/components/ScreenStack.js.map +1 -0
  87. package/lib/commonjs/components/ScreenStack.web.js +9 -0
  88. package/lib/commonjs/components/ScreenStack.web.js.map +1 -0
  89. package/lib/commonjs/components/ScreenStackHeaderConfig.js +53 -0
  90. package/lib/commonjs/components/ScreenStackHeaderConfig.js.map +1 -0
  91. package/lib/commonjs/components/ScreenStackHeaderConfig.web.js +27 -0
  92. package/lib/commonjs/components/ScreenStackHeaderConfig.web.js.map +1 -0
  93. package/lib/commonjs/components/SearchBar.js +59 -0
  94. package/lib/commonjs/components/SearchBar.js.map +1 -0
  95. package/lib/commonjs/components/SearchBar.web.js +11 -0
  96. package/lib/commonjs/components/SearchBar.web.js.map +1 -0
  97. package/lib/commonjs/components/helpers/DelayedFreeze.js +32 -0
  98. package/lib/commonjs/components/helpers/DelayedFreeze.js.map +1 -0
  99. package/lib/commonjs/core.js +41 -0
  100. package/lib/commonjs/core.js.map +1 -0
  101. package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js +1 -2
  102. package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
  103. package/lib/commonjs/fabric/ModalScreenNativeComponent.js +13 -0
  104. package/lib/commonjs/fabric/ModalScreenNativeComponent.js.map +1 -0
  105. package/lib/commonjs/fabric/NativeScreensModule.js +10 -0
  106. package/lib/commonjs/fabric/NativeScreensModule.js.map +1 -0
  107. package/lib/commonjs/fabric/NativeScreensModule.web.js +8 -0
  108. package/lib/commonjs/fabric/NativeScreensModule.web.js.map +1 -0
  109. package/lib/commonjs/fabric/ScreenContainerNativeComponent.js +1 -2
  110. package/lib/commonjs/fabric/ScreenContainerNativeComponent.js.map +1 -1
  111. package/lib/commonjs/fabric/ScreenNativeComponent.js +1 -2
  112. package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
  113. package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js +1 -2
  114. package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
  115. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js +1 -2
  116. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  117. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js +1 -2
  118. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
  119. package/lib/commonjs/fabric/ScreenStackNativeComponent.js +1 -2
  120. package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -1
  121. package/lib/commonjs/fabric/SearchBarNativeComponent.js +3 -5
  122. package/lib/commonjs/fabric/SearchBarNativeComponent.js.map +1 -1
  123. package/lib/commonjs/gesture-handler/GestureDetectorProvider.js +19 -0
  124. package/lib/commonjs/gesture-handler/GestureDetectorProvider.js.map +1 -0
  125. package/lib/commonjs/gesture-handler/RNScreensTurboModule.js +8 -0
  126. package/lib/commonjs/gesture-handler/RNScreensTurboModule.js.map +1 -0
  127. package/lib/commonjs/gesture-handler/ScreenGestureDetector.js +202 -0
  128. package/lib/commonjs/gesture-handler/ScreenGestureDetector.js.map +1 -0
  129. package/lib/commonjs/gesture-handler/constraints.js +64 -0
  130. package/lib/commonjs/gesture-handler/constraints.js.map +1 -0
  131. package/lib/commonjs/gesture-handler/defaults.js +38 -0
  132. package/lib/commonjs/gesture-handler/defaults.js.map +1 -0
  133. package/lib/commonjs/gesture-handler/fabricUtils.js +30 -0
  134. package/lib/commonjs/gesture-handler/fabricUtils.js.map +1 -0
  135. package/lib/commonjs/gesture-handler/fabricUtils.web.js +17 -0
  136. package/lib/commonjs/gesture-handler/fabricUtils.web.js.map +1 -0
  137. package/lib/commonjs/gesture-handler/index.js +14 -0
  138. package/lib/commonjs/gesture-handler/index.js.map +1 -0
  139. package/lib/commonjs/index.js +183 -100
  140. package/lib/commonjs/index.js.map +1 -1
  141. package/lib/commonjs/native-stack/contexts/GHContext.js +11 -0
  142. package/lib/commonjs/native-stack/contexts/GHContext.js.map +1 -0
  143. package/lib/commonjs/native-stack/index.js.map +1 -1
  144. package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js +20 -24
  145. package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
  146. package/lib/commonjs/native-stack/types.js.map +1 -1
  147. package/lib/commonjs/native-stack/utils/AnimatedHeaderHeightContext.js +3 -4
  148. package/lib/commonjs/native-stack/utils/AnimatedHeaderHeightContext.js.map +1 -1
  149. package/lib/commonjs/native-stack/utils/HeaderHeightContext.js +3 -4
  150. package/lib/commonjs/native-stack/utils/HeaderHeightContext.js.map +1 -1
  151. package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js +2 -2
  152. package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
  153. package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
  154. package/lib/commonjs/native-stack/utils/getStatusBarHeight.js.map +1 -1
  155. package/lib/commonjs/native-stack/utils/useAnimatedHeaderHeight.js +2 -2
  156. package/lib/commonjs/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -1
  157. package/lib/commonjs/native-stack/utils/useBackPressSubscription.js +2 -4
  158. package/lib/commonjs/native-stack/utils/useBackPressSubscription.js.map +1 -1
  159. package/lib/commonjs/native-stack/utils/useHeaderHeight.js +2 -2
  160. package/lib/commonjs/native-stack/utils/useHeaderHeight.js.map +1 -1
  161. package/lib/commonjs/native-stack/views/FontProcessor.js +1 -2
  162. package/lib/commonjs/native-stack/views/FontProcessor.js.map +1 -1
  163. package/lib/commonjs/native-stack/views/HeaderConfig.js +11 -7
  164. package/lib/commonjs/native-stack/views/HeaderConfig.js.map +1 -1
  165. package/lib/commonjs/native-stack/views/NativeStackView.js +50 -15
  166. package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -1
  167. package/lib/commonjs/reanimated/ReanimatedHeaderHeightContext.js +3 -4
  168. package/lib/commonjs/reanimated/ReanimatedHeaderHeightContext.js.map +1 -1
  169. package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js +6 -9
  170. package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
  171. package/lib/commonjs/reanimated/ReanimatedScreen.js +1 -2
  172. package/lib/commonjs/reanimated/ReanimatedScreen.js.map +1 -1
  173. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js +6 -14
  174. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js.map +1 -1
  175. package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js +3 -4
  176. package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js.map +1 -1
  177. package/lib/commonjs/reanimated/index.js.map +1 -1
  178. package/lib/commonjs/reanimated/useReanimatedHeaderHeight.js +2 -2
  179. package/lib/commonjs/reanimated/useReanimatedHeaderHeight.js.map +1 -1
  180. package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js +2 -2
  181. package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js.map +1 -1
  182. package/lib/commonjs/types.js.map +1 -1
  183. package/lib/commonjs/useTransitionProgress.js +2 -2
  184. package/lib/commonjs/useTransitionProgress.js.map +1 -1
  185. package/lib/commonjs/utils.js +2 -4
  186. package/lib/commonjs/utils.js.map +1 -1
  187. package/lib/module/TransitionProgressContext.js.map +1 -1
  188. package/lib/module/components/FullWindowOverlay.js +21 -0
  189. package/lib/module/components/FullWindowOverlay.js.map +1 -0
  190. package/lib/module/components/FullWindowOverlay.web.js +3 -0
  191. package/lib/module/components/FullWindowOverlay.web.js.map +1 -0
  192. package/lib/module/components/Screen.js +156 -0
  193. package/lib/module/components/Screen.js.map +1 -0
  194. package/lib/module/components/Screen.web.js +38 -0
  195. package/lib/module/components/Screen.web.js.map +1 -0
  196. package/lib/module/components/ScreenContainer.js +26 -0
  197. package/lib/module/components/ScreenContainer.js.map +1 -0
  198. package/lib/module/components/ScreenContainer.web.js +5 -0
  199. package/lib/module/components/ScreenContainer.web.js.map +1 -0
  200. package/lib/module/components/ScreenStack.js +40 -0
  201. package/lib/module/components/ScreenStack.js.map +1 -0
  202. package/lib/module/components/ScreenStack.web.js +3 -0
  203. package/lib/module/components/ScreenStack.web.js.map +1 -0
  204. package/lib/module/components/ScreenStackHeaderConfig.js +43 -0
  205. package/lib/module/components/ScreenStackHeaderConfig.js.map +1 -0
  206. package/lib/module/components/ScreenStackHeaderConfig.web.js +14 -0
  207. package/lib/module/components/ScreenStackHeaderConfig.web.js.map +1 -0
  208. package/lib/module/components/SearchBar.js +52 -0
  209. package/lib/module/components/SearchBar.js.map +1 -0
  210. package/lib/module/components/SearchBar.web.js +5 -0
  211. package/lib/module/components/SearchBar.web.js.map +1 -0
  212. package/lib/module/components/helpers/DelayedFreeze.js +25 -0
  213. package/lib/module/components/helpers/DelayedFreeze.js.map +1 -0
  214. package/lib/module/core.js +31 -0
  215. package/lib/module/core.js.map +1 -0
  216. package/lib/module/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
  217. package/lib/module/fabric/ModalScreenNativeComponent.js +8 -0
  218. package/lib/module/fabric/ModalScreenNativeComponent.js.map +1 -0
  219. package/lib/module/fabric/NativeScreensModule.js +5 -0
  220. package/lib/module/fabric/NativeScreensModule.js.map +1 -0
  221. package/lib/module/fabric/NativeScreensModule.web.js +2 -0
  222. package/lib/module/fabric/NativeScreensModule.web.js.map +1 -0
  223. package/lib/module/fabric/ScreenContainerNativeComponent.js.map +1 -1
  224. package/lib/module/fabric/ScreenNativeComponent.js.map +1 -1
  225. package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
  226. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  227. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
  228. package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -1
  229. package/lib/module/fabric/SearchBarNativeComponent.js +1 -1
  230. package/lib/module/fabric/SearchBarNativeComponent.js.map +1 -1
  231. package/lib/module/gesture-handler/GestureDetectorProvider.js +12 -0
  232. package/lib/module/gesture-handler/GestureDetectorProvider.js.map +1 -0
  233. package/lib/module/gesture-handler/RNScreensTurboModule.js +2 -0
  234. package/lib/module/gesture-handler/RNScreensTurboModule.js.map +1 -0
  235. package/lib/module/gesture-handler/ScreenGestureDetector.js +194 -0
  236. package/lib/module/gesture-handler/ScreenGestureDetector.js.map +1 -0
  237. package/lib/module/gesture-handler/constraints.js +56 -0
  238. package/lib/module/gesture-handler/constraints.js.map +1 -0
  239. package/lib/module/gesture-handler/defaults.js +32 -0
  240. package/lib/module/gesture-handler/defaults.js.map +1 -0
  241. package/lib/module/gesture-handler/fabricUtils.js +23 -0
  242. package/lib/module/gesture-handler/fabricUtils.js.map +1 -0
  243. package/lib/module/gesture-handler/fabricUtils.web.js +10 -0
  244. package/lib/module/gesture-handler/fabricUtils.web.js.map +1 -0
  245. package/lib/module/gesture-handler/index.js +5 -0
  246. package/lib/module/gesture-handler/index.js.map +1 -0
  247. package/lib/module/index.js +31 -64
  248. package/lib/module/index.js.map +1 -1
  249. package/lib/module/native-stack/contexts/GHContext.js +4 -0
  250. package/lib/module/native-stack/contexts/GHContext.js.map +1 -0
  251. package/lib/module/native-stack/index.js.map +1 -1
  252. package/lib/module/native-stack/navigators/createNativeStackNavigator.js +17 -20
  253. package/lib/module/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
  254. package/lib/module/native-stack/types.js.map +1 -1
  255. package/lib/module/native-stack/utils/AnimatedHeaderHeightContext.js.map +1 -1
  256. package/lib/module/native-stack/utils/HeaderHeightContext.js.map +1 -1
  257. package/lib/module/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
  258. package/lib/module/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
  259. package/lib/module/native-stack/utils/getStatusBarHeight.js.map +1 -1
  260. package/lib/module/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -1
  261. package/lib/module/native-stack/utils/useBackPressSubscription.js +2 -4
  262. package/lib/module/native-stack/utils/useBackPressSubscription.js.map +1 -1
  263. package/lib/module/native-stack/utils/useHeaderHeight.js.map +1 -1
  264. package/lib/module/native-stack/views/FontProcessor.js +1 -2
  265. package/lib/module/native-stack/views/FontProcessor.js.map +1 -1
  266. package/lib/module/native-stack/views/HeaderConfig.js +8 -5
  267. package/lib/module/native-stack/views/HeaderConfig.js.map +1 -1
  268. package/lib/module/native-stack/views/NativeStackView.js +49 -14
  269. package/lib/module/native-stack/views/NativeStackView.js.map +1 -1
  270. package/lib/module/reanimated/ReanimatedHeaderHeightContext.js.map +1 -1
  271. package/lib/module/reanimated/ReanimatedNativeStackScreen.js +2 -4
  272. package/lib/module/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
  273. package/lib/module/reanimated/ReanimatedScreen.js.map +1 -1
  274. package/lib/module/reanimated/ReanimatedScreenProvider.js +6 -14
  275. package/lib/module/reanimated/ReanimatedScreenProvider.js.map +1 -1
  276. package/lib/module/reanimated/ReanimatedTransitionProgressContext.js.map +1 -1
  277. package/lib/module/reanimated/index.js.map +1 -1
  278. package/lib/module/reanimated/useReanimatedHeaderHeight.js.map +1 -1
  279. package/lib/module/reanimated/useReanimatedTransitionProgress.js.map +1 -1
  280. package/lib/module/types.js.map +1 -1
  281. package/lib/module/useTransitionProgress.js.map +1 -1
  282. package/lib/module/utils.js.map +1 -1
  283. package/lib/typescript/TransitionProgressContext.d.ts +1 -0
  284. package/lib/typescript/TransitionProgressContext.d.ts.map +1 -0
  285. package/lib/typescript/components/FullWindowOverlay.d.ts +6 -0
  286. package/lib/typescript/components/FullWindowOverlay.d.ts.map +1 -0
  287. package/lib/typescript/components/FullWindowOverlay.web.d.ts +6 -0
  288. package/lib/typescript/components/FullWindowOverlay.web.d.ts.map +1 -0
  289. package/lib/typescript/components/Screen.d.ts +20 -0
  290. package/lib/typescript/components/Screen.d.ts.map +1 -0
  291. package/lib/typescript/components/Screen.web.d.ts +11 -0
  292. package/lib/typescript/components/Screen.web.d.ts.map +1 -0
  293. package/lib/typescript/components/ScreenContainer.d.ts +7 -0
  294. package/lib/typescript/components/ScreenContainer.d.ts.map +1 -0
  295. package/lib/typescript/components/ScreenContainer.web.d.ts +5 -0
  296. package/lib/typescript/components/ScreenContainer.web.d.ts.map +1 -0
  297. package/lib/typescript/components/ScreenStack.d.ts +5 -0
  298. package/lib/typescript/components/ScreenStack.d.ts.map +1 -0
  299. package/lib/typescript/components/ScreenStack.web.d.ts +3 -0
  300. package/lib/typescript/components/ScreenStack.web.d.ts.map +1 -0
  301. package/lib/typescript/components/ScreenStackHeaderConfig.d.ts +13 -0
  302. package/lib/typescript/components/ScreenStackHeaderConfig.d.ts.map +1 -0
  303. package/lib/typescript/components/ScreenStackHeaderConfig.web.d.ts +13 -0
  304. package/lib/typescript/components/ScreenStackHeaderConfig.web.d.ts.map +1 -0
  305. package/lib/typescript/components/SearchBar.d.ts +26 -0
  306. package/lib/typescript/components/SearchBar.d.ts.map +1 -0
  307. package/lib/typescript/components/SearchBar.web.d.ts +5 -0
  308. package/lib/typescript/components/SearchBar.web.d.ts.map +1 -0
  309. package/lib/typescript/components/helpers/DelayedFreeze.d.ts +8 -0
  310. package/lib/typescript/components/helpers/DelayedFreeze.d.ts.map +1 -0
  311. package/lib/typescript/core.d.ts +7 -0
  312. package/lib/typescript/core.d.ts.map +1 -0
  313. package/lib/typescript/fabric/FullWindowOverlayNativeComponent.d.ts +1 -0
  314. package/lib/typescript/fabric/FullWindowOverlayNativeComponent.d.ts.map +1 -0
  315. package/lib/typescript/fabric/ModalScreenNativeComponent.d.ts +68 -0
  316. package/lib/typescript/fabric/ModalScreenNativeComponent.d.ts.map +1 -0
  317. package/lib/typescript/fabric/NativeScreensModule.d.ts +6 -0
  318. package/lib/typescript/fabric/NativeScreensModule.d.ts.map +1 -0
  319. package/lib/typescript/fabric/NativeScreensModule.web.d.ts +3 -0
  320. package/lib/typescript/fabric/NativeScreensModule.web.d.ts.map +1 -0
  321. package/lib/typescript/fabric/ScreenContainerNativeComponent.d.ts +1 -0
  322. package/lib/typescript/fabric/ScreenContainerNativeComponent.d.ts.map +1 -0
  323. package/lib/typescript/fabric/ScreenNativeComponent.d.ts +2 -1
  324. package/lib/typescript/fabric/ScreenNativeComponent.d.ts.map +1 -0
  325. package/lib/typescript/fabric/ScreenNavigationContainerNativeComponent.d.ts +1 -0
  326. package/lib/typescript/fabric/ScreenNavigationContainerNativeComponent.d.ts.map +1 -0
  327. package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts +1 -0
  328. package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts.map +1 -0
  329. package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts +1 -0
  330. package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts.map +1 -0
  331. package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts +1 -0
  332. package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts.map +1 -0
  333. package/lib/typescript/fabric/SearchBarNativeComponent.d.ts +3 -1
  334. package/lib/typescript/fabric/SearchBarNativeComponent.d.ts.map +1 -0
  335. package/lib/typescript/gesture-handler/GestureDetectorProvider.d.ts +5 -0
  336. package/lib/typescript/gesture-handler/GestureDetectorProvider.d.ts.map +1 -0
  337. package/lib/typescript/gesture-handler/RNScreensTurboModule.d.ts +13 -0
  338. package/lib/typescript/gesture-handler/RNScreensTurboModule.d.ts.map +1 -0
  339. package/lib/typescript/gesture-handler/ScreenGestureDetector.d.ts +5 -0
  340. package/lib/typescript/gesture-handler/ScreenGestureDetector.d.ts.map +1 -0
  341. package/lib/typescript/gesture-handler/constraints.d.ts +6 -0
  342. package/lib/typescript/gesture-handler/constraints.d.ts.map +1 -0
  343. package/lib/typescript/gesture-handler/defaults.d.ts +20 -0
  344. package/lib/typescript/gesture-handler/defaults.d.ts.map +1 -0
  345. package/lib/typescript/gesture-handler/fabricUtils.d.ts +8 -0
  346. package/lib/typescript/gesture-handler/fabricUtils.d.ts.map +1 -0
  347. package/lib/typescript/gesture-handler/fabricUtils.web.d.ts +6 -0
  348. package/lib/typescript/gesture-handler/fabricUtils.web.d.ts.map +1 -0
  349. package/lib/typescript/gesture-handler/index.d.ts +2 -0
  350. package/lib/typescript/gesture-handler/index.d.ts.map +1 -0
  351. package/lib/typescript/index.d.ts +11 -31
  352. package/lib/typescript/index.d.ts.map +1 -0
  353. package/lib/typescript/native-stack/contexts/GHContext.d.ts +4 -0
  354. package/lib/typescript/native-stack/contexts/GHContext.d.ts.map +1 -0
  355. package/lib/typescript/native-stack/index.d.ts +1 -0
  356. package/lib/typescript/native-stack/index.d.ts.map +1 -0
  357. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts +1 -0
  358. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts.map +1 -0
  359. package/lib/typescript/native-stack/types.d.ts +39 -2
  360. package/lib/typescript/native-stack/types.d.ts.map +1 -0
  361. package/lib/typescript/native-stack/utils/AnimatedHeaderHeightContext.d.ts +1 -0
  362. package/lib/typescript/native-stack/utils/AnimatedHeaderHeightContext.d.ts.map +1 -0
  363. package/lib/typescript/native-stack/utils/HeaderHeightContext.d.ts +1 -0
  364. package/lib/typescript/native-stack/utils/HeaderHeightContext.d.ts.map +1 -0
  365. package/lib/typescript/native-stack/utils/SafeAreaProviderCompat.d.ts +1 -0
  366. package/lib/typescript/native-stack/utils/SafeAreaProviderCompat.d.ts.map +1 -0
  367. package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts +1 -0
  368. package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts.map +1 -0
  369. package/lib/typescript/native-stack/utils/getStatusBarHeight.d.ts +1 -0
  370. package/lib/typescript/native-stack/utils/getStatusBarHeight.d.ts.map +1 -0
  371. package/lib/typescript/native-stack/utils/useAnimatedHeaderHeight.d.ts +1 -0
  372. package/lib/typescript/native-stack/utils/useAnimatedHeaderHeight.d.ts.map +1 -0
  373. package/lib/typescript/native-stack/utils/useBackPressSubscription.d.ts +1 -0
  374. package/lib/typescript/native-stack/utils/useBackPressSubscription.d.ts.map +1 -0
  375. package/lib/typescript/native-stack/utils/useHeaderHeight.d.ts +1 -0
  376. package/lib/typescript/native-stack/utils/useHeaderHeight.d.ts.map +1 -0
  377. package/lib/typescript/native-stack/views/FontProcessor.d.ts +1 -0
  378. package/lib/typescript/native-stack/views/FontProcessor.d.ts.map +1 -0
  379. package/lib/typescript/native-stack/views/HeaderConfig.d.ts +1 -0
  380. package/lib/typescript/native-stack/views/HeaderConfig.d.ts.map +1 -0
  381. package/lib/typescript/native-stack/views/NativeStackView.d.ts +1 -0
  382. package/lib/typescript/native-stack/views/NativeStackView.d.ts.map +1 -0
  383. package/lib/typescript/reanimated/ReanimatedHeaderHeightContext.d.ts +1 -0
  384. package/lib/typescript/reanimated/ReanimatedHeaderHeightContext.d.ts.map +1 -0
  385. package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts +2 -2
  386. package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts.map +1 -0
  387. package/lib/typescript/reanimated/ReanimatedScreen.d.ts +2 -2
  388. package/lib/typescript/reanimated/ReanimatedScreen.d.ts.map +1 -0
  389. package/lib/typescript/reanimated/ReanimatedScreenProvider.d.ts +1 -0
  390. package/lib/typescript/reanimated/ReanimatedScreenProvider.d.ts.map +1 -0
  391. package/lib/typescript/reanimated/ReanimatedTransitionProgressContext.d.ts +1 -0
  392. package/lib/typescript/reanimated/ReanimatedTransitionProgressContext.d.ts.map +1 -0
  393. package/lib/typescript/reanimated/index.d.ts +1 -0
  394. package/lib/typescript/reanimated/index.d.ts.map +1 -0
  395. package/lib/typescript/reanimated/useReanimatedHeaderHeight.d.ts +2 -3
  396. package/lib/typescript/reanimated/useReanimatedHeaderHeight.d.ts.map +1 -0
  397. package/lib/typescript/reanimated/useReanimatedTransitionProgress.d.ts +4 -9
  398. package/lib/typescript/reanimated/useReanimatedTransitionProgress.d.ts.map +1 -0
  399. package/lib/typescript/types.d.ts +11 -2
  400. package/lib/typescript/types.d.ts.map +1 -0
  401. package/lib/typescript/useTransitionProgress.d.ts +1 -0
  402. package/lib/typescript/useTransitionProgress.d.ts.map +1 -0
  403. package/lib/typescript/utils.d.ts +1 -0
  404. package/lib/typescript/utils.d.ts.map +1 -0
  405. package/native-stack/README.md +2 -1
  406. package/native-stack/package.json +1 -1
  407. package/package.json +18 -11
  408. package/react-native.config.js +2 -1
  409. package/reanimated/package.json +1 -1
  410. package/src/components/FullWindowOverlay.tsx +25 -0
  411. package/src/components/FullWindowOverlay.web.tsx +6 -0
  412. package/src/components/Screen.tsx +218 -0
  413. package/src/components/Screen.web.tsx +43 -0
  414. package/src/components/ScreenContainer.tsx +33 -0
  415. package/src/components/ScreenContainer.web.tsx +6 -0
  416. package/src/components/ScreenStack.tsx +41 -0
  417. package/src/components/ScreenStack.web.tsx +3 -0
  418. package/src/components/ScreenStackHeaderConfig.tsx +76 -0
  419. package/src/components/ScreenStackHeaderConfig.web.tsx +39 -0
  420. package/src/components/SearchBar.tsx +91 -0
  421. package/src/components/SearchBar.web.tsx +6 -0
  422. package/src/components/helpers/DelayedFreeze.tsx +27 -0
  423. package/src/core.ts +43 -0
  424. package/src/fabric/ModalScreenNativeComponent.ts +104 -0
  425. package/src/fabric/NativeScreensModule.ts +7 -0
  426. package/src/fabric/NativeScreensModule.web.ts +1 -0
  427. package/src/fabric/ScreenNativeComponent.ts +1 -1
  428. package/src/fabric/SearchBarNativeComponent.ts +2 -0
  429. package/src/gesture-handler/GestureDetectorProvider.tsx +16 -0
  430. package/src/gesture-handler/RNScreensTurboModule.ts +13 -0
  431. package/src/gesture-handler/ScreenGestureDetector.tsx +241 -0
  432. package/src/gesture-handler/constraints.ts +87 -0
  433. package/src/gesture-handler/defaults.ts +38 -0
  434. package/src/gesture-handler/fabricUtils.ts +39 -0
  435. package/src/gesture-handler/fabricUtils.web.ts +10 -0
  436. package/src/gesture-handler/index.tsx +4 -0
  437. package/src/index.tsx +65 -112
  438. package/src/native-stack/contexts/GHContext.tsx +7 -0
  439. package/src/native-stack/types.tsx +62 -1
  440. package/src/native-stack/views/HeaderConfig.tsx +11 -0
  441. package/src/native-stack/views/NativeStackView.tsx +65 -13
  442. package/src/types.tsx +13 -1
  443. package/lib/commonjs/index.native.js +0 -418
  444. package/lib/commonjs/index.native.js.map +0 -1
  445. package/lib/module/index.native.js +0 -415
  446. package/lib/module/index.native.js.map +0 -1
  447. package/lib/typescript/index.native.d.ts +0 -2
  448. package/src/index.native.tsx +0 -619
@@ -1,418 +0,0 @@
1
- "use strict";
2
-
3
- var _react = _interopRequireWildcard(require("react"));
4
- var _reactNative = require("react-native");
5
- var _reactFreeze = require("react-freeze");
6
- var _package = require("react-native/package.json");
7
- var _TransitionProgressContext = _interopRequireDefault(require("./TransitionProgressContext"));
8
- var _useTransitionProgress = _interopRequireDefault(require("./useTransitionProgress"));
9
- var _utils = require("./utils");
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
- 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); }
14
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
16
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /* eslint-disable @typescript-eslint/no-var-requires */
17
- // web implementation is taken from `index.tsx`
18
- const isPlatformSupported = _reactNative.Platform.OS === 'ios' || _reactNative.Platform.OS === 'android' || _reactNative.Platform.OS === 'windows';
19
- let ENABLE_SCREENS = isPlatformSupported;
20
- function enableScreens() {
21
- let shouldEnableScreens = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
22
- ENABLE_SCREENS = isPlatformSupported && shouldEnableScreens;
23
- if (ENABLE_SCREENS && !_reactNative.UIManager.getViewManagerConfig('RNSScreen')) {
24
- console.error(`Screen native module hasn't been linked. Please check the react-native-screens README for more details`);
25
- }
26
- }
27
- let ENABLE_FREEZE = false;
28
- function enableFreeze() {
29
- let shouldEnableReactFreeze = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
30
- const minor = parseInt(_package.version.split('.')[1]); // eg. takes 66 from '0.66.0'
31
-
32
- // react-freeze requires react-native >=0.64, react-native from main is 0.0.0
33
- if (!(minor === 0 || minor >= 64) && shouldEnableReactFreeze) {
34
- console.warn('react-freeze library requires at least react-native 0.64. Please upgrade your react-native version in order to use this feature.');
35
- }
36
- ENABLE_FREEZE = shouldEnableReactFreeze;
37
- }
38
-
39
- // const that tells if the library should use new implementation, will be undefined for older versions
40
- const shouldUseActivityState = true;
41
- function screensEnabled() {
42
- return ENABLE_SCREENS;
43
- }
44
- // We initialize these lazily so that importing the module doesn't throw error when not linked
45
- // This is necessary coz libraries such as React Navigation import the library where it may not be enabled
46
- let NativeScreenValue;
47
- let NativeScreenContainerValue;
48
- let NativeScreenNavigationContainerValue;
49
- let NativeScreenStack;
50
- let NativeScreenStackHeaderConfig;
51
- let NativeScreenStackHeaderSubview;
52
- let AnimatedNativeScreen;
53
- let NativeSearchBar;
54
- let NativeSearchBarCommands;
55
- let NativeFullWindowOverlay;
56
- const ScreensNativeModules = {
57
- get NativeScreen() {
58
- NativeScreenValue = NativeScreenValue || require('./fabric/ScreenNativeComponent').default;
59
- return NativeScreenValue;
60
- },
61
- get NativeScreenContainer() {
62
- NativeScreenContainerValue = NativeScreenContainerValue || require('./fabric/ScreenContainerNativeComponent').default;
63
- return NativeScreenContainerValue;
64
- },
65
- get NativeScreenNavigationContainer() {
66
- NativeScreenNavigationContainerValue = NativeScreenNavigationContainerValue || (_reactNative.Platform.OS === 'ios' ? require('./fabric/ScreenNavigationContainerNativeComponent').default : this.NativeScreenContainer);
67
- return NativeScreenNavigationContainerValue;
68
- },
69
- get NativeScreenStack() {
70
- NativeScreenStack = NativeScreenStack || require('./fabric/ScreenStackNativeComponent').default;
71
- return NativeScreenStack;
72
- },
73
- get NativeScreenStackHeaderConfig() {
74
- NativeScreenStackHeaderConfig = NativeScreenStackHeaderConfig || require('./fabric/ScreenStackHeaderConfigNativeComponent').default;
75
- return NativeScreenStackHeaderConfig;
76
- },
77
- get NativeScreenStackHeaderSubview() {
78
- NativeScreenStackHeaderSubview = NativeScreenStackHeaderSubview || require('./fabric/ScreenStackHeaderSubviewNativeComponent').default;
79
- return NativeScreenStackHeaderSubview;
80
- },
81
- get NativeSearchBar() {
82
- NativeSearchBar = NativeSearchBar || require('./fabric/SearchBarNativeComponent').default;
83
- return NativeSearchBar;
84
- },
85
- get NativeSearchBarCommands() {
86
- NativeSearchBarCommands = NativeSearchBarCommands || require('./fabric/SearchBarNativeComponent').Commands;
87
- return NativeSearchBarCommands;
88
- },
89
- get NativeFullWindowOverlay() {
90
- NativeFullWindowOverlay = NativeFullWindowOverlay || require('./fabric/FullWindowOverlayNativeComponent').default;
91
- return NativeFullWindowOverlay;
92
- }
93
- };
94
- // This component allows one more render before freezing the screen.
95
- // Allows activityState to reach the native side and useIsFocused to work correctly.
96
- function DelayedFreeze(_ref) {
97
- let {
98
- freeze,
99
- children
100
- } = _ref;
101
- // flag used for determining whether freeze should be enabled
102
- const [freezeState, setFreezeState] = _react.default.useState(false);
103
- (0, _react.useEffect)(() => {
104
- const id = setImmediate(() => {
105
- setFreezeState(freeze);
106
- });
107
- return () => {
108
- clearImmediate(id);
109
- };
110
- }, [freeze]);
111
- return /*#__PURE__*/_react.default.createElement(_reactFreeze.Freeze, {
112
- freeze: freeze ? freezeState : false
113
- }, children);
114
- }
115
- function ScreenStack(props) {
116
- const {
117
- children,
118
- ...rest
119
- } = props;
120
- const size = _react.default.Children.count(children);
121
- // freezes all screens except the top one
122
- const childrenWithFreeze = _react.default.Children.map(children, (child, index) => {
123
- var _props$descriptor, _props$descriptors, _descriptor$options$f, _descriptor$options;
124
- // @ts-expect-error it's either SceneView in v6 or RouteView in v5
125
- const {
126
- props,
127
- key
128
- } = child;
129
- const descriptor = (_props$descriptor = props === null || props === void 0 ? void 0 : props.descriptor) !== null && _props$descriptor !== void 0 ? _props$descriptor : props === null || props === void 0 || (_props$descriptors = props.descriptors) === null || _props$descriptors === void 0 ? void 0 : _props$descriptors[key];
130
- const freezeEnabled = (_descriptor$options$f = descriptor === null || descriptor === void 0 || (_descriptor$options = descriptor.options) === null || _descriptor$options === void 0 ? void 0 : _descriptor$options.freezeOnBlur) !== null && _descriptor$options$f !== void 0 ? _descriptor$options$f : ENABLE_FREEZE;
131
- return /*#__PURE__*/_react.default.createElement(DelayedFreeze, {
132
- freeze: freezeEnabled && size - index > 1
133
- }, child);
134
- });
135
- return /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStack, rest, childrenWithFreeze);
136
- }
137
-
138
- // Incomplete type, all accessible properties available at:
139
- // react-native/Libraries/Components/View/ReactNativeViewViewConfig.js
140
- class InnerScreen extends _react.default.Component {
141
- constructor() {
142
- super(...arguments);
143
- _defineProperty(this, "ref", null);
144
- _defineProperty(this, "closing", new _reactNative.Animated.Value(0));
145
- _defineProperty(this, "progress", new _reactNative.Animated.Value(0));
146
- _defineProperty(this, "goingForward", new _reactNative.Animated.Value(0));
147
- _defineProperty(this, "setRef", ref => {
148
- var _this$props$onCompone, _this$props;
149
- this.ref = ref;
150
- (_this$props$onCompone = (_this$props = this.props).onComponentRef) === null || _this$props$onCompone === void 0 || _this$props$onCompone.call(_this$props, ref);
151
- });
152
- }
153
- setNativeProps(props) {
154
- var _this$ref;
155
- (_this$ref = this.ref) === null || _this$ref === void 0 || _this$ref.setNativeProps(props);
156
- }
157
- render() {
158
- const {
159
- enabled = ENABLE_SCREENS,
160
- freezeOnBlur = ENABLE_FREEZE,
161
- ...rest
162
- } = this.props;
163
-
164
- // To maintain default behaviour of formSheet stack presentation style & and to have resonable
165
- // defaults for new medium-detent iOS API we need to set defaults here
166
- const {
167
- sheetAllowedDetents = 'large',
168
- sheetLargestUndimmedDetent = 'all',
169
- sheetGrabberVisible = false,
170
- sheetCornerRadius = -1.0,
171
- sheetExpandsWhenScrolledToEdge = true
172
- } = rest;
173
- if (enabled && isPlatformSupported) {
174
- var _gestureResponseDista, _gestureResponseDista2, _gestureResponseDista3, _gestureResponseDista4;
175
- AnimatedNativeScreen = AnimatedNativeScreen || _reactNative.Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);
176
- let {
177
- // Filter out active prop in this case because it is unused and
178
- // can cause problems depending on react-native version:
179
- // https://github.com/react-navigation/react-navigation/issues/4886
180
- active,
181
- activityState,
182
- children,
183
- isNativeStack,
184
- gestureResponseDistance,
185
- onGestureCancel,
186
- ...props
187
- } = rest;
188
- if (active !== undefined && activityState === undefined) {
189
- console.warn('It appears that you are using old version of react-navigation library. Please update @react-navigation/bottom-tabs, @react-navigation/stack and @react-navigation/drawer to version 5.10.0 or above to take full advantage of new functionality added to react-native-screens');
190
- activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition
191
- }
192
-
193
- const handleRef = ref => {
194
- var _ref$viewConfig;
195
- if (ref !== null && ref !== void 0 && (_ref$viewConfig = ref.viewConfig) !== null && _ref$viewConfig !== void 0 && (_ref$viewConfig = _ref$viewConfig.validAttributes) !== null && _ref$viewConfig !== void 0 && _ref$viewConfig.style) {
196
- ref.viewConfig.validAttributes.style = {
197
- ...ref.viewConfig.validAttributes.style,
198
- display: false
199
- };
200
- this.setRef(ref);
201
- }
202
- };
203
- return /*#__PURE__*/_react.default.createElement(DelayedFreeze, {
204
- freeze: freezeOnBlur && activityState === 0
205
- }, /*#__PURE__*/_react.default.createElement(AnimatedNativeScreen, _extends({}, props, {
206
- activityState: activityState,
207
- sheetAllowedDetents: sheetAllowedDetents,
208
- sheetLargestUndimmedDetent: sheetLargestUndimmedDetent,
209
- sheetGrabberVisible: sheetGrabberVisible,
210
- sheetCornerRadius: sheetCornerRadius,
211
- sheetExpandsWhenScrolledToEdge: sheetExpandsWhenScrolledToEdge,
212
- gestureResponseDistance: {
213
- start: (_gestureResponseDista = gestureResponseDistance === null || gestureResponseDistance === void 0 ? void 0 : gestureResponseDistance.start) !== null && _gestureResponseDista !== void 0 ? _gestureResponseDista : -1,
214
- end: (_gestureResponseDista2 = gestureResponseDistance === null || gestureResponseDistance === void 0 ? void 0 : gestureResponseDistance.end) !== null && _gestureResponseDista2 !== void 0 ? _gestureResponseDista2 : -1,
215
- top: (_gestureResponseDista3 = gestureResponseDistance === null || gestureResponseDistance === void 0 ? void 0 : gestureResponseDistance.top) !== null && _gestureResponseDista3 !== void 0 ? _gestureResponseDista3 : -1,
216
- bottom: (_gestureResponseDista4 = gestureResponseDistance === null || gestureResponseDistance === void 0 ? void 0 : gestureResponseDistance.bottom) !== null && _gestureResponseDista4 !== void 0 ? _gestureResponseDista4 : -1
217
- }
218
- // This prevents showing blank screen when navigating between multiple screens with freezing
219
- // https://github.com/software-mansion/react-native-screens/pull/1208
220
- ,
221
- ref: handleRef,
222
- onTransitionProgress: !isNativeStack ? undefined : _reactNative.Animated.event([{
223
- nativeEvent: {
224
- progress: this.progress,
225
- closing: this.closing,
226
- goingForward: this.goingForward
227
- }
228
- }], {
229
- useNativeDriver: true
230
- }),
231
- onGestureCancel: onGestureCancel !== null && onGestureCancel !== void 0 ? onGestureCancel : () => {
232
- // for internal use
233
- }
234
- }), !isNativeStack ?
235
- // see comment of this prop in types.tsx for information why it is needed
236
- children : /*#__PURE__*/_react.default.createElement(_TransitionProgressContext.default.Provider, {
237
- value: {
238
- progress: this.progress,
239
- closing: this.closing,
240
- goingForward: this.goingForward
241
- }
242
- }, children)));
243
- } else {
244
- // same reason as above
245
- let {
246
- active,
247
- activityState,
248
- style,
249
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
250
- onComponentRef,
251
- ...props
252
- } = rest;
253
- if (active !== undefined && activityState === undefined) {
254
- activityState = active !== 0 ? 2 : 0;
255
- }
256
- return /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, _extends({
257
- style: [style, {
258
- display: activityState !== 0 ? 'flex' : 'none'
259
- }],
260
- ref: this.setRef
261
- }, props));
262
- }
263
- }
264
- }
265
- function ScreenContainer(props) {
266
- const {
267
- enabled = ENABLE_SCREENS,
268
- hasTwoStates,
269
- ...rest
270
- } = props;
271
- if (enabled && isPlatformSupported) {
272
- if (hasTwoStates) {
273
- return /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenNavigationContainer, rest);
274
- }
275
- return /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenContainer, rest);
276
- }
277
- return /*#__PURE__*/_react.default.createElement(_reactNative.View, rest);
278
- }
279
- function FullWindowOverlay(props) {
280
- if (_reactNative.Platform.OS !== 'ios') {
281
- console.warn('Importing FullWindowOverlay is only valid on iOS devices.');
282
- return /*#__PURE__*/_react.default.createElement(_reactNative.View, props);
283
- }
284
- return /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeFullWindowOverlay, {
285
- style: {
286
- position: 'absolute',
287
- width: '100%',
288
- height: '100%'
289
- }
290
- }, props.children);
291
- }
292
- const styles = _reactNative.StyleSheet.create({
293
- headerSubview: {
294
- position: 'absolute',
295
- top: 0,
296
- right: 0,
297
- flexDirection: 'row',
298
- alignItems: 'center',
299
- justifyContent: 'center'
300
- }
301
- });
302
- const ScreenStackHeaderBackButtonImage = props => /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, {
303
- type: "back",
304
- style: styles.headerSubview
305
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Image, _extends({
306
- resizeMode: "center",
307
- fadeDuration: 0
308
- }, props)));
309
- class SearchBar extends _react.default.Component {
310
- constructor(props) {
311
- super(props);
312
- _defineProperty(this, "nativeSearchBarRef", void 0);
313
- this.nativeSearchBarRef = /*#__PURE__*/_react.default.createRef();
314
- }
315
- _callMethodWithRef(method) {
316
- const ref = this.nativeSearchBarRef.current;
317
- if (ref) {
318
- method(ref);
319
- } else {
320
- console.warn('Reference to native search bar component has not been updated yet');
321
- }
322
- }
323
- blur() {
324
- this._callMethodWithRef(ref => ScreensNativeModules.NativeSearchBarCommands.blur(ref));
325
- }
326
- focus() {
327
- this._callMethodWithRef(ref => ScreensNativeModules.NativeSearchBarCommands.focus(ref));
328
- }
329
- toggleCancelButton(flag) {
330
- this._callMethodWithRef(ref => ScreensNativeModules.NativeSearchBarCommands.toggleCancelButton(ref, flag));
331
- }
332
- clearText() {
333
- this._callMethodWithRef(ref => ScreensNativeModules.NativeSearchBarCommands.clearText(ref));
334
- }
335
- setText(text) {
336
- this._callMethodWithRef(ref => ScreensNativeModules.NativeSearchBarCommands.setText(ref, text));
337
- }
338
- render() {
339
- if (!_utils.isSearchBarAvailableForCurrentPlatform) {
340
- console.warn('Importing SearchBar is only valid on iOS and Android devices.');
341
- return _reactNative.View;
342
- }
343
- return /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeSearchBar, _extends({}, this.props, {
344
- ref: this.nativeSearchBarRef
345
- }));
346
- }
347
- }
348
- const ScreenStackHeaderRightView = props => /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
349
- type: "right",
350
- style: styles.headerSubview
351
- }));
352
- const ScreenStackHeaderLeftView = props => /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
353
- type: "left",
354
- style: styles.headerSubview
355
- }));
356
- const ScreenStackHeaderCenterView = props => /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
357
- type: "center",
358
- style: styles.headerSubview
359
- }));
360
- const ScreenStackHeaderSearchBarView = props => /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
361
- type: "searchBar",
362
- style: styles.headerSubview
363
- }));
364
- // context to be used when the user wants to use enhanced implementation
365
- // e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)
366
- const ScreenContext = /*#__PURE__*/_react.default.createContext(InnerScreen);
367
- class Screen extends _react.default.Component {
368
- render() {
369
- const ScreenWrapper = this.context || InnerScreen;
370
- return /*#__PURE__*/_react.default.createElement(ScreenWrapper, this.props);
371
- }
372
- }
373
- _defineProperty(Screen, "contextType", ScreenContext);
374
- module.exports = {
375
- // these are classes so they are not evaluated until used
376
- // so no need to use getters for them
377
- Screen,
378
- ScreenContainer,
379
- ScreenContext,
380
- ScreenStack,
381
- InnerScreen,
382
- SearchBar,
383
- FullWindowOverlay,
384
- get NativeScreen() {
385
- return ScreensNativeModules.NativeScreen;
386
- },
387
- get NativeScreenContainer() {
388
- return ScreensNativeModules.NativeScreenContainer;
389
- },
390
- get NativeScreenNavigationContainer() {
391
- return ScreensNativeModules.NativeScreenNavigationContainer;
392
- },
393
- get ScreenStackHeaderConfig() {
394
- return ScreensNativeModules.NativeScreenStackHeaderConfig;
395
- },
396
- get ScreenStackHeaderSubview() {
397
- return ScreensNativeModules.NativeScreenStackHeaderSubview;
398
- },
399
- get SearchBarCommands() {
400
- return ScreensNativeModules.NativeSearchBarCommands;
401
- },
402
- // these are functions and will not be evaluated until used
403
- // so no need to use getters for them
404
- ScreenStackHeaderBackButtonImage,
405
- ScreenStackHeaderRightView,
406
- ScreenStackHeaderLeftView,
407
- ScreenStackHeaderCenterView,
408
- ScreenStackHeaderSearchBarView,
409
- enableScreens,
410
- enableFreeze,
411
- screensEnabled,
412
- shouldUseActivityState,
413
- useTransitionProgress: _useTransitionProgress.default,
414
- isSearchBarAvailableForCurrentPlatform: _utils.isSearchBarAvailableForCurrentPlatform,
415
- isNewBackTitleImplementation: _utils.isNewBackTitleImplementation,
416
- executeNativeBackPress: _utils.executeNativeBackPress
417
- };
418
- //# sourceMappingURL=index.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactFreeze","_package","_TransitionProgressContext","_interopRequireDefault","_useTransitionProgress","_utils","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_defineProperty","value","_toPropertyKey","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","isPlatformSupported","Platform","OS","ENABLE_SCREENS","enableScreens","shouldEnableScreens","UIManager","getViewManagerConfig","console","error","ENABLE_FREEZE","enableFreeze","shouldEnableReactFreeze","minor","parseInt","version","split","warn","shouldUseActivityState","screensEnabled","NativeScreenValue","NativeScreenContainerValue","NativeScreenNavigationContainerValue","NativeScreenStack","NativeScreenStackHeaderConfig","NativeScreenStackHeaderSubview","AnimatedNativeScreen","NativeSearchBar","NativeSearchBarCommands","NativeFullWindowOverlay","ScreensNativeModules","NativeScreen","NativeScreenContainer","NativeScreenNavigationContainer","Commands","DelayedFreeze","_ref","freeze","children","freezeState","setFreezeState","React","useState","useEffect","id","setImmediate","clearImmediate","createElement","Freeze","ScreenStack","props","rest","size","Children","count","childrenWithFreeze","map","child","index","_props$descriptor","_props$descriptors","_descriptor$options$f","_descriptor$options","descriptor","descriptors","freezeEnabled","options","freezeOnBlur","InnerScreen","Component","constructor","Animated","Value","ref","_this$props$onCompone","_this$props","onComponentRef","setNativeProps","_this$ref","render","enabled","sheetAllowedDetents","sheetLargestUndimmedDetent","sheetGrabberVisible","sheetCornerRadius","sheetExpandsWhenScrolledToEdge","_gestureResponseDista","_gestureResponseDista2","_gestureResponseDista3","_gestureResponseDista4","createAnimatedComponent","active","activityState","isNativeStack","gestureResponseDistance","onGestureCancel","handleRef","_ref$viewConfig","viewConfig","validAttributes","style","display","setRef","start","end","top","bottom","onTransitionProgress","event","nativeEvent","progress","closing","goingForward","useNativeDriver","Provider","View","ScreenContainer","hasTwoStates","FullWindowOverlay","position","width","height","styles","StyleSheet","create","headerSubview","right","flexDirection","alignItems","justifyContent","ScreenStackHeaderBackButtonImage","type","Image","resizeMode","fadeDuration","SearchBar","nativeSearchBarRef","createRef","_callMethodWithRef","method","current","blur","focus","toggleCancelButton","flag","clearText","setText","text","isSearchBarAvailableForCurrentPlatform","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenContext","createContext","Screen","ScreenWrapper","context","module","exports","ScreenStackHeaderConfig","ScreenStackHeaderSubview","SearchBarCommands","useTransitionProgress","isNewBackTitleImplementation","executeNativeBackPress"],"sources":["index.native.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport React, { useEffect, PropsWithChildren, ReactNode } from 'react';\nimport {\n Animated,\n Image,\n ImageProps,\n Platform,\n StyleProp,\n StyleSheet,\n UIManager,\n View,\n ViewProps,\n ViewStyle,\n} from 'react-native';\nimport { Freeze } from 'react-freeze';\nimport { version } from 'react-native/package.json';\n\nimport TransitionProgressContext from './TransitionProgressContext';\nimport useTransitionProgress from './useTransitionProgress';\nimport {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n SearchBarCommands,\n} from './types';\nimport {\n isSearchBarAvailableForCurrentPlatform,\n isNewBackTitleImplementation,\n executeNativeBackPress,\n} from './utils';\n\n// web implementation is taken from `index.tsx`\nconst isPlatformSupported =\n Platform.OS === 'ios' ||\n Platform.OS === 'android' ||\n Platform.OS === 'windows';\n\nlet ENABLE_SCREENS = isPlatformSupported;\n\nfunction enableScreens(shouldEnableScreens = true): void {\n ENABLE_SCREENS = isPlatformSupported && shouldEnableScreens;\n if (ENABLE_SCREENS && !UIManager.getViewManagerConfig('RNSScreen')) {\n console.error(\n `Screen native module hasn't been linked. Please check the react-native-screens README for more details`\n );\n }\n}\n\nlet ENABLE_FREEZE = false;\n\nfunction enableFreeze(shouldEnableReactFreeze = true): void {\n const minor = parseInt(version.split('.')[1]); // eg. takes 66 from '0.66.0'\n\n // react-freeze requires react-native >=0.64, react-native from main is 0.0.0\n if (!(minor === 0 || minor >= 64) && shouldEnableReactFreeze) {\n console.warn(\n 'react-freeze library requires at least react-native 0.64. Please upgrade your react-native version in order to use this feature.'\n );\n }\n\n ENABLE_FREEZE = shouldEnableReactFreeze;\n}\n\n// const that tells if the library should use new implementation, will be undefined for older versions\nconst shouldUseActivityState = true;\n\nfunction screensEnabled(): boolean {\n return ENABLE_SCREENS;\n}\n\ntype SearchBarCommandsType = {\n blur: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>\n ) => void;\n focus: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>\n ) => void;\n clearText: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>\n ) => void;\n toggleCancelButton: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>,\n flag: boolean\n ) => void;\n setText: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>,\n text: string\n ) => void;\n};\n\n// We initialize these lazily so that importing the module doesn't throw error when not linked\n// This is necessary coz libraries such as React Navigation import the library where it may not be enabled\nlet NativeScreenValue: React.ComponentType<ScreenProps>;\nlet NativeScreenContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenNavigationContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenStack: React.ComponentType<ScreenStackProps>;\nlet NativeScreenStackHeaderConfig: React.ComponentType<ScreenStackHeaderConfigProps>;\nlet NativeScreenStackHeaderSubview: React.ComponentType<\n React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>\n>;\nlet AnimatedNativeScreen: React.ComponentType<ScreenProps>;\n\nlet NativeSearchBar: React.ComponentType<SearchBarProps> &\n typeof NativeSearchBarCommands;\nlet NativeSearchBarCommands: SearchBarCommandsType;\n\nlet NativeFullWindowOverlay: React.ComponentType<\n PropsWithChildren<{\n style: StyleProp<ViewStyle>;\n }>\n>;\n\nconst ScreensNativeModules = {\n get NativeScreen() {\n NativeScreenValue =\n NativeScreenValue || require('./fabric/ScreenNativeComponent').default;\n return NativeScreenValue;\n },\n\n get NativeScreenContainer() {\n NativeScreenContainerValue =\n NativeScreenContainerValue ||\n require('./fabric/ScreenContainerNativeComponent').default;\n return NativeScreenContainerValue;\n },\n\n get NativeScreenNavigationContainer() {\n NativeScreenNavigationContainerValue =\n NativeScreenNavigationContainerValue ||\n (Platform.OS === 'ios'\n ? require('./fabric/ScreenNavigationContainerNativeComponent').default\n : this.NativeScreenContainer);\n return NativeScreenNavigationContainerValue;\n },\n\n get NativeScreenStack() {\n NativeScreenStack =\n NativeScreenStack ||\n require('./fabric/ScreenStackNativeComponent').default;\n return NativeScreenStack;\n },\n\n get NativeScreenStackHeaderConfig() {\n NativeScreenStackHeaderConfig =\n NativeScreenStackHeaderConfig ||\n require('./fabric/ScreenStackHeaderConfigNativeComponent').default;\n return NativeScreenStackHeaderConfig;\n },\n\n get NativeScreenStackHeaderSubview() {\n NativeScreenStackHeaderSubview =\n NativeScreenStackHeaderSubview ||\n require('./fabric/ScreenStackHeaderSubviewNativeComponent').default;\n return NativeScreenStackHeaderSubview;\n },\n\n get NativeSearchBar() {\n NativeSearchBar =\n NativeSearchBar || require('./fabric/SearchBarNativeComponent').default;\n return NativeSearchBar;\n },\n\n get NativeSearchBarCommands() {\n NativeSearchBarCommands =\n NativeSearchBarCommands ||\n require('./fabric/SearchBarNativeComponent').Commands;\n return NativeSearchBarCommands;\n },\n\n get NativeFullWindowOverlay() {\n NativeFullWindowOverlay =\n NativeFullWindowOverlay ||\n require('./fabric/FullWindowOverlayNativeComponent').default;\n return NativeFullWindowOverlay;\n },\n};\n\ninterface FreezeWrapperProps {\n freeze: boolean;\n children: React.ReactNode;\n}\n\n// This component allows one more render before freezing the screen.\n// Allows activityState to reach the native side and useIsFocused to work correctly.\nfunction DelayedFreeze({ freeze, children }: FreezeWrapperProps) {\n // flag used for determining whether freeze should be enabled\n const [freezeState, setFreezeState] = React.useState(false);\n\n useEffect(() => {\n const id = setImmediate(() => {\n setFreezeState(freeze);\n });\n return () => {\n clearImmediate(id);\n }\n }, [freeze])\n\n return <Freeze freeze={freeze ? freezeState : false}>{children}</Freeze>;\n}\n\nfunction ScreenStack(props: ScreenStackProps) {\n const { children, ...rest } = props;\n const size = React.Children.count(children);\n // freezes all screens except the top one\n const childrenWithFreeze = React.Children.map(children, (child, index) => {\n // @ts-expect-error it's either SceneView in v6 or RouteView in v5\n const { props, key } = child;\n const descriptor = props?.descriptor ?? props?.descriptors?.[key];\n const freezeEnabled = descriptor?.options?.freezeOnBlur ?? ENABLE_FREEZE;\n\n return (\n <DelayedFreeze freeze={freezeEnabled && size - index > 1}>\n {child}\n </DelayedFreeze>\n );\n });\n\n return (\n <ScreensNativeModules.NativeScreenStack {...rest}>\n {childrenWithFreeze}\n </ScreensNativeModules.NativeScreenStack>\n );\n}\n\n// Incomplete type, all accessible properties available at:\n// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js\ninterface ViewConfig extends View {\n viewConfig: {\n validAttributes: {\n style: {\n display: boolean;\n };\n };\n };\n}\n\nclass InnerScreen extends React.Component<ScreenProps> {\n private ref: React.ElementRef<typeof View> | null = null;\n private closing = new Animated.Value(0);\n private progress = new Animated.Value(0);\n private goingForward = new Animated.Value(0);\n\n setNativeProps(props: ScreenProps): void {\n this.ref?.setNativeProps(props);\n }\n\n setRef = (ref: React.ElementRef<typeof View> | null): void => {\n this.ref = ref;\n this.props.onComponentRef?.(ref);\n };\n\n render() {\n const {\n enabled = ENABLE_SCREENS,\n freezeOnBlur = ENABLE_FREEZE,\n ...rest\n } = this.props;\n\n // To maintain default behaviour of formSheet stack presentation style & and to have resonable\n // defaults for new medium-detent iOS API we need to set defaults here\n const {\n sheetAllowedDetents = 'large',\n sheetLargestUndimmedDetent = 'all',\n sheetGrabberVisible = false,\n sheetCornerRadius = -1.0,\n sheetExpandsWhenScrolledToEdge = true,\n } = rest;\n\n if (enabled && isPlatformSupported) {\n AnimatedNativeScreen =\n AnimatedNativeScreen ||\n Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);\n\n let {\n // Filter out active prop in this case because it is unused and\n // can cause problems depending on react-native version:\n // https://github.com/react-navigation/react-navigation/issues/4886\n active,\n activityState,\n children,\n isNativeStack,\n gestureResponseDistance,\n onGestureCancel,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n console.warn(\n 'It appears that you are using old version of react-navigation library. Please update @react-navigation/bottom-tabs, @react-navigation/stack and @react-navigation/drawer to version 5.10.0 or above to take full advantage of new functionality added to react-native-screens'\n );\n activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition\n }\n\n const handleRef = (ref: ViewConfig) => {\n if (ref?.viewConfig?.validAttributes?.style) {\n ref.viewConfig.validAttributes.style = {\n ...ref.viewConfig.validAttributes.style,\n display: false,\n };\n this.setRef(ref);\n }\n };\n\n return (\n <DelayedFreeze freeze={freezeOnBlur && activityState === 0}>\n <AnimatedNativeScreen\n {...props}\n activityState={activityState}\n sheetAllowedDetents={sheetAllowedDetents}\n sheetLargestUndimmedDetent={sheetLargestUndimmedDetent}\n sheetGrabberVisible={sheetGrabberVisible}\n sheetCornerRadius={sheetCornerRadius}\n sheetExpandsWhenScrolledToEdge={sheetExpandsWhenScrolledToEdge}\n gestureResponseDistance={{\n start: gestureResponseDistance?.start ?? -1,\n end: gestureResponseDistance?.end ?? -1,\n top: gestureResponseDistance?.top ?? -1,\n bottom: gestureResponseDistance?.bottom ?? -1,\n }}\n // This prevents showing blank screen when navigating between multiple screens with freezing\n // https://github.com/software-mansion/react-native-screens/pull/1208\n ref={handleRef}\n onTransitionProgress={\n !isNativeStack\n ? undefined\n : Animated.event(\n [\n {\n nativeEvent: {\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n },\n },\n ],\n { useNativeDriver: true }\n )\n }\n onGestureCancel={\n onGestureCancel ??\n (() => {\n // for internal use\n })\n }>\n {!isNativeStack ? ( // see comment of this prop in types.tsx for information why it is needed\n children\n ) : (\n <TransitionProgressContext.Provider\n value={{\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n }}>\n {children}\n </TransitionProgressContext.Provider>\n )}\n </AnimatedNativeScreen>\n </DelayedFreeze>\n );\n } else {\n // same reason as above\n let {\n active,\n activityState,\n style,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onComponentRef,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n activityState = active !== 0 ? 2 : 0;\n }\n return (\n <Animated.View\n style={[style, { display: activityState !== 0 ? 'flex' : 'none' }]}\n ref={this.setRef}\n {...props}\n />\n );\n }\n }\n}\n\nfunction ScreenContainer(props: ScreenContainerProps) {\n const { enabled = ENABLE_SCREENS, hasTwoStates, ...rest } = props;\n\n if (enabled && isPlatformSupported) {\n if (hasTwoStates) {\n return <ScreensNativeModules.NativeScreenNavigationContainer {...rest} />;\n }\n return <ScreensNativeModules.NativeScreenContainer {...rest} />;\n }\n return <View {...rest} />;\n}\n\nfunction FullWindowOverlay(props: { children: ReactNode }) {\n if (Platform.OS !== 'ios') {\n console.warn('Importing FullWindowOverlay is only valid on iOS devices.');\n return <View {...props} />;\n }\n return (\n <ScreensNativeModules.NativeFullWindowOverlay\n style={{ position: 'absolute', width: '100%', height: '100%' }}>\n {props.children}\n </ScreensNativeModules.NativeFullWindowOverlay>\n );\n}\n\nconst styles = StyleSheet.create({\n headerSubview: {\n position: 'absolute',\n top: 0,\n right: 0,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nconst ScreenStackHeaderBackButtonImage = (props: ImageProps): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n type=\"back\"\n style={styles.headerSubview}>\n <Image resizeMode=\"center\" fadeDuration={0} {...props} />\n </ScreensNativeModules.NativeScreenStackHeaderSubview>\n);\n\nclass SearchBar extends React.Component<SearchBarProps> {\n nativeSearchBarRef: React.RefObject<SearchBarCommands>;\n\n constructor(props: SearchBarProps) {\n super(props);\n this.nativeSearchBarRef = React.createRef();\n }\n\n _callMethodWithRef(method: (ref: SearchBarCommands) => void) {\n const ref = this.nativeSearchBarRef.current;\n if (ref) {\n method(ref);\n } else {\n console.warn(\n 'Reference to native search bar component has not been updated yet'\n );\n }\n }\n\n blur() {\n this._callMethodWithRef(ref =>\n ScreensNativeModules.NativeSearchBarCommands.blur(ref)\n );\n }\n\n focus() {\n this._callMethodWithRef(ref =>\n ScreensNativeModules.NativeSearchBarCommands.focus(ref)\n );\n }\n\n toggleCancelButton(flag: boolean) {\n this._callMethodWithRef(ref =>\n ScreensNativeModules.NativeSearchBarCommands.toggleCancelButton(ref, flag)\n );\n }\n\n clearText() {\n this._callMethodWithRef(ref =>\n ScreensNativeModules.NativeSearchBarCommands.clearText(ref)\n );\n }\n\n setText(text: string) {\n this._callMethodWithRef(ref =>\n ScreensNativeModules.NativeSearchBarCommands.setText(ref, text)\n );\n }\n\n render() {\n if (!isSearchBarAvailableForCurrentPlatform) {\n console.warn(\n 'Importing SearchBar is only valid on iOS and Android devices.'\n );\n return View as any as ReactNode;\n }\n\n return (\n <ScreensNativeModules.NativeSearchBar\n {...this.props}\n ref={this.nativeSearchBarRef}\n />\n );\n }\n}\n\nconst ScreenStackHeaderRightView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"right\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderLeftView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"left\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderCenterView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"center\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderSearchBarView = (\n props: React.PropsWithChildren<SearchBarProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"searchBar\"\n style={styles.headerSubview}\n />\n);\n\nexport type {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n};\n\n// context to be used when the user wants to use enhanced implementation\n// e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)\nconst ScreenContext = React.createContext(InnerScreen);\n\nclass Screen extends React.Component<ScreenProps> {\n static contextType = ScreenContext;\n\n render() {\n const ScreenWrapper = (this.context || InnerScreen) as React.ElementType;\n return <ScreenWrapper {...this.props} />;\n }\n}\n\nmodule.exports = {\n // these are classes so they are not evaluated until used\n // so no need to use getters for them\n Screen,\n ScreenContainer,\n ScreenContext,\n ScreenStack,\n InnerScreen,\n SearchBar,\n FullWindowOverlay,\n\n get NativeScreen() {\n return ScreensNativeModules.NativeScreen;\n },\n\n get NativeScreenContainer() {\n return ScreensNativeModules.NativeScreenContainer;\n },\n\n get NativeScreenNavigationContainer() {\n return ScreensNativeModules.NativeScreenNavigationContainer;\n },\n\n get ScreenStackHeaderConfig() {\n return ScreensNativeModules.NativeScreenStackHeaderConfig;\n },\n get ScreenStackHeaderSubview() {\n return ScreensNativeModules.NativeScreenStackHeaderSubview;\n },\n get SearchBarCommands() {\n return ScreensNativeModules.NativeSearchBarCommands;\n },\n // these are functions and will not be evaluated until used\n // so no need to use getters for them\n ScreenStackHeaderBackButtonImage,\n ScreenStackHeaderRightView,\n ScreenStackHeaderLeftView,\n ScreenStackHeaderCenterView,\n ScreenStackHeaderSearchBarView,\n\n enableScreens,\n enableFreeze,\n screensEnabled,\n shouldUseActivityState,\n useTransitionProgress,\n\n isSearchBarAvailableForCurrentPlatform,\n isNewBackTitleImplementation,\n executeNativeBackPress,\n};\n"],"mappings":"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"}