react-native-screen-transitions 3.0.0-beta.3 → 3.0.0-beta.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 (52) hide show
  1. package/lib/commonjs/blank-stack/components/Overlay.js +19 -5
  2. package/lib/commonjs/blank-stack/components/Overlay.js.map +1 -1
  3. package/lib/commonjs/shared/components/controllers/screen-lifecycle.js +11 -5
  4. package/lib/commonjs/shared/components/controllers/screen-lifecycle.js.map +1 -1
  5. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js +40 -28
  6. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  7. package/lib/commonjs/shared/hooks/use-derived-value-state.js +33 -0
  8. package/lib/commonjs/shared/hooks/use-derived-value-state.js.map +1 -0
  9. package/lib/commonjs/shared/providers/gestures.js +6 -3
  10. package/lib/commonjs/shared/providers/gestures.js.map +1 -1
  11. package/lib/commonjs/shared/providers/utils/create-provider.js +41 -29
  12. package/lib/commonjs/shared/providers/utils/create-provider.js.map +1 -1
  13. package/lib/module/blank-stack/components/Overlay.js +19 -5
  14. package/lib/module/blank-stack/components/Overlay.js.map +1 -1
  15. package/lib/module/shared/components/controllers/screen-lifecycle.js +11 -5
  16. package/lib/module/shared/components/controllers/screen-lifecycle.js.map +1 -1
  17. package/lib/module/shared/hooks/gestures/use-build-gestures.js +42 -30
  18. package/lib/module/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  19. package/lib/module/shared/hooks/use-derived-value-state.js +30 -0
  20. package/lib/module/shared/hooks/use-derived-value-state.js.map +1 -0
  21. package/lib/module/shared/providers/gestures.js +6 -3
  22. package/lib/module/shared/providers/gestures.js.map +1 -1
  23. package/lib/module/shared/providers/utils/create-provider.js +40 -27
  24. package/lib/module/shared/providers/utils/create-provider.js.map +1 -1
  25. package/lib/typescript/blank-stack/components/Overlay.d.ts.map +1 -1
  26. package/lib/typescript/blank-stack/types.d.ts +4 -0
  27. package/lib/typescript/blank-stack/types.d.ts.map +1 -1
  28. package/lib/typescript/shared/components/controllers/screen-lifecycle.d.ts.map +1 -1
  29. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts +5 -2
  30. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts.map +1 -1
  31. package/lib/typescript/shared/hooks/use-derived-value-state.d.ts +9 -0
  32. package/lib/typescript/shared/hooks/use-derived-value-state.d.ts.map +1 -0
  33. package/lib/typescript/shared/providers/gestures.d.ts +4 -2
  34. package/lib/typescript/shared/providers/gestures.d.ts.map +1 -1
  35. package/lib/typescript/shared/providers/utils/create-provider.d.ts +11 -29
  36. package/lib/typescript/shared/providers/utils/create-provider.d.ts.map +1 -1
  37. package/package.json +1 -1
  38. package/src/blank-stack/components/Overlay.tsx +24 -4
  39. package/src/blank-stack/types.ts +4 -0
  40. package/src/shared/components/controllers/screen-lifecycle.tsx +10 -6
  41. package/src/shared/hooks/gestures/use-build-gestures.tsx +63 -35
  42. package/src/shared/hooks/use-derived-value-state.ts +41 -0
  43. package/src/shared/providers/gestures.tsx +17 -8
  44. package/src/shared/providers/utils/create-provider.tsx +77 -0
  45. package/lib/commonjs/shared/stores/navigator-dismiss-state.js +0 -23
  46. package/lib/commonjs/shared/stores/navigator-dismiss-state.js.map +0 -1
  47. package/lib/module/shared/stores/navigator-dismiss-state.js +0 -19
  48. package/lib/module/shared/stores/navigator-dismiss-state.js.map +0 -1
  49. package/lib/typescript/shared/stores/navigator-dismiss-state.d.ts +0 -7
  50. package/lib/typescript/shared/stores/navigator-dismiss-state.d.ts.map +0 -1
  51. package/src/shared/providers/utils/create-provider.ts +0 -64
  52. package/src/shared/stores/navigator-dismiss-state.ts +0 -17
@@ -8,10 +8,10 @@ var _native = require("@react-navigation/native");
8
8
  var _react = require("react");
9
9
  var _reactNative = require("react-native");
10
10
  var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
11
+ var _useScreenAnimation = require("../../shared/hooks/animation/use-screen-animation");
11
12
  var _keys = require("../../shared/providers/keys");
12
13
  var _useOverlayAnimation = require("../hooks/use-overlay-animation");
13
14
  var _withStackNavigation = require("../utils/with-stack-navigation");
14
- var _useScreenAnimation = require("../../shared/hooks/animation/use-screen-animation");
15
15
  var _jsxRuntime = require("react/jsx-runtime");
16
16
  const getActiveFloatOverlay = (scenes, index) => {
17
17
  if (scenes.length === 0) {
@@ -45,12 +45,27 @@ const OverlayHost = ({
45
45
  overlayAnimation,
46
46
  optimisticActiveIndex
47
47
  } = (0, _useOverlayAnimation.useOverlayAnimation)();
48
+ const {
49
+ scenes
50
+ } = (0, _withStackNavigation.useStackNavigationContext)();
51
+ const overlaySceneIndex = (0, _react.useMemo)(() => {
52
+ return scenes.findIndex(stackScene => stackScene.route.key === scene.route.key);
53
+ }, [scenes, scene.route.key]);
54
+ const focusedRoute = (0, _react.useMemo)(() => {
55
+ if (overlaySceneIndex === -1) {
56
+ return scene.route;
57
+ }
58
+ const maxOffset = Math.max(scenes.length - overlaySceneIndex - 1, 0);
59
+ const normalizedIndex = Math.min(Math.max(optimisticActiveIndex, 0), maxOffset);
60
+ return scenes[overlaySceneIndex + normalizedIndex]?.route ?? scene.route;
61
+ }, [overlaySceneIndex, optimisticActiveIndex, scenes, scene.route]);
48
62
  const screenAnimation = (0, _useScreenAnimation.useScreenAnimation)();
49
63
  if (!OverlayComponent) {
50
64
  return null;
51
65
  }
52
66
  const overlayProps = {
53
67
  route: scene.route,
68
+ focusedRoute,
54
69
  navigation: scene.descriptor.navigation,
55
70
  overlayAnimation,
56
71
  screenAnimation,
@@ -59,7 +74,9 @@ const OverlayHost = ({
59
74
  };
60
75
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
61
76
  pointerEvents: "box-none",
62
- style: [styles.container, isFloating ? styles.floating : null, styles.absolute],
77
+ style: [styles.container, isFloating ? styles.floating : {
78
+ zIndex: 1
79
+ }, styles.absolute],
63
80
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_native.NavigationContext.Provider, {
64
81
  value: scene.descriptor.navigation,
65
82
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_native.NavigationRouteContext.Provider, {
@@ -102,9 +119,6 @@ const FloatOverlay = () => {
102
119
  });
103
120
  };
104
121
  const ScreenOverlay = () => {
105
- const {
106
- focusedIndex
107
- } = (0, _withStackNavigation.useStackNavigationContext)();
108
122
  const {
109
123
  current
110
124
  } = (0, _keys.useKeys)();
@@ -1 +1 @@
1
- {"version":3,"names":["_native","require","_react","_reactNative","_reactNativeSafeAreaContext","_keys","_useOverlayAnimation","_withStackNavigation","_useScreenAnimation","_jsxRuntime","getActiveFloatOverlay","scenes","index","length","startIndex","Math","max","i","scene","options","descriptor","overlayMode","overlayShown","overlayIndex","OverlayHost","isFloating","insets","useSafeAreaInsets","OverlayComponent","overlay","overlayAnimation","optimisticActiveIndex","useOverlayAnimation","screenAnimation","useScreenAnimation","overlayProps","route","navigation","focusedIndex","jsx","Animated","View","pointerEvents","style","styles","container","floating","absolute","children","NavigationContext","Provider","value","NavigationRouteContext","FloatOverlay","useStackNavigationContext","activeOverlay","useMemo","previous","current","next","KeysProvider","ScreenOverlay","useKeys","Overlay","exports","Float","Screen","StyleSheet","create","absoluteFillObject","zIndex","flex"],"sourceRoot":"../../../../src","sources":["blank-stack/components/Overlay.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_native","require","_react","_reactNative","_reactNativeSafeAreaContext","_useScreenAnimation","_keys","_useOverlayAnimation","_withStackNavigation","_jsxRuntime","getActiveFloatOverlay","scenes","index","length","startIndex","Math","max","i","scene","options","descriptor","overlayMode","overlayShown","overlayIndex","OverlayHost","isFloating","insets","useSafeAreaInsets","OverlayComponent","overlay","overlayAnimation","optimisticActiveIndex","useOverlayAnimation","useStackNavigationContext","overlaySceneIndex","useMemo","findIndex","stackScene","route","key","focusedRoute","maxOffset","normalizedIndex","min","screenAnimation","useScreenAnimation","overlayProps","navigation","focusedIndex","jsx","Animated","View","pointerEvents","style","styles","container","floating","zIndex","absolute","children","NavigationContext","Provider","value","NavigationRouteContext","FloatOverlay","activeOverlay","previous","current","next","KeysProvider","ScreenOverlay","useKeys","Overlay","exports","Float","Screen","StyleSheet","create","absoluteFillObject","flex"],"sourceRoot":"../../../../src","sources":["blank-stack/components/Overlay.tsx"],"mappings":"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","ignoreList":[]}
@@ -8,10 +8,11 @@ var _react = require("react");
8
8
  var _reactNativeReanimated = require("react-native-reanimated");
9
9
  var _withStackNavigation = require("../../../blank-stack/utils/with-stack-navigation");
10
10
  var _useParentGestureRegistry = require("../../hooks/gestures/use-parent-gesture-registry");
11
+ var _useDerivedValueState = require("../../hooks/use-derived-value-state");
11
12
  var _useStableCallback = _interopRequireDefault(require("../../hooks/use-stable-callback"));
13
+ var _gestures = require("../../providers/gestures");
12
14
  var _keys = require("../../providers/keys");
13
15
  var _animationStore = require("../../stores/animation-store");
14
- var _navigatorDismissState = require("../../stores/navigator-dismiss-state");
15
16
  var _resetStoresForScreen = require("../../stores/utils/reset-stores-for-screen");
16
17
  var _startScreenTransition = require("../../utils/animation/start-screen-transition");
17
18
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -24,16 +25,21 @@ const NativeStackScreenLifecycleController = ({
24
25
  const {
25
26
  current
26
27
  } = (0, _keys.useKeys)();
28
+ const {
29
+ parentContext
30
+ } = (0, _gestures.useGestureContext)();
31
+ const isParentDismissingViaGesture = (0, _useDerivedValueState.useDerivedValueState)(() => {
32
+ "worklet";
33
+
34
+ return parentContext?.gestureAnimationValues.isDismissing?.value ?? false;
35
+ });
27
36
  const animations = _animationStore.AnimationStore.getAll(current.route.key);
28
37
  const handleBeforeRemove = (0, _useStableCallback.default)(e => {
29
- const key = current.navigation.getParent()?.getState().key;
30
- const requestedDismissOnNavigator = _navigatorDismissState.NavigatorDismissState.get(key);
31
38
  const isEnabled = current.options.enableTransitions;
32
- const isRequestedDismissOnNavigator = requestedDismissOnNavigator;
33
39
  const isFirstScreen = current.navigation.getState().index === 0;
34
40
 
35
41
  // If transitions are disabled, or the dismissal was on the local root, or this is the first screen of the stack, reset the stores
36
- if (!isEnabled || isRequestedDismissOnNavigator || isFirstScreen) {
42
+ if (!isEnabled || isParentDismissingViaGesture || isFirstScreen) {
37
43
  (0, _resetStoresForScreen.resetStoresForScreen)(current);
38
44
  return;
39
45
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNativeReanimated","_withStackNavigation","_useParentGestureRegistry","_useStableCallback","_interopRequireDefault","_keys","_animationStore","_navigatorDismissState","_resetStoresForScreen","_startScreenTransition","e","__esModule","default","NativeStackScreenLifecycleController","children","current","useKeys","animations","AnimationStore","getAll","route","key","handleBeforeRemove","useStableCallback","navigation","getParent","getState","requestedDismissOnNavigator","NavigatorDismissState","get","isEnabled","options","enableTransitions","isRequestedDismissOnNavigator","isFirstScreen","index","resetStoresForScreen","preventDefault","onAnimationFinish","finished","dispatch","data","action","requestAnimationFrame","startScreenTransition","target","spec","transitionSpec","handleInitialize","useEffect","unsubscribe","addListener","useLayoutEffect","useParentGestureRegistry","exports","BlankStackScreenLifecycleController","handleCloseRoute","closingRouteKeysShared","useStackNavigationContext","handleCloseEnd","useAnimatedReaction","keys","value","includes"],"sourceRoot":"../../../../../src","sources":["shared/components/controllers/screen-lifecycle.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNativeReanimated","_withStackNavigation","_useParentGestureRegistry","_useDerivedValueState","_useStableCallback","_interopRequireDefault","_gestures","_keys","_animationStore","_resetStoresForScreen","_startScreenTransition","e","__esModule","default","NativeStackScreenLifecycleController","children","current","useKeys","parentContext","useGestureContext","isParentDismissingViaGesture","useDerivedValueState","gestureAnimationValues","isDismissing","value","animations","AnimationStore","getAll","route","key","handleBeforeRemove","useStableCallback","isEnabled","options","enableTransitions","isFirstScreen","navigation","getState","index","resetStoresForScreen","preventDefault","onAnimationFinish","finished","dispatch","data","action","requestAnimationFrame","startScreenTransition","target","spec","transitionSpec","handleInitialize","useEffect","unsubscribe","addListener","useLayoutEffect","useParentGestureRegistry","exports","BlankStackScreenLifecycleController","handleCloseRoute","closingRouteKeysShared","useStackNavigationContext","handleCloseEnd","useAnimatedReaction","keys","includes"],"sourceRoot":"../../../../../src","sources":["shared/components/controllers/screen-lifecycle.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useBuildGestures = void 0;
7
+ var _native = require("@react-navigation/native");
7
8
  var _react = require("react");
8
9
  var _reactNative = require("react-native");
9
10
  var _reactNativeGestureHandler = require("react-native-gesture-handler");
@@ -12,7 +13,6 @@ var _constants = require("../../constants");
12
13
  var _keys = require("../../providers/keys");
13
14
  var _animationStore = require("../../stores/animation-store");
14
15
  var _gestureStore = require("../../stores/gesture-store");
15
- var _navigatorDismissState = require("../../stores/navigator-dismiss-state");
16
16
  var _gesture = require("../../types/gesture");
17
17
  var _startScreenTransition = require("../../utils/animation/start-screen-transition");
18
18
  var _checkGestureActivation = require("../../utils/gesture/check-gesture-activation");
@@ -20,11 +20,11 @@ var _determineDismissal = require("../../utils/gesture/determine-dismissal");
20
20
  var _mapGestureToProgress = require("../../utils/gesture/map-gesture-to-progress");
21
21
  var _resetGestureValues = require("../../utils/gesture/reset-gesture-values");
22
22
  var _velocity = require("../../utils/gesture/velocity");
23
- var _useStableCallback = _interopRequireDefault(require("../use-stable-callback"));
24
23
  var _useStableCallbackValue = _interopRequireDefault(require("../use-stable-callback-value"));
25
24
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
26
25
  const useBuildGestures = ({
27
- scrollConfig
26
+ scrollConfig,
27
+ parentContext
28
28
  }) => {
29
29
  const dimensions = (0, _reactNative.useWindowDimensions)();
30
30
  const {
@@ -35,7 +35,7 @@ const useBuildGestures = ({
35
35
  y: 0
36
36
  });
37
37
  const gestureOffsetState = (0, _reactNativeReanimated.useSharedValue)(_gesture.GestureOffsetState.PENDING);
38
- const gestures = _gestureStore.GestureStore.getRouteGestures(current.route.key);
38
+ const gestureAnimationValues = _gestureStore.GestureStore.getRouteGestures(current.route.key);
39
39
  const animations = _animationStore.AnimationStore.getAll(current.route.key);
40
40
  const {
41
41
  gestureDirection = _constants.DEFAULT_GESTURE_DIRECTION,
@@ -56,15 +56,23 @@ const useBuildGestures = ({
56
56
  horizontalInverted: directionsArray.includes("horizontal-inverted") || isBidirectional
57
57
  };
58
58
  }, [gestureDirection]);
59
- const setNavigatorDismissal = (0, _useStableCallback.default)(() => {
60
- const key = current.navigation.getState().key;
61
- _navigatorDismissState.NavigatorDismissState.set(key, true);
62
- });
63
- const handleDismiss = (0, _useStableCallback.default)(() => {
64
- const key = current.navigation.getState().key;
65
- current.navigation.goBack();
66
- _navigatorDismissState.NavigatorDismissState.remove(key);
67
- });
59
+ const handleDismiss = (0, _react.useCallback)(() => {
60
+ // If an ancestor navigator is already dismissing, skip this dismiss to
61
+ // avoid racing with the parent
62
+ if (parentContext?.gestureAnimationValues.isDismissing?.value) {
63
+ return;
64
+ }
65
+ const state = current.navigation.getState();
66
+ const routeStillPresent = state.routes.some(route => route.key === current.route.key);
67
+ if (!routeStillPresent) {
68
+ return;
69
+ }
70
+ current.navigation.dispatch({
71
+ ..._native.StackActions.pop(),
72
+ source: current.route.key,
73
+ target: state.key
74
+ });
75
+ }, [current, parentContext]);
68
76
  const onTouchesDown = (0, _useStableCallbackValue.default)(e => {
69
77
  "worklet";
70
78
 
@@ -78,6 +86,12 @@ const useBuildGestures = ({
78
86
  const onTouchesMove = (0, _useStableCallbackValue.default)((e, manager) => {
79
87
  "worklet";
80
88
 
89
+ // If an ancestor navigator is already dismissing via gesture, block new gestures here.
90
+ if (parentContext?.gestureAnimationValues.isDismissing?.value) {
91
+ gestureOffsetState.value = _gesture.GestureOffsetState.FAILED;
92
+ manager.fail();
93
+ return;
94
+ }
81
95
  const touch = e.changedTouches[0];
82
96
  const {
83
97
  isSwipingDown,
@@ -100,7 +114,7 @@ const useBuildGestures = ({
100
114
  }
101
115
 
102
116
  // Keep pending until thresholds are met; no eager activation.
103
- if (gestures.isDragging?.value) {
117
+ if (gestureAnimationValues.isDragging?.value) {
104
118
  manager.activate();
105
119
  return;
106
120
  }
@@ -132,8 +146,8 @@ const useBuildGestures = ({
132
146
  manager.fail();
133
147
  return;
134
148
  }
135
- if (shouldActivate && gestureOffsetState.value === _gesture.GestureOffsetState.PASSED && !gestures.isDismissing?.value) {
136
- gestures.direction.value = activatedDirection;
149
+ if (shouldActivate && gestureOffsetState.value === _gesture.GestureOffsetState.PASSED && !gestureAnimationValues.isDismissing?.value) {
150
+ gestureAnimationValues.direction.value = activatedDirection;
137
151
  manager.activate();
138
152
  return;
139
153
  }
@@ -141,8 +155,8 @@ const useBuildGestures = ({
141
155
  const onStart = (0, _useStableCallbackValue.default)(() => {
142
156
  "worklet";
143
157
 
144
- gestures.isDragging.value = 1;
145
- gestures.isDismissing.value = 0;
158
+ gestureAnimationValues.isDragging.value = 1;
159
+ gestureAnimationValues.isDismissing.value = 0;
146
160
  });
147
161
  const onUpdate = (0, _useStableCallbackValue.default)(event => {
148
162
  "worklet";
@@ -156,10 +170,10 @@ const useBuildGestures = ({
156
170
  width,
157
171
  height
158
172
  } = dimensions;
159
- gestures.x.value = translationX;
160
- gestures.y.value = translationY;
161
- gestures.normalizedX.value = Math.max(-1, Math.min(1, translationX / width));
162
- gestures.normalizedY.value = Math.max(-1, Math.min(1, translationY / height));
173
+ gestureAnimationValues.x.value = translationX;
174
+ gestureAnimationValues.y.value = translationY;
175
+ gestureAnimationValues.normalizedX.value = Math.max(-1, Math.min(1, translationX / width));
176
+ gestureAnimationValues.normalizedY.value = Math.max(-1, Math.min(1, translationY / height));
163
177
  let maxProgress = 0;
164
178
  const allowedDown = directions.vertical;
165
179
  const allowedUp = directions.verticalInverted;
@@ -200,14 +214,11 @@ const useBuildGestures = ({
200
214
  const spec = shouldDismiss ? transitionSpec?.close : transitionSpec?.open;
201
215
  (0, _resetGestureValues.resetGestureValues)({
202
216
  spec,
203
- gestures,
217
+ gestures: gestureAnimationValues,
204
218
  shouldDismiss,
205
219
  event,
206
220
  dimensions
207
221
  });
208
- if (shouldDismiss) {
209
- (0, _reactNativeReanimated.runOnJS)(setNavigatorDismissal)();
210
- }
211
222
  const initialVelocity = _velocity.velocity.calculateProgressVelocity({
212
223
  animations,
213
224
  shouldDismiss,
@@ -228,9 +239,10 @@ const useBuildGestures = ({
228
239
  const panGesture = _reactNativeGestureHandler.Gesture.Pan().enabled(gestureEnabled).manualActivation(true).onTouchesDown(onTouchesDown).onTouchesMove(onTouchesMove).onStart(onStart).onUpdate(onUpdate).onEnd(onEnd).blocksExternalGesture(nativeGesture);
229
240
  return {
230
241
  panGesture,
231
- nativeGesture
242
+ nativeGesture,
243
+ gestureAnimationValues
232
244
  };
233
- }, [gestureEnabled, onTouchesDown, onTouchesMove, onStart, onUpdate, onEnd]);
245
+ }, [gestureEnabled, onTouchesDown, onTouchesMove, onStart, onUpdate, onEnd, gestureAnimationValues]);
234
246
  };
235
247
  exports.useBuildGestures = useBuildGestures;
236
248
  //# sourceMappingURL=use-build-gestures.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_constants","_keys","_animationStore","_gestureStore","_navigatorDismissState","_gesture","_startScreenTransition","_checkGestureActivation","_determineDismissal","_mapGestureToProgress","_resetGestureValues","_velocity","_useStableCallback","_interopRequireDefault","_useStableCallbackValue","e","__esModule","default","useBuildGestures","scrollConfig","dimensions","useWindowDimensions","current","useKeys","initialTouch","useSharedValue","x","y","gestureOffsetState","GestureOffsetState","PENDING","gestures","GestureStore","getRouteGestures","route","key","animations","AnimationStore","getAll","gestureDirection","DEFAULT_GESTURE_DIRECTION","gestureEnabled","DEFAULT_GESTURE_ENABLED","gestureVelocityImpact","GESTURE_VELOCITY_IMPACT","gestureDrivesProgress","DEFAULT_GESTURE_DRIVES_PROGRESS","gestureActivationArea","DEFAULT_GESTURE_ACTIVATION_AREA","gestureResponseDistance","transitionSpec","options","directions","useMemo","directionsArray","Array","isArray","isBidirectional","includes","vertical","verticalInverted","horizontal","horizontalInverted","setNavigatorDismissal","useStableCallback","navigation","getState","NavigatorDismissState","set","handleDismiss","goBack","remove","onTouchesDown","useStableCallbackValue","firstTouch","changedTouches","value","onTouchesMove","manager","touch","isSwipingDown","isSwipingUp","isSwipingRight","isSwipingLeft","applyOffsetRules","activationArea","responseDistance","FAILED","fail","isDragging","activate","maxScrollY","contentHeight","layoutHeight","maxScrollX","contentWidth","layoutWidth","recognizedDirection","scrollCfg","shouldActivate","activatedDirection","PASSED","isDismissing","direction","onStart","onUpdate","event","gestureProgress","translationX","translationY","width","height","normalizedX","Math","max","min","normalizedY","maxProgress","allowedDown","allowedUp","allowedRight","allowedLeft","currentProgress","mapGestureToProgress","progress","onEnd","shouldDismiss","determineDismissal","spec","close","open","resetGestureValues","runOnJS","initialVelocity","velocity","calculateProgressVelocity","startScreenTransition","target","onAnimationFinish","undefined","nativeGesture","Gesture","Native","panGesture","Pan","enabled","manualActivation","blocksExternalGesture","exports"],"sourceRoot":"../../../../../src","sources":["shared/hooks/gestures/use-build-gestures.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_native","require","_react","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_constants","_keys","_animationStore","_gestureStore","_gesture","_startScreenTransition","_checkGestureActivation","_determineDismissal","_mapGestureToProgress","_resetGestureValues","_velocity","_useStableCallbackValue","_interopRequireDefault","e","__esModule","default","useBuildGestures","scrollConfig","parentContext","dimensions","useWindowDimensions","current","useKeys","initialTouch","useSharedValue","x","y","gestureOffsetState","GestureOffsetState","PENDING","gestureAnimationValues","GestureStore","getRouteGestures","route","key","animations","AnimationStore","getAll","gestureDirection","DEFAULT_GESTURE_DIRECTION","gestureEnabled","DEFAULT_GESTURE_ENABLED","gestureVelocityImpact","GESTURE_VELOCITY_IMPACT","gestureDrivesProgress","DEFAULT_GESTURE_DRIVES_PROGRESS","gestureActivationArea","DEFAULT_GESTURE_ACTIVATION_AREA","gestureResponseDistance","transitionSpec","options","directions","useMemo","directionsArray","Array","isArray","isBidirectional","includes","vertical","verticalInverted","horizontal","horizontalInverted","handleDismiss","useCallback","isDismissing","value","state","navigation","getState","routeStillPresent","routes","some","dispatch","StackActions","pop","source","target","onTouchesDown","useStableCallbackValue","firstTouch","changedTouches","onTouchesMove","manager","FAILED","fail","touch","isSwipingDown","isSwipingUp","isSwipingRight","isSwipingLeft","applyOffsetRules","activationArea","responseDistance","isDragging","activate","maxScrollY","contentHeight","layoutHeight","maxScrollX","contentWidth","layoutWidth","recognizedDirection","scrollCfg","shouldActivate","activatedDirection","PASSED","direction","onStart","onUpdate","event","gestureProgress","translationX","translationY","width","height","normalizedX","Math","max","min","normalizedY","maxProgress","allowedDown","allowedUp","allowedRight","allowedLeft","currentProgress","mapGestureToProgress","progress","onEnd","shouldDismiss","determineDismissal","spec","close","open","resetGestureValues","gestures","initialVelocity","velocity","calculateProgressVelocity","startScreenTransition","onAnimationFinish","undefined","nativeGesture","Gesture","Native","panGesture","Pan","enabled","manualActivation","blocksExternalGesture","exports"],"sourceRoot":"../../../../../src","sources":["shared/hooks/gestures/use-build-gestures.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useDerivedValueState = useDerivedValueState;
7
+ var _react = require("react");
8
+ var _reactNativeReanimated = require("react-native-reanimated");
9
+ /**
10
+ * Derives React state from a Reanimated worklet.
11
+ *
12
+ * @param processor - The worklet function that calculates the value
13
+ * @param dependencies - Array of dependencies for the worklet
14
+ * @returns The derived value as React State
15
+ */
16
+ function useDerivedValueState(processor, dependencies = []) {
17
+ const derivedValue = (0, _reactNativeReanimated.useDerivedValue)(processor, dependencies);
18
+ const [state, setState] = (0, _react.useState)(() => {
19
+ const readOnUI = (0, _reactNativeReanimated.executeOnUIRuntimeSync)(sv => {
20
+ "worklet";
21
+
22
+ return sv.value;
23
+ });
24
+ return readOnUI(derivedValue);
25
+ });
26
+ (0, _reactNativeReanimated.useAnimatedReaction)(() => derivedValue.value, (curr, prev) => {
27
+ if (curr !== prev) {
28
+ (0, _reactNativeReanimated.runOnJS)(setState)(curr);
29
+ }
30
+ });
31
+ return state;
32
+ }
33
+ //# sourceMappingURL=use-derived-value-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNativeReanimated","useDerivedValueState","processor","dependencies","derivedValue","useDerivedValue","state","setState","useState","readOnUI","executeOnUIRuntimeSync","sv","value","useAnimatedReaction","curr","prev","runOnJS"],"sourceRoot":"../../../../src","sources":["shared/hooks/use-derived-value-state.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,oBAAoBA,CACnCC,SAAkB,EAClBC,YAAmB,GAAG,EAAE,EACpB;EACJ,MAAMC,YAAY,GAAG,IAAAC,sCAAe,EAACH,SAAS,EAAEC,YAAY,CAAC;EAE7D,MAAM,CAACG,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAC,eAAQ,EAAI,MAAM;IAC3C,MAAMC,QAAQ,GAAG,IAAAC,6CAAsB,EAAEC,EAAkB,IAAK;MAC/D,SAAS;;MACT,OAAOA,EAAE,CAACC,KAAK;IAChB,CAAC,CAAC;IACF,OAAOH,QAAQ,CAACL,YAAY,CAAC;EAC9B,CAAC,CAAC;EAEF,IAAAS,0CAAmB,EAClB,MAAMT,YAAY,CAACQ,KAAK,EACxB,CAACE,IAAI,EAAEC,IAAI,KAAK;IACf,IAAID,IAAI,KAAKC,IAAI,EAAE;MAClB,IAAAC,8BAAO,EAACT,QAAQ,CAAC,CAACO,IAAI,CAAC;IACxB;EACD,CACD,CAAC;EAED,OAAOR,KAAK;AACb","ignoreList":[]}
@@ -18,16 +18,19 @@ const ScreenGestureProvider = ({
18
18
  const scrollConfig = (0, _reactNativeReanimated.useSharedValue)(null);
19
19
  const {
20
20
  panGesture,
21
- nativeGesture
21
+ nativeGesture,
22
+ gestureAnimationValues
22
23
  } = (0, _useBuildGestures.useBuildGestures)({
23
- scrollConfig
24
+ scrollConfig,
25
+ parentContext
24
26
  });
25
27
  const value = (0, _react.useMemo)(() => ({
26
28
  panGesture,
27
29
  scrollConfig,
28
30
  nativeGesture,
31
+ gestureAnimationValues,
29
32
  parentContext: parentContext || null
30
- }), [panGesture, scrollConfig, nativeGesture, parentContext]);
33
+ }), [panGesture, scrollConfig, nativeGesture, gestureAnimationValues, parentContext]);
31
34
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(GestureContext.Provider, {
32
35
  value: value,
33
36
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector, {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_useBuildGestures","_jsxRuntime","GestureContext","createContext","undefined","ScreenGestureProvider","children","parentContext","useContext","scrollConfig","useSharedValue","panGesture","nativeGesture","useBuildGestures","value","useMemo","jsx","Provider","GestureDetector","gesture","View","style","styles","container","exports","useGestureContext","context","Error","StyleSheet","create","flex"],"sourceRoot":"../../../../src","sources":["shared/providers/gestures.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,0BAAA,GAAAF,OAAA;AAEA,IAAAG,sBAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AAAwE,IAAAK,WAAA,GAAAL,OAAA;AAsBxE,MAAMM,cAAc,gBAAG,IAAAC,oBAAa,EAAiCC,SAAS,CAAC;AAExE,MAAMC,qBAAqB,GAAGA,CAAC;EACrCC;AAC2B,CAAC,KAAK;EACjC,MAAMC,aAAa,GAAG,IAAAC,iBAAU,EAACN,cAAc,CAAC;EAEhD,MAAMO,YAAY,GAAG,IAAAC,qCAAc,EAAsB,IAAI,CAAC;EAE9D,MAAM;IAAEC,UAAU;IAAEC;EAAc,CAAC,GAAG,IAAAC,kCAAgB,EAAC;IACtDJ;EACD,CAAC,CAAC;EAEF,MAAMK,KAAyB,GAAG,IAAAC,cAAO,EACxC,OAAO;IACNJ,UAAU;IACVF,YAAY;IACZG,aAAa;IACbL,aAAa,EAAEA,aAAa,IAAI;EACjC,CAAC,CAAC,EACF,CAACI,UAAU,EAAEF,YAAY,EAAEG,aAAa,EAAEL,aAAa,CACxD,CAAC;EAED,oBACC,IAAAN,WAAA,CAAAe,GAAA,EAACd,cAAc,CAACe,QAAQ;IAACH,KAAK,EAAEA,KAAM;IAAAR,QAAA,eACrC,IAAAL,WAAA,CAAAe,GAAA,EAAClB,0BAAA,CAAAoB,eAAe;MAACC,OAAO,EAAER,UAAW;MAAAL,QAAA,eACpC,IAAAL,WAAA,CAAAe,GAAA,EAACnB,YAAA,CAAAuB,IAAI;QAACC,KAAK,EAAEC,MAAM,CAACC,SAAU;QAAAjB,QAAA,EAAEA;MAAQ,CAAO;IAAC,CAChC;EAAC,CACM,CAAC;AAE5B,CAAC;AAACkB,OAAA,CAAAnB,qBAAA,GAAAA,qBAAA;AAEK,MAAMoB,iBAAiB,GAAGA,CAAA,KAAM;EACtC,MAAMC,OAAO,GAAG,IAAAlB,iBAAU,EAACN,cAAc,CAAC;EAE1C,IAAI,CAACwB,OAAO,EAAE;IACb,MAAM,IAAIC,KAAK,CACd,+DACD,CAAC;EACF;EAEA,OAAOD,OAAO;AACf,CAAC;AAACF,OAAA,CAAAC,iBAAA,GAAAA,iBAAA;AAEF,MAAMH,MAAM,GAAGM,uBAAU,CAACC,MAAM,CAAC;EAChCN,SAAS,EAAE;IACVO,IAAI,EAAE;EACP;AACD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_useBuildGestures","_jsxRuntime","GestureContext","createContext","undefined","ScreenGestureProvider","children","parentContext","useContext","scrollConfig","useSharedValue","panGesture","nativeGesture","gestureAnimationValues","useBuildGestures","value","useMemo","jsx","Provider","GestureDetector","gesture","View","style","styles","container","exports","useGestureContext","context","Error","StyleSheet","create","flex"],"sourceRoot":"../../../../src","sources":["shared/providers/gestures.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,0BAAA,GAAAF,OAAA;AAEA,IAAAG,sBAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AAAwE,IAAAK,WAAA,GAAAL,OAAA;AAwBxE,MAAMM,cAAc,gBAAG,IAAAC,oBAAa,EAAiCC,SAAS,CAAC;AAExE,MAAMC,qBAAqB,GAAGA,CAAC;EAAEC;AAA+B,CAAC,KAAK;EAC5E,MAAMC,aAAa,GAAG,IAAAC,iBAAU,EAACN,cAAc,CAAC;EAEhD,MAAMO,YAAY,GAAG,IAAAC,qCAAc,EAAsB,IAAI,CAAC;EAE9D,MAAM;IAAEC,UAAU;IAAEC,aAAa;IAAEC;EAAuB,CAAC,GAC1D,IAAAC,kCAAgB,EAAC;IAChBL,YAAY;IACZF;EACD,CAAC,CAAC;EAEH,MAAMQ,KAAyB,GAAG,IAAAC,cAAO,EACxC,OAAO;IACNL,UAAU;IACVF,YAAY;IACZG,aAAa;IACbC,sBAAsB;IACtBN,aAAa,EAAEA,aAAa,IAAI;EACjC,CAAC,CAAC,EACF,CACCI,UAAU,EACVF,YAAY,EACZG,aAAa,EACbC,sBAAsB,EACtBN,aAAa,CAEf,CAAC;EAED,oBACC,IAAAN,WAAA,CAAAgB,GAAA,EAACf,cAAc,CAACgB,QAAQ;IAACH,KAAK,EAAEA,KAAM;IAAAT,QAAA,eACrC,IAAAL,WAAA,CAAAgB,GAAA,EAACnB,0BAAA,CAAAqB,eAAe;MAACC,OAAO,EAAET,UAAW;MAAAL,QAAA,eACpC,IAAAL,WAAA,CAAAgB,GAAA,EAACpB,YAAA,CAAAwB,IAAI;QAACC,KAAK,EAAEC,MAAM,CAACC,SAAU;QAAAlB,QAAA,EAAEA;MAAQ,CAAO;IAAC,CAChC;EAAC,CACM,CAAC;AAE5B,CAAC;AAACmB,OAAA,CAAApB,qBAAA,GAAAA,qBAAA;AAEK,MAAMqB,iBAAiB,GAAGA,CAAA,KAAM;EACtC,MAAMC,OAAO,GAAG,IAAAnB,iBAAU,EAACN,cAAc,CAAC;EAE1C,IAAI,CAACyB,OAAO,EAAE;IACb,MAAM,IAAIC,KAAK,CACd,+DACD,CAAC;EACF;EAEA,OAAOD,OAAO;AACf,CAAC;AAACF,OAAA,CAAAC,iBAAA,GAAAA,iBAAA;AAEF,MAAMH,MAAM,GAAGM,uBAAU,CAACC,MAAM,CAAC;EAChCN,SAAS,EAAE;IACVO,IAAI,EAAE;EACP;AACD,CAAC,CAAC","ignoreList":[]}
@@ -3,37 +3,49 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createContext = createContext;
7
- var React = _interopRequireWildcard(require("react"));
8
- 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); }
6
+ exports.default = createProvider;
7
+ var _react = require("react");
8
+ var _jsxRuntime = require("react/jsx-runtime");
9
9
  /**
10
- * Credits to
11
- * https://github.com/heroui-inc/heroui-native/blob/beta/src/helpers/utils/create-context.ts
10
+ * THANK YOU @MatiPl01
11
+ * https://github.com/MatiPl01/react-native-sortables/blob/main/packages/react-native-sortables/src/providers/utils/createProvider.tsx
12
+ * SUPER COOL AMAZING UTILITY
12
13
  */
13
14
 
14
- /**
15
- * Creates a named context, provider, and hook.
16
- *
17
- * @param options create context options
18
- */
19
- function createContext(options = {}) {
20
- const {
21
- strict = true,
22
- errorMessage = "useContext: `context` is undefined. Seems you forgot to wrap component within the Provider",
23
- name
24
- } = options;
25
- const Context = /*#__PURE__*/React.createContext(undefined);
26
- Context.displayName = name;
27
- function useContext() {
28
- const context = React.useContext(Context);
29
- if (!context && strict) {
30
- const error = new Error(errorMessage);
31
- error.name = "ContextError";
32
- Error.captureStackTrace?.(error, useContext);
33
- throw error;
34
- }
35
- return context;
36
- }
37
- return [Context.Provider, useContext, Context];
15
+ function createProvider(name, options) {
16
+ return factory => {
17
+ const {
18
+ guarded = true
19
+ } = options ?? {};
20
+ const Context = /*#__PURE__*/(0, _react.createContext)(null);
21
+ Context.displayName = name;
22
+ const Provider = props => {
23
+ const {
24
+ children = props.children,
25
+ enabled = true,
26
+ value
27
+ } = factory(props);
28
+ if (!value) {
29
+ throw new Error(`${name}Context value must be provided. You likely forgot to return it from the factory function.`);
30
+ }
31
+ const memoValue = (0, _react.useMemo)(() => enabled ? value : null, [enabled, value]);
32
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Context.Provider, {
33
+ value: memoValue,
34
+ children: children
35
+ });
36
+ };
37
+ const useEnhancedContext = () => {
38
+ const context = (0, _react.useContext)(Context);
39
+ if (guarded && context === null) {
40
+ throw new Error(`${name} context must be used within a ${name}Provider`);
41
+ }
42
+ return context;
43
+ };
44
+ return {
45
+ [`${name}Context`]: Context,
46
+ [`${name}Provider`]: Provider,
47
+ [`use${name}Context`]: useEnhancedContext
48
+ };
49
+ };
38
50
  }
39
51
  //# sourceMappingURL=create-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","createContext","options","strict","errorMessage","name","Context","undefined","displayName","useContext","context","error","Error","captureStackTrace","Provider"],"sourceRoot":"../../../../../src","sources":["shared/providers/utils/create-provider.ts"],"mappings":";;;;;;AAIA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA+B,SAAAD,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAJ/B;AACA;AACA;AACA;;AAyBA;AACA;AACA;AACA;AACA;AACO,SAASkB,aAAaA,CAAcC,OAA6B,GAAG,CAAC,CAAC,EAAE;EAC9E,MAAM;IACLC,MAAM,GAAG,IAAI;IACbC,YAAY,GAAG,4FAA4F;IAC3GC;EACD,CAAC,GAAGH,OAAO;EAEX,MAAMI,OAAO,gBAAG3B,KAAK,CAACsB,aAAa,CAA0BM,SAAS,CAAC;EAEvED,OAAO,CAACE,WAAW,GAAGH,IAAI;EAE1B,SAASI,UAAUA,CAAA,EAAG;IACrB,MAAMC,OAAO,GAAG/B,KAAK,CAAC8B,UAAU,CAACH,OAAO,CAAC;IAEzC,IAAI,CAACI,OAAO,IAAIP,MAAM,EAAE;MACvB,MAAMQ,KAAK,GAAG,IAAIC,KAAK,CAACR,YAAY,CAAC;MAErCO,KAAK,CAACN,IAAI,GAAG,cAAc;MAC3BO,KAAK,CAACC,iBAAiB,GAAGF,KAAK,EAAEF,UAAU,CAAC;MAC5C,MAAME,KAAK;IACZ;IAEA,OAAOD,OAAO;EACf;EAEA,OAAO,CACNJ,OAAO,CAACQ,QAAQ,EAChBL,UAAU,EACVH,OAAO,CACP;AACF","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_jsxRuntime","createProvider","name","options","factory","guarded","Context","createContext","displayName","Provider","props","children","enabled","value","Error","memoValue","useMemo","jsx","useEnhancedContext","context","useContext"],"sourceRoot":"../../../../../src","sources":["shared/providers/utils/create-provider.tsx"],"mappings":";;;;;;AAKA,IAAAA,MAAA,GAAAC,OAAA;AAMe,IAAAC,WAAA,GAAAD,OAAA;AAXf;AACA;AACA;AACA;AACA;;AASe,SAASE,cAAcA,CAGpCC,IAAkB,EAAEC,OAA+B,EAAE;EACtD,OACCC,OAIC,IACG;IACJ,MAAM;MAAEC,OAAO,GAAG;IAAK,CAAC,GAAGF,OAAO,IAAI,CAAC,CAAC;IAExC,MAAMG,OAAO,gBAAG,IAAAC,oBAAa,EAAsB,IAAI,CAAC;IACxDD,OAAO,CAACE,WAAW,GAAGN,IAAI;IAE1B,MAAMO,QAAiC,GAAIC,KAAK,IAAK;MACpD,MAAM;QACLC,QAAQ,GAAGD,KAAK,CAACC,QAAQ;QACzBC,OAAO,GAAG,IAAI;QACdC;MACD,CAAC,GAAGT,OAAO,CAACM,KAAK,CAAC;MAElB,IAAI,CAACG,KAAK,EAAE;QACX,MAAM,IAAIC,KAAK,CACd,GAAGZ,IAAI,2FACR,CAAC;MACF;MAEA,MAAMa,SAAS,GAAG,IAAAC,cAAO,EACxB,MAAOJ,OAAO,GAAGC,KAAK,GAAG,IAAK,EAC9B,CAACD,OAAO,EAAEC,KAAK,CAChB,CAAC;MAED,oBAAO,IAAAb,WAAA,CAAAiB,GAAA,EAACX,OAAO,CAACG,QAAQ;QAACI,KAAK,EAAEE,SAAU;QAAAJ,QAAA,EAAEA;MAAQ,CAAmB,CAAC;IACzE,CAAC;IAED,MAAMO,kBAAkB,GAAGA,CAAA,KAA2B;MACrD,MAAMC,OAAO,GAAG,IAAAC,iBAAU,EAACd,OAAO,CAAC;MAEnC,IAAID,OAAO,IAAIc,OAAO,KAAK,IAAI,EAAE;QAChC,MAAM,IAAIL,KAAK,CACd,GAAGZ,IAAI,kCAAkCA,IAAI,UAC9C,CAAC;MACF;MAEA,OAAOiB,OAAO;IACf,CAAC;IAED,OAAO;MACN,CAAC,GAAGjB,IAAI,SAAS,GAAGI,OAAO;MAC3B,CAAC,GAAGJ,IAAI,UAAU,GAAGO,QAAQ;MAC7B,CAAC,MAAMP,IAAI,SAAS,GAAGgB;IACxB,CAAC;EASF,CAAC;AACF","ignoreList":[]}
@@ -4,10 +4,10 @@ import { NavigationContext, NavigationRouteContext } from "@react-navigation/nat
4
4
  import { useMemo } from "react";
5
5
  import { Animated, StyleSheet, View } from "react-native";
6
6
  import { useSafeAreaInsets } from "react-native-safe-area-context";
7
+ import { useScreenAnimation } from "../../shared/hooks/animation/use-screen-animation";
7
8
  import { KeysProvider, useKeys } from "../../shared/providers/keys";
8
9
  import { useOverlayAnimation } from "../hooks/use-overlay-animation";
9
10
  import { useStackNavigationContext } from "../utils/with-stack-navigation";
10
- import { useScreenAnimation } from "../../shared/hooks/animation/use-screen-animation";
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
12
12
  const getActiveFloatOverlay = (scenes, index) => {
13
13
  if (scenes.length === 0) {
@@ -41,12 +41,27 @@ const OverlayHost = ({
41
41
  overlayAnimation,
42
42
  optimisticActiveIndex
43
43
  } = useOverlayAnimation();
44
+ const {
45
+ scenes
46
+ } = useStackNavigationContext();
47
+ const overlaySceneIndex = useMemo(() => {
48
+ return scenes.findIndex(stackScene => stackScene.route.key === scene.route.key);
49
+ }, [scenes, scene.route.key]);
50
+ const focusedRoute = useMemo(() => {
51
+ if (overlaySceneIndex === -1) {
52
+ return scene.route;
53
+ }
54
+ const maxOffset = Math.max(scenes.length - overlaySceneIndex - 1, 0);
55
+ const normalizedIndex = Math.min(Math.max(optimisticActiveIndex, 0), maxOffset);
56
+ return scenes[overlaySceneIndex + normalizedIndex]?.route ?? scene.route;
57
+ }, [overlaySceneIndex, optimisticActiveIndex, scenes, scene.route]);
44
58
  const screenAnimation = useScreenAnimation();
45
59
  if (!OverlayComponent) {
46
60
  return null;
47
61
  }
48
62
  const overlayProps = {
49
63
  route: scene.route,
64
+ focusedRoute,
50
65
  navigation: scene.descriptor.navigation,
51
66
  overlayAnimation,
52
67
  screenAnimation,
@@ -55,7 +70,9 @@ const OverlayHost = ({
55
70
  };
56
71
  return /*#__PURE__*/_jsx(Animated.View, {
57
72
  pointerEvents: "box-none",
58
- style: [styles.container, isFloating ? styles.floating : null, styles.absolute],
73
+ style: [styles.container, isFloating ? styles.floating : {
74
+ zIndex: 1
75
+ }, styles.absolute],
59
76
  children: /*#__PURE__*/_jsx(NavigationContext.Provider, {
60
77
  value: scene.descriptor.navigation,
61
78
  children: /*#__PURE__*/_jsx(NavigationRouteContext.Provider, {
@@ -98,9 +115,6 @@ const FloatOverlay = () => {
98
115
  });
99
116
  };
100
117
  const ScreenOverlay = () => {
101
- const {
102
- focusedIndex
103
- } = useStackNavigationContext();
104
118
  const {
105
119
  current
106
120
  } = useKeys();