react-native-screens 3.29.0 → 3.30.1

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 +81 -15
  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 +17 -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
@@ -0,0 +1,76 @@
1
+ import React from 'react';
2
+ import {
3
+ HeaderSubviewTypes,
4
+ ScreenStackHeaderConfigProps,
5
+ SearchBarProps,
6
+ } from 'react-native-screens';
7
+ import { Image, ImageProps, StyleSheet, ViewProps } from 'react-native';
8
+
9
+ // Native components
10
+ import ScreenStackHeaderConfigNativeComponent from '../fabric/ScreenStackHeaderConfigNativeComponent';
11
+ import ScreenStackHeaderSubviewNativeComponent from '../fabric/ScreenStackHeaderSubviewNativeComponent';
12
+
13
+ export const ScreenStackHeaderConfig: React.ComponentType<ScreenStackHeaderConfigProps> =
14
+ ScreenStackHeaderConfigNativeComponent as any;
15
+ export const ScreenStackHeaderSubview: React.ComponentType<
16
+ React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>
17
+ > = ScreenStackHeaderSubviewNativeComponent as any;
18
+
19
+ export const ScreenStackHeaderBackButtonImage = (
20
+ props: ImageProps
21
+ ): JSX.Element => (
22
+ <ScreenStackHeaderSubview type="back" style={styles.headerSubview}>
23
+ <Image resizeMode="center" fadeDuration={0} {...props} />
24
+ </ScreenStackHeaderSubview>
25
+ );
26
+
27
+ export const ScreenStackHeaderRightView = (
28
+ props: React.PropsWithChildren<ViewProps>
29
+ ): JSX.Element => (
30
+ <ScreenStackHeaderSubview
31
+ {...props}
32
+ type="right"
33
+ style={styles.headerSubview}
34
+ />
35
+ );
36
+
37
+ export const ScreenStackHeaderLeftView = (
38
+ props: React.PropsWithChildren<ViewProps>
39
+ ): JSX.Element => (
40
+ <ScreenStackHeaderSubview
41
+ {...props}
42
+ type="left"
43
+ style={styles.headerSubview}
44
+ />
45
+ );
46
+
47
+ export const ScreenStackHeaderCenterView = (
48
+ props: React.PropsWithChildren<ViewProps>
49
+ ): JSX.Element => (
50
+ <ScreenStackHeaderSubview
51
+ {...props}
52
+ type="center"
53
+ style={styles.headerSubview}
54
+ />
55
+ );
56
+
57
+ export const ScreenStackHeaderSearchBarView = (
58
+ props: React.PropsWithChildren<SearchBarProps>
59
+ ): JSX.Element => (
60
+ <ScreenStackHeaderSubview
61
+ {...props}
62
+ type="searchBar"
63
+ style={styles.headerSubview}
64
+ />
65
+ );
66
+
67
+ const styles = StyleSheet.create({
68
+ headerSubview: {
69
+ position: 'absolute',
70
+ top: 0,
71
+ right: 0,
72
+ flexDirection: 'row',
73
+ alignItems: 'center',
74
+ justifyContent: 'center',
75
+ },
76
+ });
@@ -0,0 +1,39 @@
1
+ import { Image, ImageProps, View, ViewProps } from 'react-native';
2
+ import React from 'react';
3
+ import {
4
+ HeaderSubviewTypes,
5
+ ScreenStackHeaderConfigProps,
6
+ SearchBarProps,
7
+ } from 'react-native-screens';
8
+
9
+ export const ScreenStackHeaderBackButtonImage = (
10
+ props: ImageProps
11
+ ): JSX.Element => (
12
+ <View>
13
+ <Image resizeMode="center" fadeDuration={0} {...props} />
14
+ </View>
15
+ );
16
+
17
+ export const ScreenStackHeaderRightView = (
18
+ props: React.PropsWithChildren<ViewProps>
19
+ ): JSX.Element => <View {...props} />;
20
+
21
+ export const ScreenStackHeaderLeftView = (
22
+ props: React.PropsWithChildren<ViewProps>
23
+ ): JSX.Element => <View {...props} />;
24
+
25
+ export const ScreenStackHeaderCenterView = (
26
+ props: React.PropsWithChildren<ViewProps>
27
+ ): JSX.Element => <View {...props} />;
28
+
29
+ export const ScreenStackHeaderSearchBarView = (
30
+ props: React.PropsWithChildren<Omit<SearchBarProps, 'ref'>>
31
+ ): JSX.Element => <View {...props} />;
32
+
33
+ export const ScreenStackHeaderConfig = (
34
+ props: React.PropsWithChildren<ScreenStackHeaderConfigProps>
35
+ ): JSX.Element => <View {...props} />;
36
+
37
+ export const ScreenStackHeaderSubview: React.ComponentType<
38
+ React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>
39
+ > = View;
@@ -0,0 +1,91 @@
1
+ import React, { ReactNode } from 'react';
2
+ import {
3
+ isSearchBarAvailableForCurrentPlatform,
4
+ SearchBarCommands,
5
+ SearchBarProps,
6
+ } from 'react-native-screens';
7
+ import { View } from 'react-native';
8
+
9
+ // Native components
10
+ import SearchBarNativeComponent, {
11
+ Commands as SearchBarNativeCommands,
12
+ } from '../fabric/SearchBarNativeComponent';
13
+
14
+ export const NativeSearchBar: React.ComponentType<SearchBarProps> &
15
+ typeof NativeSearchBarCommands = SearchBarNativeComponent as any;
16
+ export const NativeSearchBarCommands: SearchBarCommandsType =
17
+ SearchBarNativeCommands as any;
18
+
19
+ type SearchBarCommandsType = {
20
+ blur: (viewRef: React.ElementRef<typeof NativeSearchBar>) => void;
21
+ focus: (viewRef: React.ElementRef<typeof NativeSearchBar>) => void;
22
+ clearText: (viewRef: React.ElementRef<typeof NativeSearchBar>) => void;
23
+ toggleCancelButton: (
24
+ viewRef: React.ElementRef<typeof NativeSearchBar>,
25
+ flag: boolean
26
+ ) => void;
27
+ setText: (
28
+ viewRef: React.ElementRef<typeof NativeSearchBar>,
29
+ text: string
30
+ ) => void;
31
+ cancelSearch: (viewRef: React.ElementRef<typeof NativeSearchBar>) => void;
32
+ };
33
+
34
+ class SearchBar extends React.Component<SearchBarProps> {
35
+ nativeSearchBarRef: React.RefObject<SearchBarCommands>;
36
+
37
+ constructor(props: SearchBarProps) {
38
+ super(props);
39
+ this.nativeSearchBarRef = React.createRef();
40
+ }
41
+
42
+ _callMethodWithRef(method: (ref: SearchBarCommands) => void) {
43
+ const ref = this.nativeSearchBarRef.current;
44
+ if (ref) {
45
+ method(ref);
46
+ } else {
47
+ console.warn(
48
+ 'Reference to native search bar component has not been updated yet'
49
+ );
50
+ }
51
+ }
52
+
53
+ blur() {
54
+ this._callMethodWithRef(ref => NativeSearchBarCommands.blur(ref));
55
+ }
56
+
57
+ focus() {
58
+ this._callMethodWithRef(ref => NativeSearchBarCommands.focus(ref));
59
+ }
60
+
61
+ toggleCancelButton(flag: boolean) {
62
+ this._callMethodWithRef(ref =>
63
+ NativeSearchBarCommands.toggleCancelButton(ref, flag)
64
+ );
65
+ }
66
+
67
+ clearText() {
68
+ this._callMethodWithRef(ref => NativeSearchBarCommands.clearText(ref));
69
+ }
70
+
71
+ setText(text: string) {
72
+ this._callMethodWithRef(ref => NativeSearchBarCommands.setText(ref, text));
73
+ }
74
+
75
+ cancelSearch() {
76
+ this._callMethodWithRef(ref => NativeSearchBarCommands.cancelSearch(ref));
77
+ }
78
+
79
+ render() {
80
+ if (!isSearchBarAvailableForCurrentPlatform) {
81
+ console.warn(
82
+ 'Importing SearchBar is only valid on iOS and Android devices.'
83
+ );
84
+ return View as any as ReactNode;
85
+ }
86
+
87
+ return <NativeSearchBar {...this.props} ref={this.nativeSearchBarRef} />;
88
+ }
89
+ }
90
+
91
+ export default SearchBar;
@@ -0,0 +1,6 @@
1
+ import { View } from 'react-native';
2
+
3
+ export const NativeSearchBar = View;
4
+ export const NativeSearchBarCommands = View;
5
+
6
+ export default View;
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import { Freeze } from 'react-freeze';
3
+
4
+ interface FreezeWrapperProps {
5
+ freeze: boolean;
6
+ children: React.ReactNode;
7
+ }
8
+
9
+ // This component allows one more render before freezing the screen.
10
+ // Allows activityState to reach the native side and useIsFocused to work correctly.
11
+ function DelayedFreeze({ freeze, children }: FreezeWrapperProps) {
12
+ // flag used for determining whether freeze should be enabled
13
+ const [freezeState, setFreezeState] = React.useState(false);
14
+
15
+ React.useEffect(() => {
16
+ const id = setImmediate(() => {
17
+ setFreezeState(freeze);
18
+ });
19
+ return () => {
20
+ clearImmediate(id);
21
+ };
22
+ }, [freeze]);
23
+
24
+ return <Freeze freeze={freeze ? freezeState : false}>{children}</Freeze>;
25
+ }
26
+
27
+ export default DelayedFreeze;
package/src/core.ts ADDED
@@ -0,0 +1,43 @@
1
+ import { Platform, UIManager } from 'react-native';
2
+
3
+ // const that tells if the library should use new implementation, will be undefined for older versions
4
+ export const shouldUseActivityState = true;
5
+
6
+ export const isNativePlatformSupported =
7
+ Platform.OS === 'ios' ||
8
+ Platform.OS === 'android' ||
9
+ Platform.OS === 'windows';
10
+
11
+ let ENABLE_SCREENS = isNativePlatformSupported;
12
+
13
+ export function enableScreens(shouldEnableScreens = true) {
14
+ ENABLE_SCREENS = shouldEnableScreens;
15
+
16
+ if (!isNativePlatformSupported) {
17
+ return;
18
+ }
19
+
20
+ if (ENABLE_SCREENS && !UIManager.getViewManagerConfig('RNSScreen')) {
21
+ console.error(
22
+ `Screen native module hasn't been linked. Please check the react-native-screens README for more details`
23
+ );
24
+ }
25
+ }
26
+
27
+ let ENABLE_FREEZE = false;
28
+
29
+ export function enableFreeze(shouldEnableReactFreeze = true) {
30
+ if (!isNativePlatformSupported) {
31
+ return;
32
+ }
33
+
34
+ ENABLE_FREEZE = shouldEnableReactFreeze;
35
+ }
36
+
37
+ export function screensEnabled() {
38
+ return ENABLE_SCREENS;
39
+ }
40
+
41
+ export function freezeEnabled() {
42
+ return ENABLE_FREEZE;
43
+ }
@@ -0,0 +1,104 @@
1
+ import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
2
+ import type { ViewProps, ColorValue } from 'react-native';
3
+ import type {
4
+ BubblingEventHandler,
5
+ WithDefault,
6
+ Int32,
7
+ Float,
8
+ Double,
9
+ } from 'react-native/Libraries/Types/CodegenTypes';
10
+
11
+ // eslint-disable-next-line @typescript-eslint/ban-types
12
+ type ScreenEvent = Readonly<{}>;
13
+
14
+ type ScreenDismissedEvent = Readonly<{
15
+ dismissCount: Int32;
16
+ }>;
17
+
18
+ type TransitionProgressEvent = Readonly<{
19
+ progress: Double;
20
+ closing: Int32;
21
+ goingForward: Int32;
22
+ }>;
23
+
24
+ type HeaderHeightChangeEvent = Readonly<{
25
+ headerHeight: Double;
26
+ }>;
27
+
28
+ type GestureResponseDistanceType = Readonly<{
29
+ start: Float;
30
+ end: Float;
31
+ top: Float;
32
+ bottom: Float;
33
+ }>;
34
+
35
+ type StackPresentation =
36
+ | 'push'
37
+ | 'modal'
38
+ | 'transparentModal'
39
+ | 'fullScreenModal'
40
+ | 'formSheet'
41
+ | 'containedModal'
42
+ | 'containedTransparentModal';
43
+
44
+ type StackAnimation =
45
+ | 'default'
46
+ | 'flip'
47
+ | 'simple_push'
48
+ | 'none'
49
+ | 'fade'
50
+ | 'slide_from_right'
51
+ | 'slide_from_left'
52
+ | 'slide_from_bottom'
53
+ | 'fade_from_bottom'
54
+ | 'ios';
55
+
56
+ type SwipeDirection = 'vertical' | 'horizontal';
57
+
58
+ type ReplaceAnimation = 'pop' | 'push';
59
+
60
+ type SheetDetentTypes = 'large' | 'medium' | 'all';
61
+
62
+ export interface NativeProps extends ViewProps {
63
+ onAppear?: BubblingEventHandler<ScreenEvent>;
64
+ onDisappear?: BubblingEventHandler<ScreenEvent>;
65
+ onDismissed?: BubblingEventHandler<ScreenDismissedEvent>;
66
+ onNativeDismissCancelled?: BubblingEventHandler<ScreenDismissedEvent>;
67
+ onWillAppear?: BubblingEventHandler<ScreenEvent>;
68
+ onWillDisappear?: BubblingEventHandler<ScreenEvent>;
69
+ onHeaderHeightChange?: BubblingEventHandler<HeaderHeightChangeEvent>;
70
+ onTransitionProgress?: BubblingEventHandler<TransitionProgressEvent>;
71
+ onGestureCancel?: BubblingEventHandler<ScreenEvent>;
72
+ onHeaderBackButtonClicked?: BubblingEventHandler<ScreenEvent>;
73
+ sheetAllowedDetents?: WithDefault<SheetDetentTypes, 'large'>;
74
+ sheetLargestUndimmedDetent?: WithDefault<SheetDetentTypes, 'all'>;
75
+ sheetGrabberVisible?: WithDefault<boolean, false>;
76
+ sheetCornerRadius?: WithDefault<Float, -1.0>;
77
+ sheetExpandsWhenScrolledToEdge?: WithDefault<boolean, false>;
78
+ customAnimationOnSwipe?: boolean;
79
+ fullScreenSwipeEnabled?: boolean;
80
+ homeIndicatorHidden?: boolean;
81
+ preventNativeDismiss?: boolean;
82
+ gestureEnabled?: WithDefault<boolean, true>;
83
+ statusBarColor?: ColorValue;
84
+ statusBarHidden?: boolean;
85
+ screenOrientation?: string;
86
+ statusBarAnimation?: string;
87
+ statusBarStyle?: string;
88
+ statusBarTranslucent?: boolean;
89
+ gestureResponseDistance?: GestureResponseDistanceType;
90
+ stackPresentation?: WithDefault<StackPresentation, 'push'>;
91
+ stackAnimation?: WithDefault<StackAnimation, 'default'>;
92
+ transitionDuration?: WithDefault<Int32, 350>;
93
+ replaceAnimation?: WithDefault<ReplaceAnimation, 'pop'>;
94
+ swipeDirection?: WithDefault<SwipeDirection, 'horizontal'>;
95
+ hideKeyboardOnSwipe?: boolean;
96
+ activityState?: WithDefault<Float, -1.0>;
97
+ navigationBarColor?: ColorValue;
98
+ navigationBarHidden?: boolean;
99
+ nativeBackButtonDismissalEnabled?: boolean;
100
+ }
101
+
102
+ export default codegenNativeComponent<NativeProps>('RNSModalScreen', {
103
+ interfaceOnly: true,
104
+ });
@@ -0,0 +1,7 @@
1
+ /* eslint-disable @typescript-eslint/ban-types */
2
+ import type { TurboModule } from 'react-native';
3
+ import { TurboModuleRegistry } from 'react-native';
4
+
5
+ export interface Spec extends TurboModule {}
6
+
7
+ export default TurboModuleRegistry.get<Spec>('RNSModule');
@@ -0,0 +1 @@
1
+ export default {};
@@ -69,6 +69,7 @@ export interface NativeProps extends ViewProps {
69
69
  onHeaderHeightChange?: BubblingEventHandler<HeaderHeightChangeEvent>;
70
70
  onTransitionProgress?: BubblingEventHandler<TransitionProgressEvent>;
71
71
  onGestureCancel?: BubblingEventHandler<ScreenEvent>;
72
+ onHeaderBackButtonClicked?: BubblingEventHandler<ScreenEvent>;
72
73
  sheetAllowedDetents?: WithDefault<SheetDetentTypes, 'large'>;
73
74
  sheetLargestUndimmedDetent?: WithDefault<SheetDetentTypes, 'all'>;
74
75
  sheetGrabberVisible?: WithDefault<boolean, false>;
@@ -96,7 +97,6 @@ export interface NativeProps extends ViewProps {
96
97
  navigationBarColor?: ColorValue;
97
98
  navigationBarHidden?: boolean;
98
99
  nativeBackButtonDismissalEnabled?: boolean;
99
- onHeaderBackButtonClicked?: BubblingEventHandler<ScreenEvent>;
100
100
  }
101
101
 
102
102
  export default codegenNativeComponent<NativeProps>('RNSScreen', {
@@ -61,6 +61,7 @@ interface NativeCommands {
61
61
  flag: boolean
62
62
  ) => void;
63
63
  setText: (viewRef: React.ElementRef<ComponentType>, text: string) => void;
64
+ cancelSearch: (viewRef: React.ElementRef<ComponentType>) => void;
64
65
  }
65
66
 
66
67
  export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
@@ -70,6 +71,7 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
70
71
  'clearText',
71
72
  'toggleCancelButton',
72
73
  'setText',
74
+ 'cancelSearch',
73
75
  ],
74
76
  });
75
77
 
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import { GHContext } from 'react-native-screens';
3
+ import ScreenGestureDetector from './ScreenGestureDetector';
4
+ import type { GestureProviderProps } from '../native-stack/types';
5
+
6
+ function GHWrapper(props: GestureProviderProps) {
7
+ return <ScreenGestureDetector {...props} />;
8
+ }
9
+
10
+ export default function GestureDetectorProvider(props: {
11
+ children: React.ReactNode;
12
+ }) {
13
+ return (
14
+ <GHContext.Provider value={GHWrapper}>{props.children}</GHContext.Provider>
15
+ );
16
+ }
@@ -0,0 +1,13 @@
1
+ type RNScreensTurboModuleType = {
2
+ startTransition: (stackTag: number) => {
3
+ topScreenTag: number;
4
+ belowTopScreenTag: number;
5
+ canStartTransition: boolean;
6
+ };
7
+ updateTransition: (stackTag: number, progress: number) => void;
8
+ finishTransition: (stackTag: number, isCanceled: boolean) => void;
9
+ disableSwipeBackForTopScreen: (stackTag: number) => void;
10
+ };
11
+
12
+ export const RNScreensTurboModule: RNScreensTurboModuleType = (global as any)
13
+ .RNScreensTurboModule;