react-native-screen-transitions 3.3.0-rc.2 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +51 -7
  3. package/lib/commonjs/blank-stack/components/stack-view.js +2 -1
  4. package/lib/commonjs/blank-stack/components/stack-view.js.map +1 -1
  5. package/lib/commonjs/blank-stack/components/stack-view.native.js +2 -1
  6. package/lib/commonjs/blank-stack/components/stack-view.native.js.map +1 -1
  7. package/lib/commonjs/component-stack/components/stack-view.js +2 -1
  8. package/lib/commonjs/component-stack/components/stack-view.js.map +1 -1
  9. package/lib/commonjs/shared/animation/resolve-snap-target.js +48 -0
  10. package/lib/commonjs/shared/animation/resolve-snap-target.js.map +1 -0
  11. package/lib/commonjs/shared/animation/snap-to.js +35 -34
  12. package/lib/commonjs/shared/animation/snap-to.js.map +1 -1
  13. package/lib/commonjs/shared/components/create-transition-aware-component.js +15 -7
  14. package/lib/commonjs/shared/components/create-transition-aware-component.js.map +1 -1
  15. package/lib/commonjs/shared/components/overlay/helpers/get-active-overlay.js +3 -2
  16. package/lib/commonjs/shared/components/overlay/helpers/get-active-overlay.js.map +1 -1
  17. package/lib/commonjs/shared/components/overlay/variations/float-overlay.js +46 -9
  18. package/lib/commonjs/shared/components/overlay/variations/float-overlay.js.map +1 -1
  19. package/lib/commonjs/shared/components/overlay/variations/overlay-host.js +7 -7
  20. package/lib/commonjs/shared/components/overlay/variations/overlay-host.js.map +1 -1
  21. package/lib/commonjs/shared/components/overlay/variations/screen-overlay.js +23 -3
  22. package/lib/commonjs/shared/components/overlay/variations/screen-overlay.js.map +1 -1
  23. package/lib/commonjs/shared/components/screen-container.js +2 -1
  24. package/lib/commonjs/shared/components/screen-container.js.map +1 -1
  25. package/lib/commonjs/shared/hooks/animation/use-screen-animation.js +6 -6
  26. package/lib/commonjs/shared/hooks/animation/use-screen-animation.js.map +1 -1
  27. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js +7 -1
  28. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  29. package/lib/commonjs/shared/hooks/gestures/use-screen-gesture-handlers.js +37 -8
  30. package/lib/commonjs/shared/hooks/gestures/use-screen-gesture-handlers.js.map +1 -1
  31. package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js +12 -13
  32. package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
  33. package/lib/commonjs/shared/hooks/lifecycle/use-close-transition.js +5 -2
  34. package/lib/commonjs/shared/hooks/lifecycle/use-close-transition.js.map +1 -1
  35. package/lib/commonjs/shared/hooks/lifecycle/use-screen-events.js +14 -4
  36. package/lib/commonjs/shared/hooks/lifecycle/use-screen-events.js.map +1 -1
  37. package/lib/commonjs/shared/hooks/navigation/use-optimistic-focused-index.js +20 -0
  38. package/lib/commonjs/shared/hooks/navigation/use-optimistic-focused-index.js.map +1 -0
  39. package/lib/commonjs/shared/hooks/navigation/use-screen-state.js +11 -8
  40. package/lib/commonjs/shared/hooks/navigation/use-screen-state.js.map +1 -1
  41. package/lib/commonjs/shared/hooks/reanimated/use-shared-value-state.js +4 -1
  42. package/lib/commonjs/shared/hooks/reanimated/use-shared-value-state.js.map +1 -1
  43. package/lib/commonjs/shared/providers/gestures.provider.js +17 -6
  44. package/lib/commonjs/shared/providers/gestures.provider.js.map +1 -1
  45. package/lib/commonjs/shared/providers/layout-anchor.provider.js +7 -5
  46. package/lib/commonjs/shared/providers/layout-anchor.provider.js.map +1 -1
  47. package/lib/commonjs/shared/providers/register-bounds.provider.js +25 -6
  48. package/lib/commonjs/shared/providers/register-bounds.provider.js.map +1 -1
  49. package/lib/commonjs/shared/providers/screen/styles.provider.js +1 -6
  50. package/lib/commonjs/shared/providers/screen/styles.provider.js.map +1 -1
  51. package/lib/commonjs/shared/providers/stack/direct.provider.js +15 -16
  52. package/lib/commonjs/shared/providers/stack/direct.provider.js.map +1 -1
  53. package/lib/commonjs/shared/providers/stack/managed.provider.js +19 -16
  54. package/lib/commonjs/shared/providers/stack/managed.provider.js.map +1 -1
  55. package/lib/commonjs/shared/stores/bounds.store.js +46 -0
  56. package/lib/commonjs/shared/stores/bounds.store.js.map +1 -1
  57. package/lib/commonjs/shared/utils/bounds/index.js +6 -4
  58. package/lib/commonjs/shared/utils/bounds/index.js.map +1 -1
  59. package/lib/commonjs/shared/utils/gesture/determine-snap-target.js +9 -2
  60. package/lib/commonjs/shared/utils/gesture/determine-snap-target.js.map +1 -1
  61. package/lib/commonjs/shared/utils/gesture/find-collapse-target.js +11 -1
  62. package/lib/commonjs/shared/utils/gesture/find-collapse-target.js.map +1 -1
  63. package/lib/commonjs/shared/utils/gesture/validate-snap-points.js +11 -2
  64. package/lib/commonjs/shared/utils/gesture/validate-snap-points.js.map +1 -1
  65. package/lib/commonjs/shared/utils/overlay/visibility.js +19 -0
  66. package/lib/commonjs/shared/utils/overlay/visibility.js.map +1 -0
  67. package/lib/module/blank-stack/components/stack-view.js +2 -1
  68. package/lib/module/blank-stack/components/stack-view.js.map +1 -1
  69. package/lib/module/blank-stack/components/stack-view.native.js +2 -1
  70. package/lib/module/blank-stack/components/stack-view.native.js.map +1 -1
  71. package/lib/module/component-stack/components/stack-view.js +2 -1
  72. package/lib/module/component-stack/components/stack-view.js.map +1 -1
  73. package/lib/module/shared/animation/resolve-snap-target.js +44 -0
  74. package/lib/module/shared/animation/resolve-snap-target.js.map +1 -0
  75. package/lib/module/shared/animation/snap-to.js +34 -34
  76. package/lib/module/shared/animation/snap-to.js.map +1 -1
  77. package/lib/module/shared/components/create-transition-aware-component.js +16 -8
  78. package/lib/module/shared/components/create-transition-aware-component.js.map +1 -1
  79. package/lib/module/shared/components/overlay/helpers/get-active-overlay.js +4 -2
  80. package/lib/module/shared/components/overlay/helpers/get-active-overlay.js.map +1 -1
  81. package/lib/module/shared/components/overlay/variations/float-overlay.js +47 -11
  82. package/lib/module/shared/components/overlay/variations/float-overlay.js.map +1 -1
  83. package/lib/module/shared/components/overlay/variations/overlay-host.js +7 -7
  84. package/lib/module/shared/components/overlay/variations/overlay-host.js.map +1 -1
  85. package/lib/module/shared/components/overlay/variations/screen-overlay.js +24 -5
  86. package/lib/module/shared/components/overlay/variations/screen-overlay.js.map +1 -1
  87. package/lib/module/shared/components/screen-container.js +2 -1
  88. package/lib/module/shared/components/screen-container.js.map +1 -1
  89. package/lib/module/shared/hooks/animation/use-screen-animation.js +6 -6
  90. package/lib/module/shared/hooks/animation/use-screen-animation.js.map +1 -1
  91. package/lib/module/shared/hooks/gestures/use-build-gestures.js +7 -1
  92. package/lib/module/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  93. package/lib/module/shared/hooks/gestures/use-screen-gesture-handlers.js +37 -8
  94. package/lib/module/shared/hooks/gestures/use-screen-gesture-handlers.js.map +1 -1
  95. package/lib/module/shared/hooks/gestures/use-scroll-registry.js +12 -13
  96. package/lib/module/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
  97. package/lib/module/shared/hooks/lifecycle/use-close-transition.js +5 -2
  98. package/lib/module/shared/hooks/lifecycle/use-close-transition.js.map +1 -1
  99. package/lib/module/shared/hooks/lifecycle/use-screen-events.js +13 -4
  100. package/lib/module/shared/hooks/lifecycle/use-screen-events.js.map +1 -1
  101. package/lib/module/shared/hooks/navigation/use-optimistic-focused-index.js +17 -0
  102. package/lib/module/shared/hooks/navigation/use-optimistic-focused-index.js.map +1 -0
  103. package/lib/module/shared/hooks/navigation/use-screen-state.js +12 -9
  104. package/lib/module/shared/hooks/navigation/use-screen-state.js.map +1 -1
  105. package/lib/module/shared/hooks/reanimated/use-shared-value-state.js +4 -1
  106. package/lib/module/shared/hooks/reanimated/use-shared-value-state.js.map +1 -1
  107. package/lib/module/shared/providers/gestures.provider.js +17 -6
  108. package/lib/module/shared/providers/gestures.provider.js.map +1 -1
  109. package/lib/module/shared/providers/layout-anchor.provider.js +7 -5
  110. package/lib/module/shared/providers/layout-anchor.provider.js.map +1 -1
  111. package/lib/module/shared/providers/register-bounds.provider.js +25 -6
  112. package/lib/module/shared/providers/register-bounds.provider.js.map +1 -1
  113. package/lib/module/shared/providers/screen/styles.provider.js +1 -6
  114. package/lib/module/shared/providers/screen/styles.provider.js.map +1 -1
  115. package/lib/module/shared/providers/stack/direct.provider.js +15 -16
  116. package/lib/module/shared/providers/stack/direct.provider.js.map +1 -1
  117. package/lib/module/shared/providers/stack/managed.provider.js +19 -16
  118. package/lib/module/shared/providers/stack/managed.provider.js.map +1 -1
  119. package/lib/module/shared/stores/bounds.store.js +46 -0
  120. package/lib/module/shared/stores/bounds.store.js.map +1 -1
  121. package/lib/module/shared/utils/bounds/index.js +6 -4
  122. package/lib/module/shared/utils/bounds/index.js.map +1 -1
  123. package/lib/module/shared/utils/gesture/determine-snap-target.js +9 -2
  124. package/lib/module/shared/utils/gesture/determine-snap-target.js.map +1 -1
  125. package/lib/module/shared/utils/gesture/find-collapse-target.js +11 -1
  126. package/lib/module/shared/utils/gesture/find-collapse-target.js.map +1 -1
  127. package/lib/module/shared/utils/gesture/validate-snap-points.js +11 -2
  128. package/lib/module/shared/utils/gesture/validate-snap-points.js.map +1 -1
  129. package/lib/module/shared/utils/overlay/visibility.js +12 -0
  130. package/lib/module/shared/utils/overlay/visibility.js.map +1 -0
  131. package/lib/typescript/blank-stack/components/stack-view.d.ts.map +1 -1
  132. package/lib/typescript/blank-stack/components/stack-view.native.d.ts.map +1 -1
  133. package/lib/typescript/component-stack/components/stack-view.d.ts.map +1 -1
  134. package/lib/typescript/shared/animation/resolve-snap-target.d.ts +3 -0
  135. package/lib/typescript/shared/animation/resolve-snap-target.d.ts.map +1 -0
  136. package/lib/typescript/shared/animation/snap-to.d.ts +2 -0
  137. package/lib/typescript/shared/animation/snap-to.d.ts.map +1 -1
  138. package/lib/typescript/shared/components/create-transition-aware-component.d.ts +1 -0
  139. package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
  140. package/lib/typescript/shared/components/overlay/helpers/get-active-overlay.d.ts +1 -1
  141. package/lib/typescript/shared/components/overlay/helpers/get-active-overlay.d.ts.map +1 -1
  142. package/lib/typescript/shared/components/overlay/variations/float-overlay.d.ts.map +1 -1
  143. package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts +7 -0
  144. package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts.map +1 -1
  145. package/lib/typescript/shared/components/overlay/variations/screen-overlay.d.ts.map +1 -1
  146. package/lib/typescript/shared/components/screen-container.d.ts.map +1 -1
  147. package/lib/typescript/shared/hooks/animation/use-screen-animation.d.ts.map +1 -1
  148. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts.map +1 -1
  149. package/lib/typescript/shared/hooks/gestures/use-screen-gesture-handlers.d.ts +1 -1
  150. package/lib/typescript/shared/hooks/gestures/use-screen-gesture-handlers.d.ts.map +1 -1
  151. package/lib/typescript/shared/hooks/gestures/use-scroll-registry.d.ts +0 -2
  152. package/lib/typescript/shared/hooks/gestures/use-scroll-registry.d.ts.map +1 -1
  153. package/lib/typescript/shared/hooks/lifecycle/use-close-transition.d.ts.map +1 -1
  154. package/lib/typescript/shared/hooks/lifecycle/use-screen-events.d.ts.map +1 -1
  155. package/lib/typescript/shared/hooks/navigation/use-optimistic-focused-index.d.ts +7 -0
  156. package/lib/typescript/shared/hooks/navigation/use-optimistic-focused-index.d.ts.map +1 -0
  157. package/lib/typescript/shared/hooks/navigation/use-screen-state.d.ts +6 -0
  158. package/lib/typescript/shared/hooks/navigation/use-screen-state.d.ts.map +1 -1
  159. package/lib/typescript/shared/hooks/reanimated/use-shared-value-state.d.ts.map +1 -1
  160. package/lib/typescript/shared/index.d.ts +4 -0
  161. package/lib/typescript/shared/index.d.ts.map +1 -1
  162. package/lib/typescript/shared/providers/gestures.provider.d.ts.map +1 -1
  163. package/lib/typescript/shared/providers/layout-anchor.provider.d.ts +1 -1
  164. package/lib/typescript/shared/providers/layout-anchor.provider.d.ts.map +1 -1
  165. package/lib/typescript/shared/providers/register-bounds.provider.d.ts +1 -0
  166. package/lib/typescript/shared/providers/register-bounds.provider.d.ts.map +1 -1
  167. package/lib/typescript/shared/providers/screen/styles.provider.d.ts.map +1 -1
  168. package/lib/typescript/shared/providers/stack/direct.provider.d.ts.map +1 -1
  169. package/lib/typescript/shared/providers/stack/managed.provider.d.ts.map +1 -1
  170. package/lib/typescript/shared/stores/bounds.store.d.ts +2 -0
  171. package/lib/typescript/shared/stores/bounds.store.d.ts.map +1 -1
  172. package/lib/typescript/shared/types/screen.types.d.ts +36 -1
  173. package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
  174. package/lib/typescript/shared/utils/bounds/index.d.ts.map +1 -1
  175. package/lib/typescript/shared/utils/gesture/determine-snap-target.d.ts.map +1 -1
  176. package/lib/typescript/shared/utils/gesture/find-collapse-target.d.ts.map +1 -1
  177. package/lib/typescript/shared/utils/gesture/validate-snap-points.d.ts.map +1 -1
  178. package/lib/typescript/shared/utils/overlay/visibility.d.ts +11 -0
  179. package/lib/typescript/shared/utils/overlay/visibility.d.ts.map +1 -0
  180. package/package.json +8 -2
  181. package/src/blank-stack/components/stack-view.native.tsx +2 -1
  182. package/src/blank-stack/components/stack-view.tsx +2 -1
  183. package/src/component-stack/components/stack-view.tsx +2 -1
  184. package/src/shared/animation/resolve-snap-target.ts +53 -0
  185. package/src/shared/animation/snap-to.ts +47 -38
  186. package/src/shared/components/create-transition-aware-component.tsx +34 -10
  187. package/src/shared/components/overlay/helpers/get-active-overlay.ts +3 -2
  188. package/src/shared/components/overlay/variations/float-overlay.tsx +53 -8
  189. package/src/shared/components/overlay/variations/overlay-host.tsx +16 -6
  190. package/src/shared/components/overlay/variations/screen-overlay.tsx +35 -3
  191. package/src/shared/components/screen-container.tsx +15 -9
  192. package/src/shared/hooks/animation/use-screen-animation.tsx +8 -8
  193. package/src/shared/hooks/gestures/use-build-gestures.tsx +5 -1
  194. package/src/shared/hooks/gestures/use-screen-gesture-handlers.ts +63 -16
  195. package/src/shared/hooks/gestures/use-scroll-registry.tsx +10 -9
  196. package/src/shared/hooks/lifecycle/use-close-transition.ts +6 -3
  197. package/src/shared/hooks/lifecycle/use-screen-events.ts +15 -4
  198. package/src/shared/hooks/navigation/use-optimistic-focused-index.ts +19 -0
  199. package/src/shared/hooks/navigation/use-screen-state.tsx +24 -8
  200. package/src/shared/hooks/reanimated/use-shared-value-state.ts +4 -1
  201. package/src/shared/providers/gestures.provider.tsx +49 -22
  202. package/src/shared/providers/layout-anchor.provider.tsx +28 -25
  203. package/src/shared/providers/register-bounds.provider.tsx +43 -6
  204. package/src/shared/providers/screen/styles.provider.tsx +1 -7
  205. package/src/shared/providers/stack/direct.provider.tsx +18 -19
  206. package/src/shared/providers/stack/managed.provider.tsx +22 -19
  207. package/src/shared/stores/bounds.store.ts +56 -0
  208. package/src/shared/types/screen.types.ts +39 -1
  209. package/src/shared/utils/bounds/index.ts +6 -4
  210. package/src/shared/utils/gesture/determine-snap-target.ts +15 -4
  211. package/src/shared/utils/gesture/find-collapse-target.ts +11 -1
  212. package/src/shared/utils/gesture/validate-snap-points.ts +15 -2
  213. package/src/shared/utils/overlay/visibility.ts +23 -0
@@ -21,6 +21,7 @@ import { GestureStore } from "../stores/gesture.store";
21
21
  import { StackType } from "../types/stack.types";
22
22
  import createProvider from "../utils/create-provider";
23
23
  import { computeClaimedDirections } from "../utils/gesture/compute-claimed-directions";
24
+ import { validateSnapPoints } from "../utils/gesture/validate-snap-points";
24
25
  import { useKeys } from "./screen/keys.provider";
25
26
  import { useStackCoreContext } from "./stack/core.provider";
26
27
  const NO_CLAIMS = {
@@ -110,11 +111,21 @@ export const {
110
111
  flags
111
112
  } = useStackCoreContext();
112
113
  const ancestorContext = useGestureContext();
113
- const hasGestures = current.options.gestureEnabled === true;
114
114
  const isIsolated = flags.STACK_TYPE === StackType.COMPONENT;
115
- const hasSnapPoints = Array.isArray(current.options.snapPoints) && current.options.snapPoints.length > 0;
116
- const claimedDirections = useMemo(() => computeClaimedDirections(hasGestures, current.options.gestureDirection, hasSnapPoints), [hasGestures, current.options.gestureDirection, hasSnapPoints]);
117
115
  const routeKey = current.route.key;
116
+ const isFirstScreen = useNavigationState(state => {
117
+ const index = state.routes.findIndex(route => route.key === routeKey);
118
+ return index === 0;
119
+ });
120
+ const canDismiss = Boolean(isFirstScreen ? false : current.options.gestureEnabled);
121
+ const {
122
+ hasSnapPoints
123
+ } = useMemo(() => validateSnapPoints({
124
+ snapPoints: current.options.snapPoints,
125
+ canDismiss
126
+ }), [current.options.snapPoints, canDismiss]);
127
+ const gestureEnabled = canDismiss || hasSnapPoints;
128
+ const claimedDirections = useMemo(() => computeClaimedDirections(gestureEnabled, current.options.gestureDirection, hasSnapPoints), [gestureEnabled, current.options.gestureDirection, hasSnapPoints]);
118
129
 
119
130
  // Check if this screen is the current (topmost) route in its navigator
120
131
  const isCurrentRoute = useNavigationState(state => state.routes[state.index]?.key === routeKey);
@@ -132,17 +143,17 @@ export const {
132
143
  childDirectionClaims,
133
144
  isIsolated
134
145
  });
135
- const value = {
146
+ const value = useMemo(() => ({
136
147
  panGesture,
137
148
  panGestureRef,
138
149
  scrollConfig,
139
150
  gestureAnimationValues,
140
151
  ancestorContext,
141
- gestureEnabled: hasGestures,
152
+ gestureEnabled,
142
153
  isIsolated,
143
154
  claimedDirections,
144
155
  childDirectionClaims
145
- };
156
+ }), [panGesture, panGestureRef, scrollConfig, gestureAnimationValues, ancestorContext, gestureEnabled, isIsolated, claimedDirections, childDirectionClaims]);
146
157
  return {
147
158
  value,
148
159
  children
@@ -1 +1 @@
1
- {"version":3,"names":["useNavigationState","useEffect","useMemo","useSharedValue","useBuildGestures","GestureStore","StackType","createProvider","computeClaimedDirections","useKeys","useStackCoreContext","NO_CLAIMS","vertical","horizontal","DIRECTIONS","useRegisterDirectionClaims","ancestorContext","claimedDirections","routeKey","isIsolated","isCurrentRoute","gestureValues","getRouteGestures","isDismissing","claimedAncestors","ancestor","shadowedDirections","dir","push","length","directions","newClaims","childDirectionClaims","value","currentClaims","needsUpdate","ScreenGestureProvider","useScreenGestureContext","useGestureContext","guarded","children","current","flags","hasGestures","options","gestureEnabled","STACK_TYPE","COMPONENT","hasSnapPoints","Array","isArray","snapPoints","gestureDirection","route","key","state","routes","index","scrollConfig","panGesture","panGestureRef","gestureAnimationValues"],"sourceRoot":"../../../../src","sources":["shared/providers/gestures.provider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useNavigationState","useEffect","useMemo","useSharedValue","useBuildGestures","GestureStore","StackType","createProvider","computeClaimedDirections","validateSnapPoints","useKeys","useStackCoreContext","NO_CLAIMS","vertical","horizontal","DIRECTIONS","useRegisterDirectionClaims","ancestorContext","claimedDirections","routeKey","isIsolated","isCurrentRoute","gestureValues","getRouteGestures","isDismissing","claimedAncestors","ancestor","shadowedDirections","dir","push","length","directions","newClaims","childDirectionClaims","value","currentClaims","needsUpdate","ScreenGestureProvider","useScreenGestureContext","useGestureContext","guarded","children","current","flags","STACK_TYPE","COMPONENT","route","key","isFirstScreen","state","index","routes","findIndex","canDismiss","Boolean","options","gestureEnabled","hasSnapPoints","snapPoints","gestureDirection","scrollConfig","panGesture","panGestureRef","gestureAnimationValues"],"sourceRoot":"../../../../src","sources":["shared/providers/gestures.provider.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ import { useCallback, useMemo } from "react";
3
4
  import { useWindowDimensions } from "react-native";
4
5
  import { measure } from "react-native-reanimated";
5
6
  import createProvider from "../utils/create-provider";
@@ -31,7 +32,7 @@ const {
31
32
  width: screenWidth,
32
33
  height: screenHeight
33
34
  } = useWindowDimensions();
34
- const correctMeasurement = measured => {
35
+ const correctMeasurement = useCallback(measured => {
35
36
  "worklet";
36
37
 
37
38
  const anchor = measure(anchorRef);
@@ -55,11 +56,12 @@ const {
55
56
  pageX: scaleX !== 1 ? relativeX / scaleX : relativeX,
56
57
  pageY: scaleY !== 1 ? relativeY / scaleY : relativeY
57
58
  };
58
- };
59
+ }, [anchorRef, screenWidth, screenHeight]);
60
+ const value = useMemo(() => ({
61
+ correctMeasurement
62
+ }), [correctMeasurement]);
59
63
  return {
60
- value: {
61
- correctMeasurement
62
- },
64
+ value,
63
65
  children
64
66
  };
65
67
  });
@@ -1 +1 @@
1
- {"version":3,"names":["useWindowDimensions","measure","createProvider","LayoutAnchorProvider","useLayoutAnchorContext","guarded","anchorRef","children","width","screenWidth","height","screenHeight","correctMeasurement","measured","anchor","scaleX","scaleY","relativeX","pageX","relativeY","pageY","x","y","value"],"sourceRoot":"../../../../src","sources":["shared/providers/layout-anchor.provider.tsx"],"mappings":";;AACA,SAASA,mBAAmB,QAAmB,cAAc;AAC7D,SAGCC,OAAO,QACD,yBAAyB;AAChC,OAAOC,cAAc,MAAM,0BAA0B;AAiBrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;EAAEC,oBAAoB;EAAEC;AAAuB,CAAC,GAAGF,cAAc,CACtE,cAAc,EACd;EAAEG,OAAO,EAAE;AAAM,CAClB,CAAC,CACA,CAAC;EAAEC,SAAS;EAAEC;AAAS,CAAC,KAAK;EAC5B,MAAM;IAAEC,KAAK,EAAEC,WAAW;IAAEC,MAAM,EAAEC;EAAa,CAAC,GAAGX,mBAAmB,CAAC,CAAC;EAE1E,MAAMY,kBAAkB,GACvBC,QAA4B,IACJ;IACxB,SAAS;;IACT,MAAMC,MAAM,GAAGb,OAAO,CAACK,SAAS,CAAC;IACjC,IAAI,CAACQ,MAAM,EAAE,OAAOD,QAAQ;;IAE5B;IACA;IACA,MAAME,MAAM,GAAGD,MAAM,CAACN,KAAK,GAAG,CAAC,GAAGM,MAAM,CAACN,KAAK,GAAGC,WAAW,GAAG,CAAC;IAChE,MAAMO,MAAM,GAAGF,MAAM,CAACJ,MAAM,GAAG,CAAC,GAAGI,MAAM,CAACJ,MAAM,GAAGC,YAAY,GAAG,CAAC;;IAEnE;IACA,MAAMM,SAAS,GAAGJ,QAAQ,CAACK,KAAK,GAAGJ,MAAM,CAACI,KAAK;IAC/C,MAAMC,SAAS,GAAGN,QAAQ,CAACO,KAAK,GAAGN,MAAM,CAACM,KAAK;;IAE/C;IACA,OAAO;MACNC,CAAC,EAAER,QAAQ,CAACQ,CAAC;MACbC,CAAC,EAAET,QAAQ,CAACS,CAAC;MACbd,KAAK,EAAEO,MAAM,KAAK,CAAC,GAAGF,QAAQ,CAACL,KAAK,GAAGO,MAAM,GAAGF,QAAQ,CAACL,KAAK;MAC9DE,MAAM,EAAEM,MAAM,KAAK,CAAC,GAAGH,QAAQ,CAACH,MAAM,GAAGM,MAAM,GAAGH,QAAQ,CAACH,MAAM;MACjEQ,KAAK,EAAEH,MAAM,KAAK,CAAC,GAAGE,SAAS,GAAGF,MAAM,GAAGE,SAAS;MACpDG,KAAK,EAAEJ,MAAM,KAAK,CAAC,GAAGG,SAAS,GAAGH,MAAM,GAAGG;IAC5C,CAAC;EACF,CAAC;EAED,OAAO;IACNI,KAAK,EAAE;MAAEX;IAAmB,CAAC;IAC7BL;EACD,CAAC;AACF,CACD,CAAC;AAED,SAASJ,oBAAoB,EAAEC,sBAAsB","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useMemo","useWindowDimensions","measure","createProvider","LayoutAnchorProvider","useLayoutAnchorContext","guarded","anchorRef","children","width","screenWidth","height","screenHeight","correctMeasurement","measured","anchor","scaleX","scaleY","relativeX","pageX","relativeY","pageY","x","y","value"],"sourceRoot":"../../../../src","sources":["shared/providers/layout-anchor.provider.tsx"],"mappings":";;AAAA,SAAyBA,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAC5D,SAASC,mBAAmB,QAAmB,cAAc;AAC7D,SAGCC,OAAO,QACD,yBAAyB;AAChC,OAAOC,cAAc,MAAM,0BAA0B;AAiBrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;EAAEC,oBAAoB;EAAEC;AAAuB,CAAC,GAAGF,cAAc,CACtE,cAAc,EACd;EAAEG,OAAO,EAAE;AAAM,CAClB,CAAC,CACA,CAAC;EAAEC,SAAS;EAAEC;AAAS,CAAC,KAAK;EAC5B,MAAM;IAAEC,KAAK,EAAEC,WAAW;IAAEC,MAAM,EAAEC;EAAa,CAAC,GAAGX,mBAAmB,CAAC,CAAC;EAE1E,MAAMY,kBAAkB,GAAGd,WAAW,CACpCe,QAA4B,IAAyB;IACrD,SAAS;;IACT,MAAMC,MAAM,GAAGb,OAAO,CAACK,SAAS,CAAC;IACjC,IAAI,CAACQ,MAAM,EAAE,OAAOD,QAAQ;;IAE5B;IACA;IACA,MAAME,MAAM,GAAGD,MAAM,CAACN,KAAK,GAAG,CAAC,GAAGM,MAAM,CAACN,KAAK,GAAGC,WAAW,GAAG,CAAC;IAChE,MAAMO,MAAM,GAAGF,MAAM,CAACJ,MAAM,GAAG,CAAC,GAAGI,MAAM,CAACJ,MAAM,GAAGC,YAAY,GAAG,CAAC;;IAEnE;IACA,MAAMM,SAAS,GAAGJ,QAAQ,CAACK,KAAK,GAAGJ,MAAM,CAACI,KAAK;IAC/C,MAAMC,SAAS,GAAGN,QAAQ,CAACO,KAAK,GAAGN,MAAM,CAACM,KAAK;;IAE/C;IACA,OAAO;MACNC,CAAC,EAAER,QAAQ,CAACQ,CAAC;MACbC,CAAC,EAAET,QAAQ,CAACS,CAAC;MACbd,KAAK,EAAEO,MAAM,KAAK,CAAC,GAAGF,QAAQ,CAACL,KAAK,GAAGO,MAAM,GAAGF,QAAQ,CAACL,KAAK;MAC9DE,MAAM,EAAEM,MAAM,KAAK,CAAC,GAAGH,QAAQ,CAACH,MAAM,GAAGM,MAAM,GAAGH,QAAQ,CAACH,MAAM;MACjEQ,KAAK,EAAEH,MAAM,KAAK,CAAC,GAAGE,SAAS,GAAGF,MAAM,GAAGE,SAAS;MACpDG,KAAK,EAAEJ,MAAM,KAAK,CAAC,GAAGG,SAAS,GAAGH,MAAM,GAAGG;IAC5C,CAAC;EACF,CAAC,EACD,CAACb,SAAS,EAAEG,WAAW,EAAEE,YAAY,CACtC,CAAC;EAED,MAAMY,KAAK,GAAGxB,OAAO,CAAC,OAAO;IAAEa;EAAmB,CAAC,CAAC,EAAE,CAACA,kBAAkB,CAAC,CAAC;EAE3E,OAAO;IACNW,KAAK;IACLhB;EACD,CAAC;AACF,CACD,CAAC;AAED,SAASJ,oBAAoB,EAAEC,sBAAsB","ignoreList":[]}
@@ -76,10 +76,6 @@ const useInitialLayoutHandler = params => {
76
76
  }, [sharedBoundTag, hasMeasuredOnLayout, isAnimating, ancestorAnimations, maybeMeasureAndStore]);
77
77
  };
78
78
 
79
- /**
80
- * Measures non-pressable elements when screen becomes blurred.
81
- * Captures bounds right before transition starts.
82
- */
83
79
  /**
84
80
  * Measures non-pressable elements when screen becomes blurred.
85
81
  * Captures bounds right before transition starts.
@@ -145,10 +141,12 @@ const {
145
141
  onPress,
146
142
  sharedBoundTag,
147
143
  animatedRef,
144
+ remeasureOnFocus,
148
145
  children
149
146
  }) => {
150
147
  const {
151
- current
148
+ current,
149
+ next
152
150
  } = useKeys();
153
151
  const currentScreenKey = current.route.key;
154
152
  const ancestorKeys = useMemo(() => getAncestorKeys(current), [current]);
@@ -169,7 +167,8 @@ const {
169
167
  const maybeMeasureAndStore = useStableCallbackValue(({
170
168
  onPress,
171
169
  shouldSetSource,
172
- shouldSetDestination
170
+ shouldSetDestination,
171
+ shouldUpdateSource
173
172
  } = {}) => {
174
173
  "worklet";
175
174
 
@@ -193,6 +192,9 @@ const {
193
192
  }
194
193
  BoundStore.setLinkSource(sharedBoundTag, currentScreenKey, correctedMeasured, preparedStyles, ancestorKeys);
195
194
  }
195
+ if (shouldUpdateSource) {
196
+ BoundStore.updateLinkSource(sharedBoundTag, currentScreenKey, correctedMeasured, preparedStyles, ancestorKeys);
197
+ }
196
198
 
197
199
  // Set as destination (on mount during animation)
198
200
  if (shouldSetDestination) {
@@ -215,6 +217,23 @@ const {
215
217
  maybeMeasureAndStore,
216
218
  ancestorKeys
217
219
  });
220
+
221
+ // Re-measure source bounds when the destination screen (next in stack)
222
+ // starts closing. This fires at the instant the back animation begins,
223
+ // unlike useFocusEffect which fires too late (after the screen is removed
224
+ // from state).
225
+ const nextScreenKey = next?.route.key;
226
+ const nextClosing = nextScreenKey ? AnimationStore.getAnimation(nextScreenKey, "closing") : null;
227
+ useAnimatedReaction(() => nextClosing?.get() ?? 0, (closing, prevClosing) => {
228
+ "worklet";
229
+
230
+ if (!sharedBoundTag || !remeasureOnFocus) return;
231
+ if (closing === 1 && (prevClosing === 0 || prevClosing === null)) {
232
+ maybeMeasureAndStore({
233
+ shouldUpdateSource: true
234
+ });
235
+ }
236
+ }, [sharedBoundTag, remeasureOnFocus, nextClosing]);
218
237
  useParentSyncReaction({
219
238
  parentContext,
220
239
  maybeMeasureAndStore
@@ -1 +1 @@
1
- {"version":3,"names":["useFocusEffect","useCallback","useMemo","useRef","measure","runOnJS","runOnUI","useAnimatedReaction","useSharedValue","useStableCallback","useStableCallbackValue","AnimationStore","BoundStore","prepareStyleForBounds","createProvider","useLayoutAnchorContext","useKeys","getAncestorKeys","current","ancestors","nav","navigation","getParent","parent","state","getState","routes","index","undefined","focusedRoute","key","push","useInitialLayoutHandler","params","sharedBoundTag","currentScreenKey","ancestorKeys","maybeMeasureAndStore","isAnimating","getAnimation","ancestorAnimations","map","hasMeasuredOnLayout","get","isAnyAnimating","i","length","shouldSetSource","shouldSetDestination","set","useBlurMeasurement","hasCapturedSource","ancestorClosing","route","maybeMeasureOnBlur","closing","markSourceCaptured","useParentSyncReaction","parentContext","updateSignal","value","RegisterBoundsProvider","useRegisterBoundsContext","guarded","style","onPress","animatedRef","children","layoutAnchor","ownSignal","preparedStyles","emitUpdate","isRoot","measured","correctedMeasured","correctMeasurement","registerSnapshot","existing","getSnapshot","setLinkSource","bounds","setLinkDestination","handleInitialLayout","captureActiveOnPress"],"sourceRoot":"../../../../src","sources":["shared/providers/register-bounds.provider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useFocusEffect","useCallback","useMemo","useRef","measure","runOnJS","runOnUI","useAnimatedReaction","useSharedValue","useStableCallback","useStableCallbackValue","AnimationStore","BoundStore","prepareStyleForBounds","createProvider","useLayoutAnchorContext","useKeys","getAncestorKeys","current","ancestors","nav","navigation","getParent","parent","state","getState","routes","index","undefined","focusedRoute","key","push","useInitialLayoutHandler","params","sharedBoundTag","currentScreenKey","ancestorKeys","maybeMeasureAndStore","isAnimating","getAnimation","ancestorAnimations","map","hasMeasuredOnLayout","get","isAnyAnimating","i","length","shouldSetSource","shouldSetDestination","set","useBlurMeasurement","hasCapturedSource","ancestorClosing","route","maybeMeasureOnBlur","closing","markSourceCaptured","useParentSyncReaction","parentContext","updateSignal","value","RegisterBoundsProvider","useRegisterBoundsContext","guarded","style","onPress","animatedRef","remeasureOnFocus","children","next","layoutAnchor","ownSignal","preparedStyles","emitUpdate","isRoot","shouldUpdateSource","measured","correctedMeasured","correctMeasurement","registerSnapshot","existing","getSnapshot","setLinkSource","bounds","updateLinkSource","setLinkDestination","handleInitialLayout","nextScreenKey","nextClosing","prevClosing","captureActiveOnPress"],"sourceRoot":"../../../../src","sources":["shared/providers/register-bounds.provider.tsx"],"mappings":"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","ignoreList":[]}
@@ -29,8 +29,7 @@ export function ScreenStylesProvider({
29
29
  const {
30
30
  current,
31
31
  next,
32
- progress,
33
- stackProgress
32
+ progress
34
33
  } = props;
35
34
  const isDragging = current.gesture.isDragging;
36
35
  const isNextClosing = !!next?.closing;
@@ -41,7 +40,6 @@ export function ScreenStylesProvider({
41
40
  isGesturingDuringCloseAnimation.value = false;
42
41
  }
43
42
  const isInGestureMode = isDragging || isGesturingDuringCloseAnimation.value;
44
- const hasPushedScreenWhileClosing = !isInGestureMode && isNextClosing && stackProgress > progress;
45
43
 
46
44
  // Select interpolator
47
45
  // - If in gesture mode, use current screen's interpolator since we're driving
@@ -51,7 +49,6 @@ export function ScreenStylesProvider({
51
49
 
52
50
  // Build effective props with corrected progress
53
51
  // - Gesture mode: use current.progress only (avoids jumps during drag)
54
- // - Pushed while closing: use stackProgress (includes new screen)
55
52
  // - Normal: use derived progress as-is
56
53
 
57
54
  let effectiveProgress = progress;
@@ -59,8 +56,6 @@ export function ScreenStylesProvider({
59
56
  if (isInGestureMode) {
60
57
  effectiveProgress = current.progress;
61
58
  effectiveNext = undefined;
62
- } else if (hasPushedScreenWhileClosing) {
63
- effectiveProgress = stackProgress;
64
59
  }
65
60
  try {
66
61
  return interpolator({
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","useContext","useMemo","useDerivedValue","useSharedValue","NO_STYLES","_useScreenAnimation","createBounds","jsx","_jsx","ScreenStylesContext","ScreenStylesProvider","children","parentCtx","screenInterpolatorProps","nextInterpolator","currentInterpolator","isGesturingDuringCloseAnimation","stylesMap","props","value","current","next","progress","stackProgress","isDragging","gesture","isNextClosing","closing","isInGestureMode","hasPushedScreenWhileClosing","interpolator","effectiveProgress","effectiveNext","undefined","bounds","err","__DEV__","console","warn","ancestorStylesMaps","Provider","useScreenStyles","ctx","Error"],"sourceRoot":"../../../../../src","sources":["shared/providers/screen/styles.provider.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAC1D,SAECC,eAAe,EACfC,cAAc,QACR,yBAAyB;AAChC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,mBAAmB,QAAQ,4CAA4C;AAEhF,SAASC,YAAY,QAAQ,oBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAWlD,MAAMC,mBAAmB,gBAAGV,aAAa,CACxC,IACD,CAAC;AAED,OAAO,SAASW,oBAAoBA,CAAC;EAAEC;AAAgB,CAAC,EAAE;EACzD,MAAMC,SAAS,GAAGZ,UAAU,CAACS,mBAAmB,CAAC;EAEjD,MAAM;IAAEI,uBAAuB;IAAEC,gBAAgB;IAAEC;EAAoB,CAAC,GACvEV,mBAAmB,CAAC,CAAC;;EAEtB;AACD;AACA;AACA;EACC,MAAMW,+BAA+B,GAAGb,cAAc,CAAC,KAAK,CAAC;EAE7D,MAAMc,SAAS,GAAGf,eAAe,CAA8B,MAAM;IACpE,SAAS;;IACT,MAAMgB,KAAK,GAAGL,uBAAuB,CAACM,KAAK;IAC3C,MAAM;MAAEC,OAAO;MAAEC,IAAI;MAAEC,QAAQ;MAAEC;IAAc,CAAC,GAAGL,KAAK;IACxD,MAAMM,UAAU,GAAGJ,OAAO,CAACK,OAAO,CAACD,UAAU;IAC7C,MAAME,aAAa,GAAG,CAAC,CAACL,IAAI,EAAEM,OAAO;IAErC,IAAIH,UAAU,IAAIE,aAAa,EAAE;MAChCV,+BAA+B,CAACG,KAAK,GAAG,IAAI;IAC7C;IAEA,IAAI,CAACK,UAAU,IAAI,CAACE,aAAa,EAAE;MAClCV,+BAA+B,CAACG,KAAK,GAAG,KAAK;IAC9C;IAEA,MAAMS,eAAe,GAAGJ,UAAU,IAAIR,+BAA+B,CAACG,KAAK;IAE3E,MAAMU,2BAA2B,GAChC,CAACD,eAAe,IAAIF,aAAa,IAAIH,aAAa,GAAGD,QAAQ;;IAE9D;IACA;IACA;IACA,MAAMQ,YAAY,GAAGF,eAAe,GACjCb,mBAAmB,GAClBD,gBAAgB,IAAIC,mBAAoB;IAE5C,IAAI,CAACe,YAAY,EAAE,OAAO1B,SAAS;;IAEnC;IACA;IACA;IACA;;IAEA,IAAI2B,iBAAiB,GAAGT,QAAQ;IAChC,IAAIU,aAAa,GAAGX,IAAI;IAExB,IAAIO,eAAe,EAAE;MACpBG,iBAAiB,GAAGX,OAAO,CAACE,QAAQ;MACpCU,aAAa,GAAGC,SAAS;IAC1B,CAAC,MAAM,IAAIJ,2BAA2B,EAAE;MACvCE,iBAAiB,GAAGR,aAAa;IAClC;IAEA,IAAI;MACH,OAAOO,YAAY,CAAC;QACnB,GAAGZ,KAAK;QACRI,QAAQ,EAAES,iBAAiB;QAC3BV,IAAI,EAAEW,aAAa;QACnBE,MAAM,EAAE5B,YAAY,CAACY,KAAK;MAC3B,CAAC,CAAC;IACH,CAAC,CAAC,OAAOiB,GAAG,EAAE;MACb,IAAIC,OAAO,EAAE;QACZC,OAAO,CAACC,IAAI,CACX,6EAA6E,EAC7EH,GACD,CAAC;MACF;MACA,OAAO/B,SAAS;IACjB;EACD,CAAC,CAAC;EAEF,MAAMe,KAAK,GAAGlB,OAAO,CAAC,MAAM;IAC3B;IACA,MAAMsC,kBAAkB,GAAG3B,SAAS,GACjC,CAACA,SAAS,CAACK,SAAS,EAAE,GAAGL,SAAS,CAAC2B,kBAAkB,CAAC,GACtD,EAAE;IAEL,OAAO;MACNtB,SAAS;MACTsB;IACD,CAAC;EACF,CAAC,EAAE,CAACtB,SAAS,EAAEL,SAAS,CAAC,CAAC;EAE1B,oBACCJ,IAAA,CAACC,mBAAmB,CAAC+B,QAAQ;IAACrB,KAAK,EAAEA,KAAM;IAAAR,QAAA,EACzCA;EAAQ,CACoB,CAAC;AAEjC;AAEA,OAAO,SAAS8B,eAAeA,CAAA,EAAG;EACjC,MAAMC,GAAG,GAAG1C,UAAU,CAACS,mBAAmB,CAAC;EAC3C,IAAI,CAACiC,GAAG,EAAE;IACT,MAAM,IAAIC,KAAK,CACd,4DACD,CAAC;EACF;EACA,OAAOD,GAAG;AACX","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useContext","useMemo","useDerivedValue","useSharedValue","NO_STYLES","_useScreenAnimation","createBounds","jsx","_jsx","ScreenStylesContext","ScreenStylesProvider","children","parentCtx","screenInterpolatorProps","nextInterpolator","currentInterpolator","isGesturingDuringCloseAnimation","stylesMap","props","value","current","next","progress","isDragging","gesture","isNextClosing","closing","isInGestureMode","interpolator","effectiveProgress","effectiveNext","undefined","bounds","err","__DEV__","console","warn","ancestorStylesMaps","Provider","useScreenStyles","ctx","Error"],"sourceRoot":"../../../../../src","sources":["shared/providers/screen/styles.provider.tsx"],"mappings":"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","ignoreList":[]}
@@ -6,6 +6,7 @@ import { useDerivedValue } from "react-native-reanimated";
6
6
  import { StackContext } from "../../hooks/navigation/use-stack";
7
7
  import { AnimationStore } from "../../stores/animation.store";
8
8
  import { HistoryStore } from "../../stores/history.store";
9
+ import { isFloatOverlayVisible } from "../../utils/overlay/visibility";
9
10
  import { useStackCoreContext } from "./core.provider";
10
11
  import { jsx as _jsx } from "react/jsx-runtime";
11
12
  const DirectStackContext = /*#__PURE__*/React.createContext(null);
@@ -42,11 +43,13 @@ function useDirectStackValue(props) {
42
43
  shouldShowFloatOverlay,
43
44
  routeKeys,
44
45
  allRoutes,
45
- allDescriptors
46
+ allDescriptors,
47
+ animationMaps
46
48
  } = useMemo(() => {
47
49
  const allRoutes = state.routes.concat(state.preloadedRoutes);
48
50
  const scenes = [];
49
51
  const routeKeys = [];
52
+ const animationMaps = [];
50
53
  const allDescriptors = {
51
54
  ...preloadedDescriptors,
52
55
  ...descriptors
@@ -61,9 +64,10 @@ function useDirectStackValue(props) {
61
64
  isPreloaded
62
65
  });
63
66
  routeKeys.push(route.key);
67
+ animationMaps.push(AnimationStore.getAll(route.key));
64
68
  if (!shouldShowFloatOverlay && descriptor) {
65
69
  const options = descriptor.options;
66
- if (options?.enableTransitions === true && options?.overlayMode === "float" && options?.overlayShown === true) {
70
+ if (options?.enableTransitions === true && isFloatOverlayVisible(options)) {
67
71
  shouldShowFloatOverlay = true;
68
72
  }
69
73
  }
@@ -73,12 +77,10 @@ function useDirectStackValue(props) {
73
77
  shouldShowFloatOverlay,
74
78
  routeKeys,
75
79
  allRoutes,
76
- allDescriptors
80
+ allDescriptors,
81
+ animationMaps
77
82
  };
78
- }, [state.routes, state.preloadedRoutes, descriptors, preloadedDescriptors]);
79
-
80
- // Get animation store maps for all routes
81
- const animationMaps = useMemo(() => allRoutes.map(route => AnimationStore.getAll(route.key)), [allRoutes]);
83
+ }, [state.routes, state.preloadedRoutes, preloadedDescriptors, descriptors]);
82
84
  const stackProgress = useDerivedValue(() => {
83
85
  "worklet";
84
86
 
@@ -91,15 +93,12 @@ function useDirectStackValue(props) {
91
93
  const optimisticFocusedIndex = useDerivedValue(() => {
92
94
  "worklet";
93
95
 
94
- const currentIndex = animationMaps.length - 1;
95
- let isAnyClosing = false;
96
- for (let i = 0; i < animationMaps.length; i++) {
97
- if (animationMaps[i].closing.value > 0) {
98
- isAnyClosing = true;
99
- break;
100
- }
96
+ const lastIndex = animationMaps.length - 1;
97
+ let closingFromTop = 0;
98
+ for (let i = lastIndex; i >= 0; i--) {
99
+ if (animationMaps[i].closing.value > 0) closingFromTop++;else break;
101
100
  }
102
- return currentIndex - (isAnyClosing ? 1 : 0);
101
+ return lastIndex - closingFromTop;
103
102
  });
104
103
  const focusedIndex = state.index;
105
104
  const stackContextValue = useMemo(() => ({
@@ -111,7 +110,7 @@ function useDirectStackValue(props) {
111
110
  focusedIndex,
112
111
  stackProgress,
113
112
  optimisticFocusedIndex
114
- }), [routeKeys, allRoutes, allDescriptors, scenes, focusedIndex, stackProgress, optimisticFocusedIndex, flags]);
113
+ }), [routeKeys, allRoutes, scenes, focusedIndex, stackProgress, optimisticFocusedIndex, flags, allDescriptors]);
115
114
 
116
115
  // DirectStack context value
117
116
  const lifecycleValue = useMemo(() => ({
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useMemo","useDerivedValue","StackContext","AnimationStore","HistoryStore","useStackCoreContext","jsx","_jsx","DirectStackContext","createContext","displayName","useDirectStackContext","context","useContext","Error","useDirectStackValue","props","state","navigation","descriptors","describe","flags","preloadedDescriptors","preloadedRoutes","reduce","acc","route","key","scenes","shouldShowFloatOverlay","routeKeys","allRoutes","allDescriptors","routes","concat","descriptor","isPreloaded","undefined","push","options","enableTransitions","overlayMode","overlayShown","animationMaps","map","getAll","stackProgress","total","i","length","progress","value","optimisticFocusedIndex","currentIndex","isAnyClosing","closing","focusedIndex","index","stackContextValue","lifecycleValue","withDirectStack","Component","DirectStackProvider","navigatorKey","clearNavigator","Provider","children"],"sourceRoot":"../../../../../src","sources":["shared/providers/stack/direct.provider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useMemo","useDerivedValue","StackContext","AnimationStore","HistoryStore","isFloatOverlayVisible","useStackCoreContext","jsx","_jsx","DirectStackContext","createContext","displayName","useDirectStackContext","context","useContext","Error","useDirectStackValue","props","state","navigation","descriptors","describe","flags","preloadedDescriptors","preloadedRoutes","reduce","acc","route","key","scenes","shouldShowFloatOverlay","routeKeys","allRoutes","allDescriptors","animationMaps","routes","concat","descriptor","isPreloaded","undefined","push","getAll","options","enableTransitions","stackProgress","total","i","length","progress","value","optimisticFocusedIndex","lastIndex","closingFromTop","closing","focusedIndex","index","stackContextValue","lifecycleValue","withDirectStack","Component","DirectStackProvider","navigatorKey","clearNavigator","Provider","children"],"sourceRoot":"../../../../../src","sources":["shared/providers/stack/direct.provider.tsx"],"mappings":"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","ignoreList":[]}
@@ -6,6 +6,7 @@ import { useDerivedValue } from "react-native-reanimated";
6
6
  import { StackContext } from "../../hooks/navigation/use-stack";
7
7
  import { AnimationStore } from "../../stores/animation.store";
8
8
  import { HistoryStore } from "../../stores/history.store";
9
+ import { isFloatOverlayVisible } from "../../utils/overlay/visibility";
9
10
  import { useStackCoreContext } from "./core.provider";
10
11
  import { useLocalRoutes } from "./helpers/use-local-routes";
11
12
 
@@ -41,18 +42,21 @@ function useManagedStackValue(props) {
41
42
  activeScreensLimit,
42
43
  shouldShowFloatOverlay,
43
44
  routeKeys,
44
- backdropBehaviors
45
+ backdropBehaviors,
46
+ animationMaps
45
47
  } = useMemo(() => {
46
48
  const routes = state.routes;
49
+ const descriptors = state.descriptors;
47
50
  const scenes = [];
48
51
  const routeKeys = [];
49
52
  const backdropBehaviors = [];
53
+ const animationMaps = [];
50
54
  let shouldShowFloatOverlay = false;
51
55
  let limit = 1;
52
56
  let stopLimit = false;
53
57
  for (let i = routes.length - 1; i >= 0; i--) {
54
58
  const route = routes[i];
55
- const descriptor = state.descriptors[route.key];
59
+ const descriptor = descriptors[route.key];
56
60
  const options = descriptor?.options;
57
61
  scenes[i] = {
58
62
  route,
@@ -60,8 +64,9 @@ function useManagedStackValue(props) {
60
64
  };
61
65
  routeKeys[i] = route.key;
62
66
  backdropBehaviors[i] = options?.backdropBehavior ?? "block";
67
+ animationMaps[i] = AnimationStore.getAll(route.key);
63
68
  if (!shouldShowFloatOverlay) {
64
- shouldShowFloatOverlay = options?.overlayMode === "float" && options?.overlayShown === true;
69
+ shouldShowFloatOverlay = isFloatOverlayVisible(options);
65
70
  }
66
71
  if (!stopLimit) {
67
72
  const shouldKeepPrevious = options?.detachPreviousScreen !== true;
@@ -78,13 +83,11 @@ function useManagedStackValue(props) {
78
83
  routeKeys,
79
84
  backdropBehaviors,
80
85
  activeScreensLimit,
81
- shouldShowFloatOverlay
86
+ shouldShowFloatOverlay,
87
+ animationMaps
82
88
  };
83
89
  }, [state.routes, state.descriptors]);
84
90
 
85
- // Get animation store maps for LOCAL routes (including closing routes)
86
- const animationMaps = useMemo(() => state.routes.map(route => AnimationStore.getAll(route.key)), [state.routes]);
87
-
88
91
  // Aggregated stack progress from LOCAL routes (includes closing routes)
89
92
  const stackProgress = useDerivedValue(() => {
90
93
  "worklet";
@@ -96,19 +99,19 @@ function useManagedStackValue(props) {
96
99
  return total;
97
100
  });
98
101
 
99
- // Optimistic focused index: accounts for closing screens
102
+ // Optimistic focused index: accounts for closing screens.
103
+ // Counts consecutive closing screens from the top of the stack so that
104
+ // rapid dismiss chains (e.g. dismiss C then B while C is still in flight)
105
+ // correctly identify the actual focused screen for pointer-event gating.
100
106
  const optimisticFocusedIndex = useDerivedValue(() => {
101
107
  "worklet";
102
108
 
103
- const currentIndex = animationMaps.length - 1;
104
- let isAnyClosing = false;
105
- for (let i = 0; i < animationMaps.length; i++) {
106
- if (animationMaps[i].closing.value > 0) {
107
- isAnyClosing = true;
108
- break;
109
- }
109
+ const lastIndex = animationMaps.length - 1;
110
+ let closingFromTop = 0;
111
+ for (let i = lastIndex; i >= 0; i--) {
112
+ if (animationMaps[i].closing.value > 0) closingFromTop++;else break;
110
113
  }
111
- return currentIndex - Number(isAnyClosing);
114
+ return lastIndex - closingFromTop;
112
115
  });
113
116
  const focusedIndex = props.state.index;
114
117
  const stackContextValue = useMemo(() => ({
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useMemo","useDerivedValue","StackContext","AnimationStore","HistoryStore","useStackCoreContext","useLocalRoutes","jsx","_jsx","ManagedStackContext","createContext","displayName","useManagedStackContext","context","useContext","Error","useManagedStackValue","props","flags","state","handleCloseRoute","closingRouteKeys","scenes","activeScreensLimit","shouldShowFloatOverlay","routeKeys","backdropBehaviors","routes","limit","stopLimit","i","length","route","descriptor","descriptors","key","options","backdropBehavior","overlayMode","overlayShown","shouldKeepPrevious","detachPreviousScreen","Math","min","animationMaps","map","getAll","stackProgress","total","progress","value","optimisticFocusedIndex","currentIndex","isAnyClosing","closing","Number","focusedIndex","index","stackContextValue","lifecycleValue","closingRouteKeysShared","shared","withManagedStack","Component","ManagedStackProvider","navigatorKey","clearNavigator","Provider","children"],"sourceRoot":"../../../../../src","sources":["shared/providers/stack/managed.provider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useMemo","useDerivedValue","StackContext","AnimationStore","HistoryStore","isFloatOverlayVisible","useStackCoreContext","useLocalRoutes","jsx","_jsx","ManagedStackContext","createContext","displayName","useManagedStackContext","context","useContext","Error","useManagedStackValue","props","flags","state","handleCloseRoute","closingRouteKeys","scenes","activeScreensLimit","shouldShowFloatOverlay","routeKeys","backdropBehaviors","animationMaps","routes","descriptors","limit","stopLimit","i","length","route","descriptor","key","options","backdropBehavior","getAll","shouldKeepPrevious","detachPreviousScreen","Math","min","stackProgress","total","progress","value","optimisticFocusedIndex","lastIndex","closingFromTop","closing","focusedIndex","index","stackContextValue","lifecycleValue","closingRouteKeysShared","shared","withManagedStack","Component","ManagedStackProvider","navigatorKey","clearNavigator","Provider","children"],"sourceRoot":"../../../../../src","sources":["shared/providers/stack/managed.provider.tsx"],"mappings":"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","ignoreList":[]}
@@ -44,6 +44,51 @@ function setLinkSource(tag, screenKey, bounds, styles = {}, ancestorKeys) {
44
44
  return state;
45
45
  });
46
46
  }
47
+ function updateLinkSource(tag, screenKey, bounds, styles = {}, ancestorKeys) {
48
+ "worklet";
49
+
50
+ registry.modify(state => {
51
+ "worklet";
52
+
53
+ const stack = state[tag]?.linkStack;
54
+ if (!stack || stack.length === 0) return state;
55
+ let targetIndex = -1;
56
+
57
+ // Prefer the most recent completed link first.
58
+ // NOTE: matchesScreenKey is inlined here to avoid a Reanimated
59
+ // workletization crash caused by nested worklet function calls
60
+ // inside registry.modify callbacks.
61
+ for (let i = stack.length - 1; i >= 0; i--) {
62
+ const link = stack[i];
63
+ const src = link.source;
64
+ const srcMatches = src && (src.screenKey === screenKey || (src.ancestorKeys?.includes(screenKey) ?? false));
65
+ if (link.destination && srcMatches) {
66
+ targetIndex = i;
67
+ break;
68
+ }
69
+ }
70
+
71
+ // Fallback to pending links when no completed link matches.
72
+ if (targetIndex === -1) {
73
+ for (let i = stack.length - 1; i >= 0; i--) {
74
+ const src = stack[i].source;
75
+ if (src && (src.screenKey === screenKey || (src.ancestorKeys?.includes(screenKey) ?? false))) {
76
+ targetIndex = i;
77
+ break;
78
+ }
79
+ }
80
+ }
81
+ if (targetIndex !== -1) {
82
+ stack[targetIndex].source = {
83
+ screenKey,
84
+ ancestorKeys,
85
+ bounds,
86
+ styles
87
+ };
88
+ }
89
+ return state;
90
+ });
91
+ }
47
92
  function setLinkDestination(tag, screenKey, bounds, styles = {}, ancestorKeys) {
48
93
  "worklet";
49
94
 
@@ -174,6 +219,7 @@ export const BoundStore = {
174
219
  registerSnapshot,
175
220
  setLinkSource,
176
221
  setLinkDestination,
222
+ updateLinkSource,
177
223
  getActiveLink,
178
224
  getSnapshot,
179
225
  clear