react-native-screen-transitions 3.0.0-rc.3 → 3.0.0-rc.5

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 (127) hide show
  1. package/lib/commonjs/blank-stack/components/screens.js +22 -13
  2. package/lib/commonjs/blank-stack/components/screens.js.map +1 -1
  3. package/lib/commonjs/blank-stack/components/stack-view.js +42 -39
  4. package/lib/commonjs/blank-stack/components/stack-view.js.map +1 -1
  5. package/lib/commonjs/blank-stack/utils/with-stack-navigation/index.js +11 -10
  6. package/lib/commonjs/blank-stack/utils/with-stack-navigation/index.js.map +1 -1
  7. package/lib/commonjs/native-stack/views/NativeStackView.native.js +110 -103
  8. package/lib/commonjs/native-stack/views/NativeStackView.native.js.map +1 -1
  9. package/lib/commonjs/shared/components/controllers/blank-stack-lifecycle.js +72 -0
  10. package/lib/commonjs/shared/components/controllers/blank-stack-lifecycle.js.map +1 -0
  11. package/lib/commonjs/shared/components/controllers/native-stack-lifecycle.js +81 -0
  12. package/lib/commonjs/shared/components/controllers/native-stack-lifecycle.js.map +1 -0
  13. package/lib/commonjs/shared/hooks/animation/use-screen-animation.js +11 -1
  14. package/lib/commonjs/shared/hooks/animation/use-screen-animation.js.map +1 -1
  15. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js +11 -6
  16. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  17. package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js +7 -7
  18. package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
  19. package/lib/commonjs/shared/providers/gestures.provider.js +36 -20
  20. package/lib/commonjs/shared/providers/gestures.provider.js.map +1 -1
  21. package/lib/commonjs/shared/providers/register-bounds.provider.js +4 -3
  22. package/lib/commonjs/shared/providers/register-bounds.provider.js.map +1 -1
  23. package/lib/commonjs/shared/providers/routes.provider.js +48 -0
  24. package/lib/commonjs/shared/providers/routes.provider.js.map +1 -0
  25. package/lib/commonjs/shared/providers/screen-transition.provider.js.map +1 -1
  26. package/lib/commonjs/shared/types/state.types.js +9 -0
  27. package/lib/commonjs/shared/types/state.types.js.map +1 -0
  28. package/lib/commonjs/shared/utils/animation/compute-stack-progress.js +20 -0
  29. package/lib/commonjs/shared/utils/animation/compute-stack-progress.js.map +1 -0
  30. package/lib/commonjs/shared/utils/animation/derivations.js +1 -1
  31. package/lib/commonjs/shared/utils/animation/start-screen-transition.js +11 -11
  32. package/lib/commonjs/shared/utils/animation/start-screen-transition.js.map +1 -1
  33. package/lib/module/blank-stack/components/screens.js +22 -13
  34. package/lib/module/blank-stack/components/screens.js.map +1 -1
  35. package/lib/module/blank-stack/components/stack-view.js +42 -39
  36. package/lib/module/blank-stack/components/stack-view.js.map +1 -1
  37. package/lib/module/blank-stack/utils/with-stack-navigation/index.js +11 -10
  38. package/lib/module/blank-stack/utils/with-stack-navigation/index.js.map +1 -1
  39. package/lib/module/native-stack/views/NativeStackView.native.js +109 -102
  40. package/lib/module/native-stack/views/NativeStackView.native.js.map +1 -1
  41. package/lib/module/shared/components/controllers/blank-stack-lifecycle.js +66 -0
  42. package/lib/module/shared/components/controllers/blank-stack-lifecycle.js.map +1 -0
  43. package/lib/module/shared/components/controllers/native-stack-lifecycle.js +74 -0
  44. package/lib/module/shared/components/controllers/native-stack-lifecycle.js.map +1 -0
  45. package/lib/module/shared/hooks/animation/use-screen-animation.js +11 -1
  46. package/lib/module/shared/hooks/animation/use-screen-animation.js.map +1 -1
  47. package/lib/module/shared/hooks/gestures/use-build-gestures.js +11 -6
  48. package/lib/module/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  49. package/lib/module/shared/hooks/gestures/use-scroll-registry.js +7 -7
  50. package/lib/module/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
  51. package/lib/module/shared/providers/gestures.provider.js +36 -21
  52. package/lib/module/shared/providers/gestures.provider.js.map +1 -1
  53. package/lib/module/shared/providers/register-bounds.provider.js +4 -3
  54. package/lib/module/shared/providers/register-bounds.provider.js.map +1 -1
  55. package/lib/module/shared/providers/routes.provider.js +42 -0
  56. package/lib/module/shared/providers/routes.provider.js.map +1 -0
  57. package/lib/module/shared/providers/screen-transition.provider.js.map +1 -1
  58. package/lib/module/shared/types/state.types.js +5 -0
  59. package/lib/module/shared/types/state.types.js.map +1 -0
  60. package/lib/module/shared/utils/animation/compute-stack-progress.js +15 -0
  61. package/lib/module/shared/utils/animation/compute-stack-progress.js.map +1 -0
  62. package/lib/module/shared/utils/animation/derivations.js +1 -1
  63. package/lib/module/shared/utils/animation/start-screen-transition.js +11 -11
  64. package/lib/module/shared/utils/animation/start-screen-transition.js.map +1 -1
  65. package/lib/typescript/blank-stack/components/screens.d.ts +1 -3
  66. package/lib/typescript/blank-stack/components/screens.d.ts.map +1 -1
  67. package/lib/typescript/blank-stack/components/stack-view.d.ts.map +1 -1
  68. package/lib/typescript/blank-stack/types.d.ts +1 -39
  69. package/lib/typescript/blank-stack/types.d.ts.map +1 -1
  70. package/lib/typescript/blank-stack/utils/with-stack-navigation/index.d.ts.map +1 -1
  71. package/lib/typescript/native-stack/views/NativeStackView.native.d.ts.map +1 -1
  72. package/lib/typescript/shared/components/controllers/blank-stack-lifecycle.d.ts +8 -0
  73. package/lib/typescript/shared/components/controllers/blank-stack-lifecycle.d.ts.map +1 -0
  74. package/lib/typescript/shared/components/controllers/native-stack-lifecycle.d.ts +8 -0
  75. package/lib/typescript/shared/components/controllers/native-stack-lifecycle.d.ts.map +1 -0
  76. package/lib/typescript/shared/hooks/animation/use-screen-animation.d.ts.map +1 -1
  77. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts +2 -2
  78. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts.map +1 -1
  79. package/lib/typescript/shared/providers/gestures.provider.d.ts +10 -7
  80. package/lib/typescript/shared/providers/gestures.provider.d.ts.map +1 -1
  81. package/lib/typescript/shared/providers/register-bounds.provider.d.ts.map +1 -1
  82. package/lib/typescript/shared/providers/routes.provider.d.ts +19 -0
  83. package/lib/typescript/shared/providers/routes.provider.d.ts.map +1 -0
  84. package/lib/typescript/shared/providers/screen-transition.provider.d.ts +2 -2
  85. package/lib/typescript/shared/providers/screen-transition.provider.d.ts.map +1 -1
  86. package/lib/typescript/shared/types/animation.types.d.ts +12 -0
  87. package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
  88. package/lib/typescript/shared/types/state.types.d.ts +3 -0
  89. package/lib/typescript/shared/types/state.types.d.ts.map +1 -0
  90. package/lib/typescript/shared/utils/animation/compute-stack-progress.d.ts +3 -0
  91. package/lib/typescript/shared/utils/animation/compute-stack-progress.d.ts.map +1 -0
  92. package/lib/typescript/shared/utils/animation/start-screen-transition.d.ts.map +1 -1
  93. package/package.json +1 -1
  94. package/src/blank-stack/components/screens.tsx +25 -19
  95. package/src/blank-stack/components/stack-view.tsx +57 -53
  96. package/src/blank-stack/types.ts +1 -24
  97. package/src/blank-stack/utils/with-stack-navigation/index.tsx +17 -3
  98. package/src/native-stack/views/NativeStackView.native.tsx +121 -112
  99. package/src/shared/__tests__/bounds.store.test.ts +14 -36
  100. package/src/shared/components/controllers/blank-stack-lifecycle.tsx +70 -0
  101. package/src/shared/components/controllers/native-stack-lifecycle.tsx +89 -0
  102. package/src/shared/hooks/animation/use-screen-animation.tsx +11 -6
  103. package/src/shared/hooks/gestures/use-build-gestures.tsx +12 -6
  104. package/src/shared/hooks/gestures/use-scroll-registry.tsx +7 -7
  105. package/src/shared/providers/gestures.provider.tsx +49 -48
  106. package/src/shared/providers/register-bounds.provider.tsx +4 -3
  107. package/src/shared/providers/routes.provider.tsx +54 -0
  108. package/src/shared/providers/screen-transition.provider.tsx +2 -2
  109. package/src/shared/types/animation.types.ts +13 -0
  110. package/src/shared/types/state.types.ts +2 -0
  111. package/src/shared/utils/animation/compute-stack-progress.ts +16 -0
  112. package/src/shared/utils/animation/derivations.ts +1 -1
  113. package/src/shared/utils/animation/start-screen-transition.ts +13 -10
  114. package/lib/commonjs/shared/components/controllers/screen-lifecycle.js +0 -142
  115. package/lib/commonjs/shared/components/controllers/screen-lifecycle.js.map +0 -1
  116. package/lib/commonjs/shared/hooks/gestures/use-parent-gesture-registry.js +0 -28
  117. package/lib/commonjs/shared/hooks/gestures/use-parent-gesture-registry.js.map +0 -1
  118. package/lib/module/shared/components/controllers/screen-lifecycle.js +0 -136
  119. package/lib/module/shared/components/controllers/screen-lifecycle.js.map +0 -1
  120. package/lib/module/shared/hooks/gestures/use-parent-gesture-registry.js +0 -23
  121. package/lib/module/shared/hooks/gestures/use-parent-gesture-registry.js.map +0 -1
  122. package/lib/typescript/shared/components/controllers/screen-lifecycle.d.ts +0 -12
  123. package/lib/typescript/shared/components/controllers/screen-lifecycle.d.ts.map +0 -1
  124. package/lib/typescript/shared/hooks/gestures/use-parent-gesture-registry.d.ts +0 -6
  125. package/lib/typescript/shared/hooks/gestures/use-parent-gesture-registry.d.ts.map +0 -1
  126. package/src/shared/components/controllers/screen-lifecycle.tsx +0 -154
  127. package/src/shared/hooks/gestures/use-parent-gesture-registry.tsx +0 -18
@@ -8,51 +8,60 @@ var _reactNative = require("react-native");
8
8
  var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
9
9
  var _reactNativeScreens = require("react-native-screens");
10
10
  var _animation = require("../../shared/stores/animation.store");
11
+ var _withStackNavigation = require("../utils/with-stack-navigation");
11
12
  var _jsxRuntime = require("react/jsx-runtime");
12
13
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
+ var ScreenActivity = /*#__PURE__*/function (ScreenActivity) {
15
+ ScreenActivity[ScreenActivity["INACTIVE"] = 0] = "INACTIVE";
16
+ ScreenActivity[ScreenActivity["TRANSITIONING_OR_BELOW_TOP"] = 1] = "TRANSITIONING_OR_BELOW_TOP";
17
+ ScreenActivity[ScreenActivity["ON_TOP"] = 2] = "ON_TOP";
18
+ return ScreenActivity;
19
+ }(ScreenActivity || {});
13
20
  const EPSILON = 1e-5;
14
- const STATE_INACTIVE = 0;
15
- const STATE_TRANSITIONING_OR_BELOW_TOP = 1;
16
- const STATE_ON_TOP = 2;
17
21
  const AnimatedScreen = _reactNativeReanimated.default.createAnimatedComponent(_reactNativeScreens.Screen);
18
22
  const Screen = ({
19
23
  routeKey,
20
24
  index,
21
- routesLength,
22
25
  isPreloaded,
23
- activeScreensLimit,
24
26
  children,
25
27
  freezeOnBlur,
26
28
  shouldFreeze
27
29
  }) => {
30
+ const {
31
+ activeScreensLimit,
32
+ routes
33
+ } = (0, _withStackNavigation.useStackNavigationContext)();
34
+ const routesLength = routes.length;
28
35
  const sceneProgress = _animation.AnimationStore.getAnimation(routeKey, "progress");
29
- const screenActivity = (0, _reactNativeReanimated.useSharedValue)(1);
36
+ const sceneClosing = _animation.AnimationStore.getAnimation(routeKey, "closing");
37
+ const screenActivity = (0, _reactNativeReanimated.useSharedValue)(ScreenActivity.TRANSITIONING_OR_BELOW_TOP);
30
38
  (0, _reactNativeReanimated.useDerivedValue)(() => {
31
39
  if (!sceneProgress) {
32
- screenActivity.set(STATE_TRANSITIONING_OR_BELOW_TOP);
40
+ screenActivity.set(ScreenActivity.TRANSITIONING_OR_BELOW_TOP);
33
41
  return;
34
42
  }
35
43
  if (index < routesLength - activeScreensLimit - 1 || isPreloaded) {
36
- screenActivity.set(STATE_INACTIVE);
44
+ screenActivity.set(ScreenActivity.INACTIVE);
37
45
  } else {
38
- const outputValue = index === routesLength - 1 ? STATE_ON_TOP : index >= routesLength - activeScreensLimit ? STATE_TRANSITIONING_OR_BELOW_TOP : STATE_INACTIVE;
46
+ const outputValue = index === routesLength - 1 ? ScreenActivity.ON_TOP : index >= routesLength - activeScreensLimit ? ScreenActivity.TRANSITIONING_OR_BELOW_TOP : ScreenActivity.INACTIVE;
39
47
  const v = (0, _reactNativeReanimated.interpolate)(sceneProgress.get(), [0, 1 - EPSILON, 1], [1, 1, outputValue], "clamp");
40
- const next = Math.trunc(v) ?? STATE_TRANSITIONING_OR_BELOW_TOP;
48
+ const next = Math.trunc(v) ?? ScreenActivity.TRANSITIONING_OR_BELOW_TOP;
41
49
  if (next !== screenActivity.get()) {
42
50
  screenActivity.set(next);
43
51
  }
44
52
  }
45
53
  });
46
54
  const animatedProps = (0, _reactNativeReanimated.useAnimatedProps)(() => {
55
+ const activity = screenActivity.get();
47
56
  return {
48
- activityState: screenActivity.get(),
49
- shouldFreeze: screenActivity.get() === STATE_INACTIVE && shouldFreeze
57
+ activityState: activity,
58
+ shouldFreeze: activity === ScreenActivity.INACTIVE && shouldFreeze,
59
+ pointerEvents: sceneClosing.get() ? "none" : "box-none"
50
60
  };
51
61
  });
52
62
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(AnimatedScreen, {
53
63
  enabled: true,
54
64
  style: _reactNative.StyleSheet.absoluteFill,
55
- pointerEvents: "box-none",
56
65
  freezeOnBlur: freezeOnBlur,
57
66
  animatedProps: animatedProps,
58
67
  children: children
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_reactNativeReanimated","_interopRequireWildcard","_reactNativeScreens","_animation","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","EPSILON","STATE_INACTIVE","STATE_TRANSITIONING_OR_BELOW_TOP","STATE_ON_TOP","AnimatedScreen","Animated","createAnimatedComponent","RNSScreen","Screen","routeKey","index","routesLength","isPreloaded","activeScreensLimit","children","freezeOnBlur","shouldFreeze","sceneProgress","AnimationStore","getAnimation","screenActivity","useSharedValue","useDerivedValue","outputValue","v","interpolate","next","Math","trunc","animatedProps","useAnimatedProps","activityState","jsx","enabled","style","StyleSheet","absoluteFill","pointerEvents","exports"],"sourceRoot":"../../../../src","sources":["blank-stack/components/screens.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_reactNativeReanimated","_interopRequireWildcard","_reactNativeScreens","_animation","_withStackNavigation","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ScreenActivity","EPSILON","AnimatedScreen","Animated","createAnimatedComponent","RNSScreen","Screen","routeKey","index","isPreloaded","children","freezeOnBlur","shouldFreeze","activeScreensLimit","routes","useStackNavigationContext","routesLength","length","sceneProgress","AnimationStore","getAnimation","sceneClosing","screenActivity","useSharedValue","TRANSITIONING_OR_BELOW_TOP","useDerivedValue","INACTIVE","outputValue","ON_TOP","v","interpolate","next","Math","trunc","animatedProps","useAnimatedProps","activity","activityState","pointerEvents","jsx","enabled","style","StyleSheet","absoluteFill","exports"],"sourceRoot":"../../../../src","sources":["blank-stack/components/screens.tsx"],"mappings":"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","ignoreList":[]}
@@ -10,8 +10,9 @@ var React = _interopRequireWildcard(require("react"));
10
10
  var _reactNative = require("react-native");
11
11
  var _reactNativeGestureHandler = require("react-native-gesture-handler");
12
12
  var _reactNativeScreens = require("react-native-screens");
13
- var _screenLifecycle = require("../../shared/components/controllers/screen-lifecycle");
13
+ var _blankStackLifecycle = require("../../shared/components/controllers/blank-stack-lifecycle");
14
14
  var _flags = require("../../shared/providers/flags.provider");
15
+ var _routes = require("../../shared/providers/routes.provider");
15
16
  var _screenTransition = require("../../shared/providers/screen-transition.provider");
16
17
  var _withStackNavigation = require("../utils/with-stack-navigation");
17
18
  var _overlay = require("./overlay");
@@ -21,9 +22,9 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
21
22
  function isFabric() {
22
23
  return "nativeFabricUIManager" in global;
23
24
  }
24
- const SceneView = /*#__PURE__*/React.memo(({
25
+ const SceneView = /*#__PURE__*/React.memo(function SceneView({
25
26
  descriptor
26
- }) => {
27
+ }) {
27
28
  const {
28
29
  route,
29
30
  navigation,
@@ -38,51 +39,53 @@ const SceneView = /*#__PURE__*/React.memo(({
38
39
  });
39
40
  });
40
41
  const StackView = exports.StackView = (0, _withStackNavigation.withStackNavigationProvider)(({
41
- activeScreensLimit,
42
42
  descriptors,
43
43
  focusedIndex,
44
44
  routes,
45
45
  scenes,
46
46
  shouldShowFloatOverlay
47
47
  }) => {
48
+ // Memoize route keys array for ScenesProvider
49
+ const routeKeys = React.useMemo(() => routes.map(route => route.key), [routes]);
48
50
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_flags.FlagsProvider, {
49
51
  TRANSITIONS_ALWAYS_ON: true,
50
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.GestureHandlerRootView, {
51
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_elements.SafeAreaProviderCompat, {
52
- children: [shouldShowFloatOverlay ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_overlay.Overlay.Float, {}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeScreens.ScreenContainer, {
53
- style: styles.container,
54
- children: 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
- const previousDescriptor = scenes[sceneIndex - 1]?.descriptor ?? undefined;
60
- const nextDescriptor = scenes[sceneIndex + 1]?.descriptor ?? undefined;
61
- const isPreloaded = descriptors[route.key] === undefined;
52
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_routes.RoutesProvider, {
53
+ routeKeys: routeKeys,
54
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.GestureHandlerRootView, {
55
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_elements.SafeAreaProviderCompat, {
56
+ children: [shouldShowFloatOverlay ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_overlay.Overlay.Float, {}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeScreens.ScreenContainer, {
57
+ style: styles.container,
58
+ children: scenes.map((scene, sceneIndex) => {
59
+ const descriptor = scene.descriptor;
60
+ const route = scene.route;
61
+ const isFocused = focusedIndex === sceneIndex;
62
+ const isBelowFocused = focusedIndex - 1 === sceneIndex;
63
+ const previousDescriptor = scenes[sceneIndex - 1]?.descriptor ?? undefined;
64
+ const nextDescriptor = scenes[sceneIndex + 1]?.descriptor ?? undefined;
65
+ const isPreloaded = descriptors[route.key] === undefined;
62
66
 
63
- // On Fabric, when screen is frozen, animated and reanimated values are not updated
64
- // due to component being unmounted. To avoid this, we don't freeze the previous screen there
65
- const shouldFreeze = isFabric() ? !isPreloaded && !isFocused && !isBelowFocused : !isPreloaded && !isFocused;
66
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_screens.Screen, {
67
- isPreloaded: isPreloaded,
68
- index: sceneIndex,
69
- activeScreensLimit: activeScreensLimit,
70
- routeKey: route.key,
71
- routesLength: routes.length,
72
- shouldFreeze: shouldFreeze,
73
- freezeOnBlur: descriptor.options.freezeOnBlur,
74
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_screenTransition.ScreenTransitionProvider, {
75
- previous: previousDescriptor,
76
- current: descriptor,
77
- next: nextDescriptor,
78
- LifecycleController: _screenLifecycle.BlankStackScreenLifecycleController,
79
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(SceneView, {
80
- descriptor: descriptor
81
- }, route.key)
82
- })
83
- }, route.key);
84
- })
85
- })]
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() ? !isPreloaded && !isFocused && !isBelowFocused : !isPreloaded && !isFocused;
70
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_screens.Screen, {
71
+ isPreloaded: isPreloaded,
72
+ index: sceneIndex,
73
+ routeKey: route.key,
74
+ shouldFreeze: shouldFreeze,
75
+ freezeOnBlur: descriptor.options.freezeOnBlur,
76
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_screenTransition.ScreenTransitionProvider, {
77
+ previous: previousDescriptor,
78
+ current: descriptor,
79
+ next: nextDescriptor,
80
+ LifecycleController: _blankStackLifecycle.BlankStackScreenLifecycleController,
81
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(SceneView, {
82
+ descriptor: descriptor
83
+ }, route.key)
84
+ })
85
+ }, route.key);
86
+ })
87
+ })]
88
+ })
86
89
  })
87
90
  })
88
91
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_elements","require","_native","React","_interopRequireWildcard","_reactNative","_reactNativeGestureHandler","_reactNativeScreens","_screenLifecycle","_flags","_screenTransition","_withStackNavigation","_overlay","_screens","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","isFabric","global","SceneView","memo","descriptor","route","navigation","render","jsx","NavigationContext","Provider","value","children","jsxs","NavigationRouteContext","options","overlayMode","Overlay","Screen","StackView","exports","withStackNavigationProvider","activeScreensLimit","descriptors","focusedIndex","routes","scenes","shouldShowFloatOverlay","FlagsProvider","TRANSITIONS_ALWAYS_ON","GestureHandlerRootView","SafeAreaProviderCompat","Float","ScreenContainer","style","styles","container","map","scene","sceneIndex","isFocused","isBelowFocused","previousDescriptor","undefined","nextDescriptor","isPreloaded","key","shouldFreeze","index","routeKey","routesLength","length","freezeOnBlur","ScreenTransitionProvider","previous","current","next","LifecycleController","BlankStackScreenLifecycleController","StyleSheet","create","flex"],"sourceRoot":"../../../../src","sources":["blank-stack/components/stack-view.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_elements","require","_native","React","_interopRequireWildcard","_reactNative","_reactNativeGestureHandler","_reactNativeScreens","_blankStackLifecycle","_flags","_routes","_screenTransition","_withStackNavigation","_overlay","_screens","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","isFabric","global","SceneView","memo","descriptor","route","navigation","render","jsx","NavigationContext","Provider","value","children","jsxs","NavigationRouteContext","options","overlayMode","Overlay","Screen","StackView","exports","withStackNavigationProvider","descriptors","focusedIndex","routes","scenes","shouldShowFloatOverlay","routeKeys","useMemo","map","key","FlagsProvider","TRANSITIONS_ALWAYS_ON","RoutesProvider","GestureHandlerRootView","SafeAreaProviderCompat","Float","ScreenContainer","style","styles","container","scene","sceneIndex","isFocused","isBelowFocused","previousDescriptor","undefined","nextDescriptor","isPreloaded","shouldFreeze","index","routeKey","freezeOnBlur","ScreenTransitionProvider","previous","current","next","LifecycleController","BlankStackScreenLifecycleController","StyleSheet","create","flex"],"sourceRoot":"../../../../src","sources":["blank-stack/components/stack-view.tsx"],"mappings":"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","ignoreList":[]}
@@ -42,17 +42,18 @@ const {
42
42
  shouldShowFloatOverlay
43
43
  };
44
44
  }, [state.routes, state.descriptors]);
45
+ const value = (0, _react.useMemo)(() => ({
46
+ routes: state.routes,
47
+ focusedIndex: props.state.index,
48
+ descriptors: state.descriptors,
49
+ closingRouteKeysShared: closingRouteKeys.shared,
50
+ activeScreensLimit,
51
+ handleCloseRoute,
52
+ scenes,
53
+ shouldShowFloatOverlay
54
+ }), [state.routes, state.descriptors, props.state.index, closingRouteKeys.shared, activeScreensLimit, handleCloseRoute, scenes, shouldShowFloatOverlay]);
45
55
  return {
46
- value: {
47
- routes: state.routes,
48
- focusedIndex: props.state.index,
49
- descriptors: state.descriptors,
50
- closingRouteKeysShared: closingRouteKeys.shared,
51
- activeScreensLimit,
52
- handleCloseRoute,
53
- scenes,
54
- shouldShowFloatOverlay
55
- }
56
+ value
56
57
  };
57
58
  });
58
59
  exports.useStackNavigationContext = useStackNavigationContext;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_createProvider","_interopRequireDefault","_calculateActiveScreensLimit","_useStackNavigationState","e","__esModule","default","withStackNavigationProvider","useStackNavigationContext","createProvider","props","state","handleCloseRoute","closingRouteKeys","useStackNavigationState","scenes","activeScreensLimit","shouldShowFloatOverlay","useMemo","route","routes","descriptor","descriptors","key","push","options","overlayMode","overlayShown","calculateActiveScreensLimit","value","focusedIndex","index","closingRouteKeysShared","shared","exports"],"sourceRoot":"../../../../../src","sources":["blank-stack/utils/with-stack-navigation/index.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,4BAAA,GAAAH,OAAA;AACA,IAAAI,wBAAA,GAAAJ,OAAA;AAA6E,SAAAE,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAM7E,MAAM;EAAEG,2BAA2B;EAAEC;AAA0B,CAAC,GAC/D,IAAAC,uBAAc,EAAC,iBAAiB,CAAC,CAG9BC,KAAK,IAAK;EACZ,MAAM;IAAEC,KAAK;IAAEC,gBAAgB;IAAEC;EAAiB,CAAC,GAClD,IAAAC,gDAAuB,EAACJ,KAAK,CAAC;EAE/B,MAAM;IAAEK,MAAM;IAAEC,kBAAkB;IAAEC;EAAuB,CAAC,GAC3D,IAAAC,cAAO,EAAC,MAAM;IACb,MAAMH,MAAyB,GAAG,EAAE;IACpC,IAAIE,sBAAsB,GAAG,KAAK;IAElC,KAAK,MAAME,KAAK,IAAIR,KAAK,CAACS,MAAM,EAAE;MACjC,MAAMC,UAAU,GAAGV,KAAK,CAACW,WAAW,CAACH,KAAK,CAACI,GAAG,CAAC;MAC/CR,MAAM,CAACS,IAAI,CAAC;QAAEL,KAAK;QAAEE;MAAW,CAAC,CAAC;MAElC,IAAI,CAACJ,sBAAsB,EAAE;QAC5B,MAAMQ,OAAO,GAAGJ,UAAU,EAAEI,OAAO;QACnCR,sBAAsB,GACrBQ,OAAO,EAAEC,WAAW,KAAK,OAAO,IAChCD,OAAO,EAAEE,YAAY,KAAK,IAAI;MAChC;IACD;IAEA,OAAO;MACNZ,MAAM;MACNC,kBAAkB,EAAE,IAAAY,wDAA2B,EAC9CjB,KAAK,CAACS,MAAM,EACZT,KAAK,CAACW,WACP,CAAC;MACDL;IACD,CAAC;EACF,CAAC,EAAE,CAACN,KAAK,CAACS,MAAM,EAAET,KAAK,CAACW,WAAW,CAAC,CAAC;EAEtC,OAAO;IACNO,KAAK,EAAE;MACNT,MAAM,EAAET,KAAK,CAACS,MAAM;MACpBU,YAAY,EAAEpB,KAAK,CAACC,KAAK,CAACoB,KAAK;MAC/BT,WAAW,EAAEX,KAAK,CAACW,WAAW;MAC9BU,sBAAsB,EAAEnB,gBAAgB,CAACoB,MAAM;MAC/CjB,kBAAkB;MAClBJ,gBAAgB;MAChBG,MAAM;MACNE;IACD;EACD,CAAC;AACF,CAAC,CAAC;AAACiB,OAAA,CAAA1B,yBAAA,GAAAA,yBAAA;AAAA0B,OAAA,CAAA3B,2BAAA,GAAAA,2BAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_createProvider","_interopRequireDefault","_calculateActiveScreensLimit","_useStackNavigationState","e","__esModule","default","withStackNavigationProvider","useStackNavigationContext","createProvider","props","state","handleCloseRoute","closingRouteKeys","useStackNavigationState","scenes","activeScreensLimit","shouldShowFloatOverlay","useMemo","route","routes","descriptor","descriptors","key","push","options","overlayMode","overlayShown","calculateActiveScreensLimit","value","focusedIndex","index","closingRouteKeysShared","shared","exports"],"sourceRoot":"../../../../../src","sources":["blank-stack/utils/with-stack-navigation/index.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,4BAAA,GAAAH,OAAA;AACA,IAAAI,wBAAA,GAAAJ,OAAA;AAA6E,SAAAE,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAM7E,MAAM;EAAEG,2BAA2B;EAAEC;AAA0B,CAAC,GAC/D,IAAAC,uBAAc,EAAC,iBAAiB,CAAC,CAG9BC,KAAK,IAAK;EACZ,MAAM;IAAEC,KAAK;IAAEC,gBAAgB;IAAEC;EAAiB,CAAC,GAClD,IAAAC,gDAAuB,EAACJ,KAAK,CAAC;EAE/B,MAAM;IAAEK,MAAM;IAAEC,kBAAkB;IAAEC;EAAuB,CAAC,GAC3D,IAAAC,cAAO,EAAC,MAAM;IACb,MAAMH,MAAyB,GAAG,EAAE;IACpC,IAAIE,sBAAsB,GAAG,KAAK;IAElC,KAAK,MAAME,KAAK,IAAIR,KAAK,CAACS,MAAM,EAAE;MACjC,MAAMC,UAAU,GAAGV,KAAK,CAACW,WAAW,CAACH,KAAK,CAACI,GAAG,CAAC;MAC/CR,MAAM,CAACS,IAAI,CAAC;QAAEL,KAAK;QAAEE;MAAW,CAAC,CAAC;MAElC,IAAI,CAACJ,sBAAsB,EAAE;QAC5B,MAAMQ,OAAO,GAAGJ,UAAU,EAAEI,OAAO;QACnCR,sBAAsB,GACrBQ,OAAO,EAAEC,WAAW,KAAK,OAAO,IAChCD,OAAO,EAAEE,YAAY,KAAK,IAAI;MAChC;IACD;IAEA,OAAO;MACNZ,MAAM;MACNC,kBAAkB,EAAE,IAAAY,wDAA2B,EAC9CjB,KAAK,CAACS,MAAM,EACZT,KAAK,CAACW,WACP,CAAC;MACDL;IACD,CAAC;EACF,CAAC,EAAE,CAACN,KAAK,CAACS,MAAM,EAAET,KAAK,CAACW,WAAW,CAAC,CAAC;EAEtC,MAAMO,KAAK,GAAG,IAAAX,cAAO,EACpB,OAAO;IACNE,MAAM,EAAET,KAAK,CAACS,MAAM;IACpBU,YAAY,EAAEpB,KAAK,CAACC,KAAK,CAACoB,KAAK;IAC/BT,WAAW,EAAEX,KAAK,CAACW,WAAW;IAC9BU,sBAAsB,EAAEnB,gBAAgB,CAACoB,MAAM;IAC/CjB,kBAAkB;IAClBJ,gBAAgB;IAChBG,MAAM;IACNE;EACD,CAAC,CAAC,EACF,CACCN,KAAK,CAACS,MAAM,EACZT,KAAK,CAACW,WAAW,EACjBZ,KAAK,CAACC,KAAK,CAACoB,KAAK,EACjBlB,gBAAgB,CAACoB,MAAM,EACvBjB,kBAAkB,EAClBJ,gBAAgB,EAChBG,MAAM,EACNE,sBAAsB,CAExB,CAAC;EAED,OAAO;IACNY;EACD,CAAC;AACF,CAAC,CAAC;AAACK,OAAA,CAAA1B,yBAAA,GAAAA,yBAAA;AAAA0B,OAAA,CAAA3B,2BAAA,GAAAA,2BAAA","ignoreList":[]}
@@ -11,7 +11,8 @@ var _reactNative = require("react-native");
11
11
  var _reactNativeGestureHandler = require("react-native-gesture-handler");
12
12
  var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
13
13
  var _reactNativeScreens = require("react-native-screens");
14
- var _screenLifecycle = require("../../shared/components/controllers/screen-lifecycle");
14
+ var _nativeStackLifecycle = require("../../shared/components/controllers/native-stack-lifecycle");
15
+ var _routes = require("../../shared/providers/routes.provider");
15
16
  var _screenTransition = require("../../shared/providers/screen-transition.provider");
16
17
  var _debounce = require("../utils/debounce");
17
18
  var _getModalRoutesKeys = require("../utils/getModalRoutesKeys");
@@ -332,7 +333,7 @@ const SceneView = ({
332
333
  previous: previousDescriptor,
333
334
  current: descriptor,
334
335
  next: nextDescriptor,
335
- LifecycleController: _screenLifecycle.NativeStackScreenLifecycleController,
336
+ LifecycleController: _nativeStackLifecycle.NativeStackScreenLifecycleController,
336
337
  children: render()
337
338
  })
338
339
  })
@@ -359,108 +360,114 @@ function NativeStackView({
359
360
  return acc;
360
361
  }, {});
361
362
  const routes = state.routes.concat(state.preloadedRoutes);
362
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.GestureHandlerRootView, {
363
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_elements.SafeAreaProviderCompat, {
364
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeScreens.ScreenStack, {
365
- style: styles.container,
366
- children: routes.map((route, index) => {
367
- const descriptor = descriptors[route.key] ?? preloadedDescriptors[route.key];
368
- const isFocused = state.index === index;
369
- const isBelowFocused = state.index - 1 === index;
370
- const previousKey = state.routes[index - 1]?.key;
371
- const nextKey = state.routes[index + 1]?.key;
372
- const previousDescriptor = previousKey ? descriptors[previousKey] : undefined;
373
- const nextDescriptor = nextKey ? descriptors[nextKey] : undefined;
374
- const isModal = modalRouteKeys.includes(route.key);
375
- const isPreloaded = preloadedDescriptors[route.key] !== undefined && descriptors[route.key] === undefined;
376
363
 
377
- // On Fabric, when screen is frozen, animated and reanimated values are not updated
378
- // due to component being unmounted. To avoid this, we don't freeze the previous screen there
379
- const shouldFreeze = isFabric() ? !isPreloaded && !isFocused && !isBelowFocused : !isPreloaded && !isFocused;
380
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(SceneView, {
381
- index: index,
382
- focused: isFocused,
383
- shouldFreeze: shouldFreeze,
384
- descriptor: descriptor,
385
- previousDescriptor: previousDescriptor,
386
- nextDescriptor: nextDescriptor,
387
- isPresentationModal: isModal,
388
- isPreloaded: isPreloaded,
389
- onWillDisappear: () => {
390
- navigation.emit({
391
- type: "transitionStart",
392
- data: {
393
- closing: true
394
- },
395
- target: route.key
396
- });
397
- },
398
- onWillAppear: () => {
399
- navigation.emit({
400
- type: "transitionStart",
401
- data: {
402
- closing: false
403
- },
404
- target: route.key
405
- });
406
- },
407
- onAppear: () => {
408
- navigation.emit({
409
- type: "transitionEnd",
410
- data: {
411
- closing: false
412
- },
413
- target: route.key
414
- });
415
- },
416
- onDisappear: () => {
417
- navigation.emit({
418
- type: "transitionEnd",
419
- data: {
420
- closing: true
421
- },
422
- target: route.key
423
- });
424
- },
425
- onDismissed: event => {
426
- navigation.dispatch({
427
- ..._native.StackActions.pop(event.nativeEvent.dismissCount),
428
- source: route.key,
429
- target: state.key
430
- });
431
- setNextDismissedKey(route.key);
432
- },
433
- onHeaderBackButtonClicked: () => {
434
- navigation.dispatch({
435
- ..._native.StackActions.pop(),
436
- source: route.key,
437
- target: state.key
438
- });
439
- },
440
- onNativeDismissCancelled: event => {
441
- navigation.dispatch({
442
- ..._native.StackActions.pop(event.nativeEvent.dismissCount),
443
- source: route.key,
444
- target: state.key
445
- });
446
- },
447
- onGestureCancel: () => {
448
- navigation.emit({
449
- type: "gestureCancel",
450
- target: route.key
451
- });
452
- },
453
- onSheetDetentChanged: event => {
454
- navigation.emit({
455
- type: "sheetDetentChange",
456
- target: route.key,
457
- data: {
458
- index: event.nativeEvent.index,
459
- stable: event.nativeEvent.isStable
460
- }
461
- });
462
- }
463
- }, route.key);
364
+ // Memoize route keys array for RoutesProvider
365
+ const routeKeys = React.useMemo(() => routes.map(route => route.key), [routes]);
366
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_routes.RoutesProvider, {
367
+ routeKeys: routeKeys,
368
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.GestureHandlerRootView, {
369
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_elements.SafeAreaProviderCompat, {
370
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeScreens.ScreenStack, {
371
+ style: styles.container,
372
+ children: routes.map((route, index) => {
373
+ const descriptor = descriptors[route.key] ?? preloadedDescriptors[route.key];
374
+ const isFocused = state.index === index;
375
+ const isBelowFocused = state.index - 1 === index;
376
+ const previousKey = state.routes[index - 1]?.key;
377
+ const nextKey = state.routes[index + 1]?.key;
378
+ const previousDescriptor = previousKey ? descriptors[previousKey] : undefined;
379
+ const nextDescriptor = nextKey ? descriptors[nextKey] : undefined;
380
+ const isModal = modalRouteKeys.includes(route.key);
381
+ const isPreloaded = preloadedDescriptors[route.key] !== undefined && descriptors[route.key] === undefined;
382
+
383
+ // On Fabric, when screen is frozen, animated and reanimated values are not updated
384
+ // due to component being unmounted. To avoid this, we don't freeze the previous screen there
385
+ const shouldFreeze = isFabric() ? !isPreloaded && !isFocused && !isBelowFocused : !isPreloaded && !isFocused;
386
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(SceneView, {
387
+ index: index,
388
+ focused: isFocused,
389
+ shouldFreeze: shouldFreeze,
390
+ descriptor: descriptor,
391
+ previousDescriptor: previousDescriptor,
392
+ nextDescriptor: nextDescriptor,
393
+ isPresentationModal: isModal,
394
+ isPreloaded: isPreloaded,
395
+ onWillDisappear: () => {
396
+ navigation.emit({
397
+ type: "transitionStart",
398
+ data: {
399
+ closing: true
400
+ },
401
+ target: route.key
402
+ });
403
+ },
404
+ onWillAppear: () => {
405
+ navigation.emit({
406
+ type: "transitionStart",
407
+ data: {
408
+ closing: false
409
+ },
410
+ target: route.key
411
+ });
412
+ },
413
+ onAppear: () => {
414
+ navigation.emit({
415
+ type: "transitionEnd",
416
+ data: {
417
+ closing: false
418
+ },
419
+ target: route.key
420
+ });
421
+ },
422
+ onDisappear: () => {
423
+ navigation.emit({
424
+ type: "transitionEnd",
425
+ data: {
426
+ closing: true
427
+ },
428
+ target: route.key
429
+ });
430
+ },
431
+ onDismissed: event => {
432
+ navigation.dispatch({
433
+ ..._native.StackActions.pop(event.nativeEvent.dismissCount),
434
+ source: route.key,
435
+ target: state.key
436
+ });
437
+ setNextDismissedKey(route.key);
438
+ },
439
+ onHeaderBackButtonClicked: () => {
440
+ navigation.dispatch({
441
+ ..._native.StackActions.pop(),
442
+ source: route.key,
443
+ target: state.key
444
+ });
445
+ },
446
+ onNativeDismissCancelled: event => {
447
+ navigation.dispatch({
448
+ ..._native.StackActions.pop(event.nativeEvent.dismissCount),
449
+ source: route.key,
450
+ target: state.key
451
+ });
452
+ },
453
+ onGestureCancel: () => {
454
+ navigation.emit({
455
+ type: "gestureCancel",
456
+ target: route.key
457
+ });
458
+ },
459
+ onSheetDetentChanged: event => {
460
+ navigation.emit({
461
+ type: "sheetDetentChange",
462
+ target: route.key,
463
+ data: {
464
+ index: event.nativeEvent.index,
465
+ stable: event.nativeEvent.isStable
466
+ }
467
+ });
468
+ }
469
+ }, route.key);
470
+ })
464
471
  })
465
472
  })
466
473
  })