react-native-screen-transitions 3.0.0-rc.2 → 3.0.0-rc.4

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 (241) hide show
  1. package/README.md +421 -371
  2. package/lib/commonjs/blank-stack/components/{Overlay.js → overlay.js} +7 -5
  3. package/lib/commonjs/blank-stack/components/overlay.js.map +1 -0
  4. package/lib/commonjs/blank-stack/components/{Screens.js → screens.js} +20 -17
  5. package/lib/commonjs/blank-stack/components/screens.js.map +1 -0
  6. package/lib/commonjs/blank-stack/components/stack-view.js +101 -0
  7. package/lib/commonjs/blank-stack/components/stack-view.js.map +1 -0
  8. package/lib/commonjs/blank-stack/index.js +1 -8
  9. package/lib/commonjs/blank-stack/index.js.map +1 -1
  10. package/lib/commonjs/blank-stack/navigators/{createBlankStackNavigator.js → create-blank-stack-navigator.js} +3 -3
  11. package/lib/commonjs/blank-stack/navigators/create-blank-stack-navigator.js.map +1 -0
  12. package/lib/commonjs/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js +1 -11
  13. package/lib/commonjs/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js.map +1 -1
  14. package/lib/commonjs/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.js +1 -12
  15. package/lib/commonjs/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.js.map +1 -1
  16. package/lib/commonjs/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.js.map +1 -1
  17. package/lib/commonjs/blank-stack/utils/with-stack-navigation/index.js +49 -55
  18. package/lib/commonjs/blank-stack/utils/with-stack-navigation/index.js.map +1 -1
  19. package/lib/commonjs/blank-stack/utils/with-stack-navigation/{_types.js → types.js} +1 -1
  20. package/lib/commonjs/blank-stack/utils/with-stack-navigation/types.js.map +1 -0
  21. package/lib/commonjs/native-stack/views/NativeStackView.native.js +110 -103
  22. package/lib/commonjs/native-stack/views/NativeStackView.native.js.map +1 -1
  23. package/lib/commonjs/shared/components/controllers/blank-stack-lifecycle.js +72 -0
  24. package/lib/commonjs/shared/components/controllers/blank-stack-lifecycle.js.map +1 -0
  25. package/lib/commonjs/shared/components/controllers/native-stack-lifecycle.js +79 -0
  26. package/lib/commonjs/shared/components/controllers/native-stack-lifecycle.js.map +1 -0
  27. package/lib/commonjs/shared/hooks/animation/use-screen-animation.js +49 -23
  28. package/lib/commonjs/shared/hooks/animation/use-screen-animation.js.map +1 -1
  29. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js +11 -6
  30. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  31. package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js +7 -7
  32. package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
  33. package/lib/commonjs/shared/providers/flags.provider.js +25 -0
  34. package/lib/commonjs/shared/providers/flags.provider.js.map +1 -0
  35. package/lib/commonjs/shared/providers/gestures.provider.js +32 -5
  36. package/lib/commonjs/shared/providers/gestures.provider.js.map +1 -1
  37. package/lib/commonjs/shared/providers/register-bounds.provider.js +72 -45
  38. package/lib/commonjs/shared/providers/register-bounds.provider.js.map +1 -1
  39. package/lib/commonjs/shared/providers/routes.provider.js +48 -0
  40. package/lib/commonjs/shared/providers/routes.provider.js.map +1 -0
  41. package/lib/commonjs/shared/providers/screen-transition.provider.js.map +1 -1
  42. package/lib/commonjs/shared/stores/bounds.store.js +91 -47
  43. package/lib/commonjs/shared/stores/bounds.store.js.map +1 -1
  44. package/lib/commonjs/shared/types/state.types.js +9 -0
  45. package/lib/commonjs/shared/types/state.types.js.map +1 -0
  46. package/lib/commonjs/shared/utils/animation/compute-stack-progress.js +20 -0
  47. package/lib/commonjs/shared/utils/animation/compute-stack-progress.js.map +1 -0
  48. package/lib/commonjs/shared/utils/animation/derivations.js +1 -1
  49. package/lib/commonjs/shared/utils/animation/start-screen-transition.js +11 -11
  50. package/lib/commonjs/shared/utils/animation/start-screen-transition.js.map +1 -1
  51. package/lib/commonjs/shared/utils/bounds/helpers/is-bounds-equal.js +1 -1
  52. package/lib/commonjs/shared/utils/bounds/helpers/is-bounds-equal.js.map +1 -1
  53. package/lib/commonjs/shared/utils/bounds/index.js +4 -5
  54. package/lib/commonjs/shared/utils/bounds/index.js.map +1 -1
  55. package/lib/commonjs/shared/utils/create-provider.js +20 -1
  56. package/lib/commonjs/shared/utils/create-provider.js.map +1 -1
  57. package/lib/commonjs/shared/utils/reset-stores-for-screen.js +2 -0
  58. package/lib/commonjs/shared/utils/reset-stores-for-screen.js.map +1 -1
  59. package/lib/module/blank-stack/components/{Overlay.js → overlay.js} +7 -5
  60. package/lib/module/blank-stack/components/overlay.js.map +1 -0
  61. package/lib/module/blank-stack/components/screens.js +61 -0
  62. package/lib/module/blank-stack/components/screens.js.map +1 -0
  63. package/lib/module/blank-stack/components/stack-view.js +96 -0
  64. package/lib/module/blank-stack/components/stack-view.js.map +1 -0
  65. package/lib/module/blank-stack/index.js +1 -2
  66. package/lib/module/blank-stack/index.js.map +1 -1
  67. package/lib/module/blank-stack/navigators/{createBlankStackNavigator.js → create-blank-stack-navigator.js} +2 -2
  68. package/lib/module/blank-stack/navigators/create-blank-stack-navigator.js.map +1 -0
  69. package/lib/module/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js +1 -11
  70. package/lib/module/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js.map +1 -1
  71. package/lib/module/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.js +1 -12
  72. package/lib/module/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.js.map +1 -1
  73. package/lib/module/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.js.map +1 -1
  74. package/lib/module/blank-stack/utils/with-stack-navigation/index.js +48 -54
  75. package/lib/module/blank-stack/utils/with-stack-navigation/index.js.map +1 -1
  76. package/lib/module/blank-stack/utils/with-stack-navigation/types.js +4 -0
  77. package/lib/module/blank-stack/utils/with-stack-navigation/types.js.map +1 -0
  78. package/lib/module/native-stack/views/NativeStackView.native.js +109 -102
  79. package/lib/module/native-stack/views/NativeStackView.native.js.map +1 -1
  80. package/lib/module/shared/components/controllers/blank-stack-lifecycle.js +66 -0
  81. package/lib/module/shared/components/controllers/blank-stack-lifecycle.js.map +1 -0
  82. package/lib/module/shared/components/controllers/native-stack-lifecycle.js +73 -0
  83. package/lib/module/shared/components/controllers/native-stack-lifecycle.js.map +1 -0
  84. package/lib/module/shared/hooks/animation/use-screen-animation.js +49 -23
  85. package/lib/module/shared/hooks/animation/use-screen-animation.js.map +1 -1
  86. package/lib/module/shared/hooks/gestures/use-build-gestures.js +11 -6
  87. package/lib/module/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  88. package/lib/module/shared/hooks/gestures/use-scroll-registry.js +7 -7
  89. package/lib/module/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
  90. package/lib/module/shared/providers/flags.provider.js +19 -0
  91. package/lib/module/shared/providers/flags.provider.js.map +1 -0
  92. package/lib/module/shared/providers/gestures.provider.js +31 -4
  93. package/lib/module/shared/providers/gestures.provider.js.map +1 -1
  94. package/lib/module/shared/providers/register-bounds.provider.js +72 -45
  95. package/lib/module/shared/providers/register-bounds.provider.js.map +1 -1
  96. package/lib/module/shared/providers/routes.provider.js +42 -0
  97. package/lib/module/shared/providers/routes.provider.js.map +1 -0
  98. package/lib/module/shared/providers/screen-transition.provider.js.map +1 -1
  99. package/lib/module/shared/stores/bounds.store.js +91 -47
  100. package/lib/module/shared/stores/bounds.store.js.map +1 -1
  101. package/lib/module/shared/types/state.types.js +5 -0
  102. package/lib/module/shared/types/state.types.js.map +1 -0
  103. package/lib/module/shared/utils/animation/compute-stack-progress.js +15 -0
  104. package/lib/module/shared/utils/animation/compute-stack-progress.js.map +1 -0
  105. package/lib/module/shared/utils/animation/derivations.js +1 -1
  106. package/lib/module/shared/utils/animation/start-screen-transition.js +11 -11
  107. package/lib/module/shared/utils/animation/start-screen-transition.js.map +1 -1
  108. package/lib/module/shared/utils/bounds/helpers/is-bounds-equal.js +1 -1
  109. package/lib/module/shared/utils/bounds/helpers/is-bounds-equal.js.map +1 -1
  110. package/lib/module/shared/utils/bounds/index.js +4 -5
  111. package/lib/module/shared/utils/bounds/index.js.map +1 -1
  112. package/lib/module/shared/utils/create-provider.js +20 -1
  113. package/lib/module/shared/utils/create-provider.js.map +1 -1
  114. package/lib/module/shared/utils/reset-stores-for-screen.js +2 -0
  115. package/lib/module/shared/utils/reset-stores-for-screen.js.map +1 -1
  116. package/lib/typescript/blank-stack/components/{Overlay.d.ts → overlay.d.ts} +1 -1
  117. package/lib/typescript/blank-stack/components/overlay.d.ts.map +1 -0
  118. package/lib/typescript/blank-stack/components/{Screens.d.ts → screens.d.ts} +1 -1
  119. package/lib/typescript/blank-stack/components/screens.d.ts.map +1 -0
  120. package/lib/typescript/blank-stack/components/stack-view.d.ts +3 -0
  121. package/lib/typescript/blank-stack/components/stack-view.d.ts.map +1 -0
  122. package/lib/typescript/blank-stack/index.d.ts +1 -2
  123. package/lib/typescript/blank-stack/index.d.ts.map +1 -1
  124. package/lib/typescript/blank-stack/navigators/{createBlankStackNavigator.d.ts → create-blank-stack-navigator.d.ts} +1 -1
  125. package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts.map +1 -0
  126. package/lib/typescript/blank-stack/types.d.ts +5 -39
  127. package/lib/typescript/blank-stack/types.d.ts.map +1 -1
  128. package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.d.ts.map +1 -1
  129. package/lib/typescript/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.d.ts.map +1 -1
  130. package/lib/typescript/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.d.ts +1 -1
  131. package/lib/typescript/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.d.ts.map +1 -1
  132. package/lib/typescript/blank-stack/utils/with-stack-navigation/index.d.ts +3 -5
  133. package/lib/typescript/blank-stack/utils/with-stack-navigation/index.d.ts.map +1 -1
  134. package/lib/typescript/blank-stack/utils/with-stack-navigation/{_types.d.ts → types.d.ts} +1 -1
  135. package/lib/typescript/blank-stack/utils/with-stack-navigation/types.d.ts.map +1 -0
  136. package/lib/typescript/native-stack/views/NativeStackView.native.d.ts.map +1 -1
  137. package/lib/typescript/shared/components/controllers/blank-stack-lifecycle.d.ts +8 -0
  138. package/lib/typescript/shared/components/controllers/blank-stack-lifecycle.d.ts.map +1 -0
  139. package/lib/typescript/shared/components/controllers/native-stack-lifecycle.d.ts +8 -0
  140. package/lib/typescript/shared/components/controllers/native-stack-lifecycle.d.ts.map +1 -0
  141. package/lib/typescript/shared/hooks/animation/use-screen-animation.d.ts.map +1 -1
  142. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts +2 -2
  143. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts.map +1 -1
  144. package/lib/typescript/shared/index.d.ts +20 -20
  145. package/lib/typescript/shared/providers/flags.provider.d.ts +10 -0
  146. package/lib/typescript/shared/providers/flags.provider.d.ts.map +1 -0
  147. package/lib/typescript/shared/providers/gestures.provider.d.ts +8 -2
  148. package/lib/typescript/shared/providers/gestures.provider.d.ts.map +1 -1
  149. package/lib/typescript/shared/providers/register-bounds.provider.d.ts.map +1 -1
  150. package/lib/typescript/shared/providers/routes.provider.d.ts +19 -0
  151. package/lib/typescript/shared/providers/routes.provider.d.ts.map +1 -0
  152. package/lib/typescript/shared/providers/screen-transition.provider.d.ts +2 -2
  153. package/lib/typescript/shared/providers/screen-transition.provider.d.ts.map +1 -1
  154. package/lib/typescript/shared/stores/bounds.store.d.ts +23 -11
  155. package/lib/typescript/shared/stores/bounds.store.d.ts.map +1 -1
  156. package/lib/typescript/shared/types/animation.types.d.ts +12 -0
  157. package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
  158. package/lib/typescript/shared/types/bounds.types.d.ts +2 -2
  159. package/lib/typescript/shared/types/bounds.types.d.ts.map +1 -1
  160. package/lib/typescript/shared/types/state.types.d.ts +3 -0
  161. package/lib/typescript/shared/types/state.types.d.ts.map +1 -0
  162. package/lib/typescript/shared/utils/animation/compute-stack-progress.d.ts +3 -0
  163. package/lib/typescript/shared/utils/animation/compute-stack-progress.d.ts.map +1 -0
  164. package/lib/typescript/shared/utils/animation/start-screen-transition.d.ts.map +1 -1
  165. package/lib/typescript/shared/utils/bounds/index.d.ts.map +1 -1
  166. package/lib/typescript/shared/utils/create-provider.d.ts +2 -2
  167. package/lib/typescript/shared/utils/create-provider.d.ts.map +1 -1
  168. package/lib/typescript/shared/utils/reset-stores-for-screen.d.ts.map +1 -1
  169. package/package.json +2 -1
  170. package/src/blank-stack/components/{Overlay.tsx → overlay.tsx} +4 -3
  171. package/src/blank-stack/components/{Screens.tsx → screens.tsx} +24 -20
  172. package/src/blank-stack/components/stack-view.tsx +115 -0
  173. package/src/blank-stack/index.ts +1 -2
  174. package/src/blank-stack/navigators/{createBlankStackNavigator.tsx → create-blank-stack-navigator.tsx} +1 -1
  175. package/src/blank-stack/types.ts +6 -31
  176. package/src/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.ts +1 -8
  177. package/src/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.tsx +1 -12
  178. package/src/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.tsx +1 -1
  179. package/src/blank-stack/utils/with-stack-navigation/index.tsx +42 -62
  180. package/src/native-stack/views/NativeStackView.native.tsx +121 -112
  181. package/src/shared/__tests__/bounds.store.test.ts +376 -167
  182. package/src/shared/__tests__/determine-dismissal.test.ts +2 -12
  183. package/src/shared/__tests__/geometry.test.ts +1 -1
  184. package/src/shared/__tests__/gesture.velocity.test.ts +2 -10
  185. package/src/shared/components/controllers/blank-stack-lifecycle.tsx +70 -0
  186. package/src/shared/components/controllers/native-stack-lifecycle.tsx +87 -0
  187. package/src/shared/hooks/animation/use-screen-animation.tsx +61 -30
  188. package/src/shared/hooks/gestures/use-build-gestures.tsx +16 -7
  189. package/src/shared/hooks/gestures/use-scroll-registry.tsx +7 -7
  190. package/src/shared/providers/flags.provider.tsx +21 -0
  191. package/src/shared/providers/gestures.provider.tsx +34 -5
  192. package/src/shared/providers/register-bounds.provider.tsx +86 -54
  193. package/src/shared/providers/routes.provider.tsx +54 -0
  194. package/src/shared/providers/screen-transition.provider.tsx +2 -2
  195. package/src/shared/stores/bounds.store.ts +90 -54
  196. package/src/shared/types/animation.types.ts +13 -0
  197. package/src/shared/types/bounds.types.ts +2 -2
  198. package/src/shared/types/state.types.ts +2 -0
  199. package/src/shared/utils/animation/compute-stack-progress.ts +16 -0
  200. package/src/shared/utils/animation/derivations.ts +1 -1
  201. package/src/shared/utils/animation/start-screen-transition.ts +13 -10
  202. package/src/shared/utils/bounds/helpers/is-bounds-equal.ts +1 -1
  203. package/src/shared/utils/bounds/index.ts +7 -10
  204. package/src/shared/utils/create-provider.tsx +35 -1
  205. package/src/shared/utils/reset-stores-for-screen.ts +2 -0
  206. package/lib/commonjs/blank-stack/components/Overlay.js.map +0 -1
  207. package/lib/commonjs/blank-stack/components/Screens.js.map +0 -1
  208. package/lib/commonjs/blank-stack/components/StackView.js +0 -93
  209. package/lib/commonjs/blank-stack/components/StackView.js.map +0 -1
  210. package/lib/commonjs/blank-stack/navigators/createBlankStackNavigator.js.map +0 -1
  211. package/lib/commonjs/blank-stack/utils/with-stack-navigation/_types.js.map +0 -1
  212. package/lib/commonjs/shared/components/controllers/screen-lifecycle.js +0 -142
  213. package/lib/commonjs/shared/components/controllers/screen-lifecycle.js.map +0 -1
  214. package/lib/commonjs/shared/hooks/gestures/use-parent-gesture-registry.js +0 -28
  215. package/lib/commonjs/shared/hooks/gestures/use-parent-gesture-registry.js.map +0 -1
  216. package/lib/module/blank-stack/components/Overlay.js.map +0 -1
  217. package/lib/module/blank-stack/components/Screens.js +0 -58
  218. package/lib/module/blank-stack/components/Screens.js.map +0 -1
  219. package/lib/module/blank-stack/components/StackView.js +0 -88
  220. package/lib/module/blank-stack/components/StackView.js.map +0 -1
  221. package/lib/module/blank-stack/navigators/createBlankStackNavigator.js.map +0 -1
  222. package/lib/module/blank-stack/utils/with-stack-navigation/_types.js +0 -4
  223. package/lib/module/blank-stack/utils/with-stack-navigation/_types.js.map +0 -1
  224. package/lib/module/shared/components/controllers/screen-lifecycle.js +0 -136
  225. package/lib/module/shared/components/controllers/screen-lifecycle.js.map +0 -1
  226. package/lib/module/shared/hooks/gestures/use-parent-gesture-registry.js +0 -23
  227. package/lib/module/shared/hooks/gestures/use-parent-gesture-registry.js.map +0 -1
  228. package/lib/typescript/blank-stack/components/Overlay.d.ts.map +0 -1
  229. package/lib/typescript/blank-stack/components/Screens.d.ts.map +0 -1
  230. package/lib/typescript/blank-stack/components/StackView.d.ts +0 -2
  231. package/lib/typescript/blank-stack/components/StackView.d.ts.map +0 -1
  232. package/lib/typescript/blank-stack/navigators/createBlankStackNavigator.d.ts.map +0 -1
  233. package/lib/typescript/blank-stack/utils/with-stack-navigation/_types.d.ts.map +0 -1
  234. package/lib/typescript/shared/components/controllers/screen-lifecycle.d.ts +0 -12
  235. package/lib/typescript/shared/components/controllers/screen-lifecycle.d.ts.map +0 -1
  236. package/lib/typescript/shared/hooks/gestures/use-parent-gesture-registry.d.ts +0 -6
  237. package/lib/typescript/shared/hooks/gestures/use-parent-gesture-registry.d.ts.map +0 -1
  238. package/src/blank-stack/components/StackView.tsx +0 -108
  239. package/src/shared/components/controllers/screen-lifecycle.tsx +0 -154
  240. package/src/shared/hooks/gestures/use-parent-gesture-registry.tsx +0 -18
  241. /package/src/blank-stack/utils/with-stack-navigation/{_types.ts → types.ts} +0 -0
@@ -1,88 +0,0 @@
1
- "use strict";
2
-
3
- import { SafeAreaProviderCompat } from "@react-navigation/elements";
4
- import { NavigationContext, NavigationRouteContext } from "@react-navigation/native";
5
- import * as React from "react";
6
- import { StyleSheet } from "react-native";
7
- import { GestureHandlerRootView } from "react-native-gesture-handler";
8
- import { ScreenContainer } from "react-native-screens";
9
- import { BlankStackScreenLifecycleController } from "../../shared/components/controllers/screen-lifecycle";
10
- import { ScreenTransitionProvider } from "../../shared/providers/screen-transition.provider";
11
- import { withStackNavigationProvider } from "../utils/with-stack-navigation";
12
- import { Overlay } from "./Overlay";
13
- import { Screen } from "./Screens";
14
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
- function isFabric() {
16
- return "nativeFabricUIManager" in global;
17
- }
18
- const SceneView = /*#__PURE__*/React.memo(({
19
- descriptor
20
- }) => {
21
- const {
22
- route,
23
- navigation,
24
- render
25
- } = descriptor;
26
- return /*#__PURE__*/_jsx(NavigationContext.Provider, {
27
- value: navigation,
28
- children: /*#__PURE__*/_jsxs(NavigationRouteContext.Provider, {
29
- value: route,
30
- children: [descriptor.options.overlayMode === "screen" && /*#__PURE__*/_jsx(Overlay.Screen, {}), render()]
31
- })
32
- });
33
- });
34
- export const StackView = withStackNavigationProvider(({
35
- activeScreensLimit,
36
- descriptors,
37
- focusedIndex,
38
- routes,
39
- scenes,
40
- shouldShowFloatOverlay
41
- }) => {
42
- return /*#__PURE__*/_jsx(GestureHandlerRootView, {
43
- children: /*#__PURE__*/_jsxs(SafeAreaProviderCompat, {
44
- children: [shouldShowFloatOverlay ? /*#__PURE__*/_jsx(Overlay.Float, {}) : null, /*#__PURE__*/_jsx(ScreenContainer, {
45
- style: styles.container,
46
- children: scenes.map((scene, sceneIndex) => {
47
- const descriptor = scene.descriptor;
48
- const route = scene.route;
49
- const isFocused = focusedIndex === sceneIndex;
50
- const isBelowFocused = focusedIndex - 1 === sceneIndex;
51
- const previousDescriptor = scenes[sceneIndex - 1]?.descriptor ?? undefined;
52
- const nextDescriptor = scenes[sceneIndex + 1]?.descriptor ?? undefined;
53
- const isPreloaded = descriptors[route.key] === undefined;
54
-
55
- // On Fabric, when screen is frozen, animated and reanimated values are not updated
56
- // due to component being unmounted. To avoid this, we don't freeze the previous screen there
57
- const shouldFreeze = isFabric() ? !isPreloaded && !isFocused && !isBelowFocused : !isPreloaded && !isFocused;
58
- return /*#__PURE__*/_jsx(Screen, {
59
- isPreloaded: isPreloaded,
60
- index: sceneIndex,
61
- activeScreensLimit: activeScreensLimit,
62
- routeKey: route.key,
63
- routesLength: routes.length,
64
- shouldFreeze: shouldFreeze,
65
- freezeOnBlur: descriptor.options.freezeOnBlur,
66
- children: /*#__PURE__*/_jsx(ScreenTransitionProvider, {
67
- previous: previousDescriptor,
68
- current: descriptor,
69
- next: nextDescriptor,
70
- LifecycleController: BlankStackScreenLifecycleController,
71
- children: /*#__PURE__*/_jsx(SceneView, {
72
- isFocused: isFocused,
73
- sceneIndex: sceneIndex,
74
- descriptor: descriptor
75
- }, route.key)
76
- })
77
- }, route.key);
78
- })
79
- })]
80
- })
81
- });
82
- });
83
- const styles = StyleSheet.create({
84
- container: {
85
- flex: 1
86
- }
87
- });
88
- //# sourceMappingURL=StackView.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["SafeAreaProviderCompat","NavigationContext","NavigationRouteContext","React","StyleSheet","GestureHandlerRootView","ScreenContainer","BlankStackScreenLifecycleController","ScreenTransitionProvider","withStackNavigationProvider","Overlay","Screen","jsx","_jsx","jsxs","_jsxs","isFabric","global","SceneView","memo","descriptor","route","navigation","render","Provider","value","children","options","overlayMode","StackView","activeScreensLimit","descriptors","focusedIndex","routes","scenes","shouldShowFloatOverlay","Float","style","styles","container","map","scene","sceneIndex","isFocused","isBelowFocused","previousDescriptor","undefined","nextDescriptor","isPreloaded","key","shouldFreeze","index","routeKey","routesLength","length","freezeOnBlur","previous","current","next","LifecycleController","create","flex"],"sourceRoot":"../../../../src","sources":["blank-stack/components/StackView.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["createNavigatorFactory","StackActions","StackRouter","useNavigationBuilder","React","StackView","jsx","_jsx","BlankStackNavigator","id","initialRouteName","children","layout","screenListeners","screenOptions","screenLayout","rest","state","describe","descriptors","navigation","NavigationContent","useEffect","addListener","e","isFocused","requestAnimationFrame","index","defaultPrevented","dispatch","popToTop","target","key","createBlankStackNavigator","config"],"sourceRoot":"../../../../src","sources":["blank-stack/navigators/createBlankStackNavigator.tsx"],"mappings":";;AAAA,SACCA,sBAAsB,EAKtBC,YAAY,EAEZC,WAAW,EAIXC,oBAAoB,QACd,0BAA0B;AACjC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,SAAS,QAAQ,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQpD,SAASC,mBAAmBA,CAAC;EAC5BC,EAAE;EACFC,gBAAgB;EAChBC,QAAQ;EACRC,MAAM;EACNC,eAAe;EACfC,aAAa;EACbC,YAAY;EACZ,GAAGC;AACsB,CAAC,EAAE;EAC5B,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,WAAW;IAAEC,UAAU;IAAEC;EAAkB,CAAC,GACpElB,oBAAoB,CAMlBD,WAAW,EAAE;IACdO,EAAE;IACFC,gBAAgB;IAChBC,QAAQ;IACRC,MAAM;IACNC,eAAe;IACfC,aAAa;IACbC;EACD,CAAC,CAAC;EAEHX,KAAK,CAACkB,SAAS,CACd;EACC;EACAF,UAAU,EAAEG,WAAW,GAAG,UAAU,EAAGC,CAAM,IAAK;IACjD,MAAMC,SAAS,GAAGL,UAAU,CAACK,SAAS,CAAC,CAAC;;IAExC;IACA;IACAC,qBAAqB,CAAC,MAAM;MAC3B,IACCT,KAAK,CAACU,KAAK,GAAG,CAAC,IACfF,SAAS,IACT,CAAED,CAAC,CAAgCI,gBAAgB,EAClD;QACD;QACA;QACAR,UAAU,CAACS,QAAQ,CAAC;UACnB,GAAG5B,YAAY,CAAC6B,QAAQ,CAAC,CAAC;UAC1BC,MAAM,EAAEd,KAAK,CAACe;QACf,CAAC,CAAC;MACH;IACD,CAAC,CAAC;EACH,CAAC,CAAC,EACH,CAACZ,UAAU,EAAEH,KAAK,CAACU,KAAK,EAAEV,KAAK,CAACe,GAAG,CACpC,CAAC;EAED,oBACCzB,IAAA,CAACc,iBAAiB;IAAAV,QAAA,eACjBJ,IAAA,CAACF,SAAS;MAAA,GACLW,IAAI;MACRC,KAAK,EAAEA,KAAM;MACbG,UAAU,EAAEA,UAAW;MACvBD,WAAW,EAAEA,WAAY;MACzBD,QAAQ,EAAEA;IAAS,CACnB;EAAC,CACgB,CAAC;AAEtB;AAEA,OAAO,SAASe,yBAAyBA,CAmBvCC,MAAe,EAAmC;EACnD,OAAOlC,sBAAsB,CAACQ,mBAAmB,CAAC,CAAC0B,MAAM,CAAC;AAC3D","ignoreList":[]}
@@ -1,4 +0,0 @@
1
- "use strict";
2
-
3
- export {};
4
- //# sourceMappingURL=_types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["blank-stack/utils/with-stack-navigation/_types.ts"],"mappings":"","ignoreList":[]}
@@ -1,136 +0,0 @@
1
- "use strict";
2
-
3
- import { useEffect, useLayoutEffect } from "react";
4
- import { useAnimatedReaction, useDerivedValue } from "react-native-reanimated";
5
- import { useStackNavigationContext } from "../../../blank-stack/utils/with-stack-navigation";
6
- import { useParentGestureRegistry } from "../../hooks/gestures/use-parent-gesture-registry";
7
- import { useSharedValueState } from "../../hooks/reanimated/use-shared-value-state";
8
- import useStableCallback from "../../hooks/use-stable-callback";
9
- import { useGestureContext } from "../../providers/gestures.provider";
10
- import { useKeys } from "../../providers/keys.provider";
11
- import { AnimationStore } from "../../stores/animation.store";
12
- import { startScreenTransition } from "../../utils/animation/start-screen-transition";
13
- import { resetStoresForScreen } from "../../utils/reset-stores-for-screen";
14
- /**
15
- * ScreenLifecycleController built out for Native Stack implementation.
16
- */
17
- export const NativeStackScreenLifecycleController = ({
18
- children
19
- }) => {
20
- const {
21
- current
22
- } = useKeys();
23
- const {
24
- parentContext
25
- } = useGestureContext();
26
- const isParentDismissingViaGesture = useSharedValueState(useDerivedValue(() => {
27
- "worklet";
28
-
29
- return parentContext?.gestureAnimationValues.isDismissing?.value ?? false;
30
- }));
31
- const animations = AnimationStore.getAll(current.route.key);
32
- const handleBeforeRemove = useStableCallback(e => {
33
- const isEnabled = current.options.enableTransitions;
34
- const isFirstScreen = current.navigation.getState().index === 0;
35
-
36
- // If transitions are disabled, or the dismissal was on the local root, or this is the first screen of the stack, reset the stores
37
- if (!isEnabled || isParentDismissingViaGesture || isFirstScreen) {
38
- resetStoresForScreen(current);
39
- return;
40
- }
41
- e.preventDefault();
42
- const onAnimationFinish = finished => {
43
- if (finished) {
44
- current.navigation.dispatch(e.data.action);
45
-
46
- // we'll ensure the dispatch is complete before resetting stores
47
- requestAnimationFrame(() => {
48
- resetStoresForScreen(current);
49
- });
50
- }
51
- };
52
- startScreenTransition({
53
- target: "close",
54
- spec: current.options.transitionSpec,
55
- onAnimationFinish,
56
- animations
57
- });
58
- });
59
- const handleInitialize = useStableCallback(() => {
60
- startScreenTransition({
61
- target: "open",
62
- spec: current.options.transitionSpec,
63
- animations
64
- });
65
- });
66
- useEffect(() => {
67
- const unsubscribe = current.navigation.addListener("beforeRemove", handleBeforeRemove);
68
- return unsubscribe;
69
- }, [current.navigation, handleBeforeRemove]);
70
- useLayoutEffect(handleInitialize, []);
71
-
72
- // important for t.a scrollviews inside nested navigators.
73
- useParentGestureRegistry();
74
- return children;
75
- };
76
-
77
- /**
78
- * ScreenLifecycleController built out for Blank Stack implementation.
79
- */
80
-
81
- export const BlankStackScreenLifecycleController = ({
82
- children
83
- }) => {
84
- const {
85
- current
86
- } = useKeys();
87
- const {
88
- handleCloseRoute,
89
- closingRouteKeysShared
90
- } = useStackNavigationContext();
91
- const animations = AnimationStore.getAll(current.route.key);
92
- const handleInitialize = useStableCallback(() => {
93
- startScreenTransition({
94
- target: "open",
95
- spec: current.options.transitionSpec,
96
- animations
97
- });
98
- });
99
- const handleCleanup = useStableCallback(() => {
100
- resetStoresForScreen(current);
101
- });
102
- const handleCloseEnd = useStableCallback(finished => {
103
- if (!finished) {
104
- return;
105
- }
106
- handleCloseRoute({
107
- route: current.route
108
- });
109
- });
110
- useAnimatedReaction(() => ({
111
- keys: closingRouteKeysShared.value
112
- }), ({
113
- keys
114
- }) => {
115
- if (!keys.includes(current.route.key)) {
116
- return;
117
- }
118
- startScreenTransition({
119
- target: "close",
120
- spec: current.options.transitionSpec,
121
- animations,
122
- onAnimationFinish: handleCloseEnd
123
- });
124
- });
125
- useLayoutEffect(() => {
126
- handleInitialize();
127
- return () => {
128
- handleCleanup();
129
- };
130
- }, [handleInitialize, handleCleanup]);
131
-
132
- // important for t.a scrollviews inside nested navigators.
133
- useParentGestureRegistry();
134
- return children;
135
- };
136
- //# sourceMappingURL=screen-lifecycle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useEffect","useLayoutEffect","useAnimatedReaction","useDerivedValue","useStackNavigationContext","useParentGestureRegistry","useSharedValueState","useStableCallback","useGestureContext","useKeys","AnimationStore","startScreenTransition","resetStoresForScreen","NativeStackScreenLifecycleController","children","current","parentContext","isParentDismissingViaGesture","gestureAnimationValues","isDismissing","value","animations","getAll","route","key","handleBeforeRemove","e","isEnabled","options","enableTransitions","isFirstScreen","navigation","getState","index","preventDefault","onAnimationFinish","finished","dispatch","data","action","requestAnimationFrame","target","spec","transitionSpec","handleInitialize","unsubscribe","addListener","BlankStackScreenLifecycleController","handleCloseRoute","closingRouteKeysShared","handleCleanup","handleCloseEnd","keys","includes"],"sourceRoot":"../../../../../src","sources":["shared/components/controllers/screen-lifecycle.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- import { useEffect } from "react";
4
- import { useGestureContext } from "../../providers/gestures.provider";
5
- import useStableCallback from "../use-stable-callback";
6
-
7
- /**
8
- * Registers native gestures with parent gestures to enable proper gesture handling
9
- * in nested navigators that contain scrollable content.
10
- */
11
- export const useParentGestureRegistry = () => {
12
- const {
13
- parentContext,
14
- nativeGesture
15
- } = useGestureContext();
16
- const registerNativeGesture = useStableCallback(() => {
17
- if (parentContext?.panGesture && nativeGesture) {
18
- parentContext.panGesture.blocksExternalGesture(nativeGesture);
19
- }
20
- });
21
- useEffect(registerNativeGesture);
22
- };
23
- //# sourceMappingURL=use-parent-gesture-registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useEffect","useGestureContext","useStableCallback","useParentGestureRegistry","parentContext","nativeGesture","registerNativeGesture","panGesture","blocksExternalGesture"],"sourceRoot":"../../../../../src","sources":["shared/hooks/gestures/use-parent-gesture-registry.tsx"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,iBAAiB,QAAQ,mCAAmC;AACrE,OAAOC,iBAAiB,MAAM,wBAAwB;;AAEtD;AACA;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,GAAGA,CAAA,KAAM;EAC7C,MAAM;IAAEC,aAAa;IAAEC;EAAc,CAAC,GAAGJ,iBAAiB,CAAC,CAAC;EAC5D,MAAMK,qBAAqB,GAAGJ,iBAAiB,CAAC,MAAM;IACrD,IAAIE,aAAa,EAAEG,UAAU,IAAIF,aAAa,EAAE;MAC/CD,aAAa,CAACG,UAAU,CAACC,qBAAqB,CAACH,aAAa,CAAC;IAC9D;EACD,CAAC,CAAC;EAEFL,SAAS,CAACM,qBAAqB,CAAC;AACjC,CAAC","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Overlay.d.ts","sourceRoot":"","sources":["../../../../src/blank-stack/components/Overlay.tsx"],"names":[],"mappings":"AAsJA,eAAO,MAAM,OAAO;;;CAGnB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Screens.d.ts","sourceRoot":"","sources":["../../../../src/blank-stack/components/Screens.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAWpC,UAAU,WAAW;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;CAC3B;AAUD,eAAO,MAAM,MAAM,GAAI,2GASpB,WAAW,4CAuDb,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare const StackView: (props: import("../utils/with-stack-navigation/_types").StackNavigationContextProps) => import("react/jsx-runtime").JSX.Element;
2
- //# sourceMappingURL=StackView.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StackView.d.ts","sourceRoot":"","sources":["../../../../src/blank-stack/components/StackView.tsx"],"names":[],"mappings":"AAuCA,eAAO,MAAM,SAAS,iIAgErB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createBlankStackNavigator.d.ts","sourceRoot":"","sources":["../../../../src/blank-stack/navigators/createBlankStackNavigator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAGlB,KAAK,oBAAoB,EAGzB,KAAK,YAAY,EACjB,KAAK,cAAc,EAEnB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EACX,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,MAAM,UAAU,CAAC;AAElB,iBAAS,mBAAmB,CAAC,EAC5B,EAAE,EACF,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACN,eAAe,EACf,aAAa,EACb,YAAY,EACZ,GAAG,IAAI,EACP,EAAE,wBAAwB,2CAuD1B;AAED,wBAAgB,yBAAyB,CACxC,KAAK,CAAC,SAAS,SAAS,aAAa,EACrC,KAAK,CAAC,WAAW,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,EACxD,KAAK,CAAC,OAAO,SAAS,oBAAoB,GAAG;IAC5C,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACvC,aAAa,EAAE,2BAA2B,CAAC;IAC3C,QAAQ,EAAE,4BAA4B,CAAC;IACvC,cAAc,EAAE;SACd,SAAS,IAAI,MAAM,SAAS,GAAG,wBAAwB,CACvD,SAAS,EACT,SAAS,EACT,WAAW,CACX;KACD,CAAC;IACF,SAAS,EAAE,OAAO,mBAAmB,CAAC;CACtC,EACD,KAAK,CAAC,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,EACjE,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAElD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_types.d.ts","sourceRoot":"","sources":["../../../../../src/blank-stack/utils/with-stack-navigation/_types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,eAAe,EACf,aAAa,EACb,KAAK,EACL,SAAS,EACT,oBAAoB,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EACX,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,eAAe,EACf,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,2BAA2B;IAC3C,MAAM,EAAE,eAAe,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC;IACjD,WAAW,EAAE,uBAAuB,CAAC;IACrC,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,gBAAgB,EAAE,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,KAAK,IAAI,CAAC;IAC9D,sBAAsB,EAAE,OAAO,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,2BAA2B;IAC3C,KAAK,EAAE,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAC3C,UAAU,EAAE,2BAA2B,CAAC;IACxC,WAAW,EAAE,uBAAuB,CAAC;IACrC,QAAQ,EAAE,CACT,KAAK,EAAE,SAAS,CAAC,aAAa,CAAC,EAC/B,WAAW,EAAE,OAAO,KAChB,oBAAoB,CAAC;CAC1B"}
@@ -1,12 +0,0 @@
1
- export interface ScreenLifecycleProps {
2
- children: React.ReactNode;
3
- }
4
- /**
5
- * ScreenLifecycleController built out for Native Stack implementation.
6
- */
7
- export declare const NativeStackScreenLifecycleController: ({ children, }: ScreenLifecycleProps) => import("react").ReactNode;
8
- /**
9
- * ScreenLifecycleController built out for Blank Stack implementation.
10
- */
11
- export declare const BlankStackScreenLifecycleController: ({ children, }: ScreenLifecycleProps) => import("react").ReactNode;
12
- //# sourceMappingURL=screen-lifecycle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"screen-lifecycle.d.ts","sourceRoot":"","sources":["../../../../../src/shared/components/controllers/screen-lifecycle.tsx"],"names":[],"mappings":"AAcA,MAAM,WAAW,oBAAoB;IACpC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,oCAAoC,GAAI,eAElD,oBAAoB,8BAmEtB,CAAC;AAEF;;GAEG;AAEH,eAAO,MAAM,mCAAmC,GAAI,eAEjD,oBAAoB,8BAuDtB,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Registers native gestures with parent gestures to enable proper gesture handling
3
- * in nested navigators that contain scrollable content.
4
- */
5
- export declare const useParentGestureRegistry: () => void;
6
- //# sourceMappingURL=use-parent-gesture-registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-parent-gesture-registry.d.ts","sourceRoot":"","sources":["../../../../../src/shared/hooks/gestures/use-parent-gesture-registry.tsx"],"names":[],"mappings":"AAIA;;;GAGG;AACH,eAAO,MAAM,wBAAwB,YASpC,CAAC"}
@@ -1,108 +0,0 @@
1
- import { SafeAreaProviderCompat } from "@react-navigation/elements";
2
- import {
3
- NavigationContext,
4
- NavigationRouteContext,
5
- } from "@react-navigation/native";
6
- import * as React from "react";
7
- import { StyleSheet } from "react-native";
8
- import { GestureHandlerRootView } from "react-native-gesture-handler";
9
- import { ScreenContainer } from "react-native-screens";
10
- import { BlankStackScreenLifecycleController } from "../../shared/components/controllers/screen-lifecycle";
11
- import { ScreenTransitionProvider } from "../../shared/providers/screen-transition.provider";
12
- import type { BlankStackDescriptor } from "../types";
13
- import { withStackNavigationProvider } from "../utils/with-stack-navigation";
14
- import { Overlay } from "./Overlay";
15
- import { Screen } from "./Screens";
16
-
17
- function isFabric() {
18
- return "nativeFabricUIManager" in global;
19
- }
20
-
21
- type SceneViewProps = {
22
- descriptor: BlankStackDescriptor;
23
- isFocused: boolean;
24
- sceneIndex: number;
25
- };
26
-
27
- const SceneView = React.memo(({ descriptor }: SceneViewProps) => {
28
- const { route, navigation, render } = descriptor;
29
-
30
- return (
31
- <NavigationContext.Provider value={navigation}>
32
- <NavigationRouteContext.Provider value={route}>
33
- {descriptor.options.overlayMode === "screen" && <Overlay.Screen />}
34
- {render()}
35
- </NavigationRouteContext.Provider>
36
- </NavigationContext.Provider>
37
- );
38
- });
39
-
40
- export const StackView = withStackNavigationProvider(
41
- ({
42
- activeScreensLimit,
43
- descriptors,
44
- focusedIndex,
45
- routes,
46
- scenes,
47
- shouldShowFloatOverlay,
48
- }) => {
49
- return (
50
- <GestureHandlerRootView>
51
- <SafeAreaProviderCompat>
52
- {shouldShowFloatOverlay ? <Overlay.Float /> : null}
53
- <ScreenContainer style={styles.container}>
54
- {scenes.map((scene, sceneIndex) => {
55
- const descriptor = scene.descriptor;
56
- const route = scene.route;
57
- const isFocused = focusedIndex === sceneIndex;
58
- const isBelowFocused = focusedIndex - 1 === sceneIndex;
59
-
60
- const previousDescriptor =
61
- scenes[sceneIndex - 1]?.descriptor ?? undefined;
62
- const nextDescriptor =
63
- scenes[sceneIndex + 1]?.descriptor ?? undefined;
64
-
65
- const isPreloaded = descriptors[route.key] === undefined;
66
-
67
- // On Fabric, when screen is frozen, animated and reanimated values are not updated
68
- // due to component being unmounted. To avoid this, we don't freeze the previous screen there
69
- const shouldFreeze = isFabric()
70
- ? !isPreloaded && !isFocused && !isBelowFocused
71
- : !isPreloaded && !isFocused;
72
- return (
73
- <Screen
74
- key={route.key}
75
- isPreloaded={isPreloaded}
76
- index={sceneIndex}
77
- activeScreensLimit={activeScreensLimit}
78
- routeKey={route.key}
79
- routesLength={routes.length}
80
- shouldFreeze={shouldFreeze}
81
- freezeOnBlur={descriptor.options.freezeOnBlur}
82
- >
83
- <ScreenTransitionProvider
84
- previous={previousDescriptor}
85
- current={descriptor}
86
- next={nextDescriptor}
87
- LifecycleController={BlankStackScreenLifecycleController}
88
- >
89
- <SceneView
90
- key={route.key}
91
- isFocused={isFocused}
92
- sceneIndex={sceneIndex}
93
- descriptor={descriptor}
94
- />
95
- </ScreenTransitionProvider>
96
- </Screen>
97
- );
98
- })}
99
- </ScreenContainer>
100
- </SafeAreaProviderCompat>
101
- </GestureHandlerRootView>
102
- );
103
- },
104
- );
105
-
106
- const styles = StyleSheet.create({
107
- container: { flex: 1 },
108
- });
@@ -1,154 +0,0 @@
1
- import { useEffect, useLayoutEffect } from "react";
2
- import { useAnimatedReaction, useDerivedValue } from "react-native-reanimated";
3
- import type { BlankStackDescriptor } from "../../../blank-stack/types";
4
- import { useStackNavigationContext } from "../../../blank-stack/utils/with-stack-navigation";
5
- import type { NativeStackDescriptor } from "../../../native-stack/types";
6
- import { useParentGestureRegistry } from "../../hooks/gestures/use-parent-gesture-registry";
7
- import { useSharedValueState } from "../../hooks/reanimated/use-shared-value-state";
8
- import useStableCallback from "../../hooks/use-stable-callback";
9
- import { useGestureContext } from "../../providers/gestures.provider";
10
- import { useKeys } from "../../providers/keys.provider";
11
- import { AnimationStore } from "../../stores/animation.store";
12
- import { startScreenTransition } from "../../utils/animation/start-screen-transition";
13
- import { resetStoresForScreen } from "../../utils/reset-stores-for-screen";
14
-
15
- export interface ScreenLifecycleProps {
16
- children: React.ReactNode;
17
- }
18
-
19
- /**
20
- * ScreenLifecycleController built out for Native Stack implementation.
21
- */
22
- export const NativeStackScreenLifecycleController = ({
23
- children,
24
- }: ScreenLifecycleProps) => {
25
- const { current } = useKeys<NativeStackDescriptor>();
26
- const { parentContext } = useGestureContext();
27
-
28
- const isParentDismissingViaGesture = useSharedValueState(
29
- useDerivedValue(() => {
30
- "worklet";
31
- return parentContext?.gestureAnimationValues.isDismissing?.value ?? false;
32
- }),
33
- );
34
-
35
- const animations = AnimationStore.getAll(current.route.key);
36
-
37
- const handleBeforeRemove = useStableCallback((e: any) => {
38
- const isEnabled = current.options.enableTransitions;
39
-
40
- const isFirstScreen = current.navigation.getState().index === 0;
41
-
42
- // If transitions are disabled, or the dismissal was on the local root, or this is the first screen of the stack, reset the stores
43
- if (!isEnabled || isParentDismissingViaGesture || isFirstScreen) {
44
- resetStoresForScreen(current);
45
- return;
46
- }
47
-
48
- e.preventDefault();
49
- const onAnimationFinish = (finished: boolean) => {
50
- if (finished) {
51
- current.navigation.dispatch(e.data.action);
52
-
53
- // we'll ensure the dispatch is complete before resetting stores
54
- requestAnimationFrame(() => {
55
- resetStoresForScreen(current);
56
- });
57
- }
58
- };
59
-
60
- startScreenTransition({
61
- target: "close",
62
- spec: current.options.transitionSpec,
63
- onAnimationFinish,
64
- animations,
65
- });
66
- });
67
-
68
- const handleInitialize = useStableCallback(() => {
69
- startScreenTransition({
70
- target: "open",
71
- spec: current.options.transitionSpec,
72
- animations,
73
- });
74
- });
75
-
76
- useEffect(() => {
77
- const unsubscribe = current.navigation.addListener(
78
- "beforeRemove",
79
- handleBeforeRemove,
80
- );
81
-
82
- return unsubscribe;
83
- }, [current.navigation, handleBeforeRemove]);
84
-
85
- useLayoutEffect(handleInitialize, []);
86
-
87
- // important for t.a scrollviews inside nested navigators.
88
- useParentGestureRegistry();
89
-
90
- return children;
91
- };
92
-
93
- /**
94
- * ScreenLifecycleController built out for Blank Stack implementation.
95
- */
96
-
97
- export const BlankStackScreenLifecycleController = ({
98
- children,
99
- }: ScreenLifecycleProps) => {
100
- const { current } = useKeys<BlankStackDescriptor>();
101
- const { handleCloseRoute, closingRouteKeysShared } =
102
- useStackNavigationContext();
103
-
104
- const animations = AnimationStore.getAll(current.route.key);
105
-
106
- const handleInitialize = useStableCallback(() => {
107
- startScreenTransition({
108
- target: "open",
109
- spec: current.options.transitionSpec,
110
- animations,
111
- });
112
- });
113
-
114
- const handleCleanup = useStableCallback(() => {
115
- resetStoresForScreen(current);
116
- });
117
-
118
- const handleCloseEnd = useStableCallback((finished: boolean) => {
119
- if (!finished) {
120
- return;
121
- }
122
- handleCloseRoute({ route: current.route });
123
- });
124
-
125
- useAnimatedReaction(
126
- () => ({
127
- keys: closingRouteKeysShared.value,
128
- }),
129
- ({ keys }) => {
130
- if (!keys.includes(current.route.key)) {
131
- return;
132
- }
133
-
134
- startScreenTransition({
135
- target: "close",
136
- spec: current.options.transitionSpec,
137
- animations,
138
- onAnimationFinish: handleCloseEnd,
139
- });
140
- },
141
- );
142
-
143
- useLayoutEffect(() => {
144
- handleInitialize();
145
- return () => {
146
- handleCleanup();
147
- };
148
- }, [handleInitialize, handleCleanup]);
149
-
150
- // important for t.a scrollviews inside nested navigators.
151
- useParentGestureRegistry();
152
-
153
- return children;
154
- };
@@ -1,18 +0,0 @@
1
- import { useEffect } from "react";
2
- import { useGestureContext } from "../../providers/gestures.provider";
3
- import useStableCallback from "../use-stable-callback";
4
-
5
- /**
6
- * Registers native gestures with parent gestures to enable proper gesture handling
7
- * in nested navigators that contain scrollable content.
8
- */
9
- export const useParentGestureRegistry = () => {
10
- const { parentContext, nativeGesture } = useGestureContext();
11
- const registerNativeGesture = useStableCallback(() => {
12
- if (parentContext?.panGesture && nativeGesture) {
13
- parentContext.panGesture.blocksExternalGesture(nativeGesture);
14
- }
15
- });
16
-
17
- useEffect(registerNativeGesture);
18
- };