react-native-screen-transitions 3.3.0-beta.3 → 3.3.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/README.md +95 -31
  2. package/lib/commonjs/shared/animation/snap-to.js +2 -0
  3. package/lib/commonjs/shared/animation/snap-to.js.map +1 -1
  4. package/lib/commonjs/shared/components/create-transition-aware-component.js +20 -18
  5. package/lib/commonjs/shared/components/create-transition-aware-component.js.map +1 -1
  6. package/lib/commonjs/shared/components/screen-container.js +59 -6
  7. package/lib/commonjs/shared/components/screen-container.js.map +1 -1
  8. package/lib/commonjs/shared/constants.js +8 -1
  9. package/lib/commonjs/shared/constants.js.map +1 -1
  10. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js +49 -39
  11. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  12. package/lib/commonjs/shared/hooks/gestures/use-screen-gesture-handlers.js +110 -61
  13. package/lib/commonjs/shared/hooks/gestures/use-screen-gesture-handlers.js.map +1 -1
  14. package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js +67 -70
  15. package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
  16. package/lib/commonjs/shared/providers/gestures.provider.js +112 -5
  17. package/lib/commonjs/shared/providers/gestures.provider.js.map +1 -1
  18. package/lib/commonjs/shared/types/ownership.types.js +71 -0
  19. package/lib/commonjs/shared/types/ownership.types.js.map +1 -0
  20. package/lib/commonjs/shared/utils/gesture/check-gesture-activation.js +72 -128
  21. package/lib/commonjs/shared/utils/gesture/check-gesture-activation.js.map +1 -1
  22. package/lib/commonjs/shared/utils/gesture/compute-claimed-directions.js +81 -0
  23. package/lib/commonjs/shared/utils/gesture/compute-claimed-directions.js.map +1 -0
  24. package/lib/commonjs/shared/utils/gesture/determine-snap-target.js +1 -1
  25. package/lib/commonjs/shared/utils/gesture/determine-snap-target.js.map +1 -1
  26. package/lib/commonjs/shared/utils/gesture/find-collapse-target.js +48 -0
  27. package/lib/commonjs/shared/utils/gesture/find-collapse-target.js.map +1 -0
  28. package/lib/commonjs/shared/utils/gesture/resolve-ownership.js +87 -0
  29. package/lib/commonjs/shared/utils/gesture/resolve-ownership.js.map +1 -0
  30. package/lib/commonjs/shared/utils/gesture/velocity.js +16 -5
  31. package/lib/commonjs/shared/utils/gesture/velocity.js.map +1 -1
  32. package/lib/module/shared/animation/snap-to.js +1 -0
  33. package/lib/module/shared/animation/snap-to.js.map +1 -1
  34. package/lib/module/shared/components/create-transition-aware-component.js +20 -18
  35. package/lib/module/shared/components/create-transition-aware-component.js.map +1 -1
  36. package/lib/module/shared/components/screen-container.js +59 -7
  37. package/lib/module/shared/components/screen-container.js.map +1 -1
  38. package/lib/module/shared/constants.js +7 -0
  39. package/lib/module/shared/constants.js.map +1 -1
  40. package/lib/module/shared/hooks/gestures/use-build-gestures.js +49 -39
  41. package/lib/module/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  42. package/lib/module/shared/hooks/gestures/use-screen-gesture-handlers.js +112 -63
  43. package/lib/module/shared/hooks/gestures/use-screen-gesture-handlers.js.map +1 -1
  44. package/lib/module/shared/hooks/gestures/use-scroll-registry.js +68 -70
  45. package/lib/module/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
  46. package/lib/module/shared/providers/gestures.provider.js +112 -5
  47. package/lib/module/shared/providers/gestures.provider.js.map +1 -1
  48. package/lib/module/shared/types/ownership.types.js +67 -0
  49. package/lib/module/shared/types/ownership.types.js.map +1 -0
  50. package/lib/module/shared/utils/gesture/check-gesture-activation.js +70 -126
  51. package/lib/module/shared/utils/gesture/check-gesture-activation.js.map +1 -1
  52. package/lib/module/shared/utils/gesture/compute-claimed-directions.js +77 -0
  53. package/lib/module/shared/utils/gesture/compute-claimed-directions.js.map +1 -0
  54. package/lib/module/shared/utils/gesture/determine-snap-target.js +1 -1
  55. package/lib/module/shared/utils/gesture/determine-snap-target.js.map +1 -1
  56. package/lib/module/shared/utils/gesture/find-collapse-target.js +44 -0
  57. package/lib/module/shared/utils/gesture/find-collapse-target.js.map +1 -0
  58. package/lib/module/shared/utils/gesture/resolve-ownership.js +83 -0
  59. package/lib/module/shared/utils/gesture/resolve-ownership.js.map +1 -0
  60. package/lib/module/shared/utils/gesture/velocity.js +16 -5
  61. package/lib/module/shared/utils/gesture/velocity.js.map +1 -1
  62. package/lib/typescript/shared/animation/snap-to.d.ts.map +1 -1
  63. package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
  64. package/lib/typescript/shared/components/screen-container.d.ts.map +1 -1
  65. package/lib/typescript/shared/constants.d.ts +6 -0
  66. package/lib/typescript/shared/constants.d.ts.map +1 -1
  67. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts +15 -3
  68. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts.map +1 -1
  69. package/lib/typescript/shared/hooks/gestures/use-screen-gesture-handlers.d.ts +52 -2
  70. package/lib/typescript/shared/hooks/gestures/use-screen-gesture-handlers.d.ts.map +1 -1
  71. package/lib/typescript/shared/hooks/gestures/use-scroll-registry.d.ts +11 -6
  72. package/lib/typescript/shared/hooks/gestures/use-scroll-registry.d.ts.map +1 -1
  73. package/lib/typescript/shared/hooks/use-backdrop-pointer-events.d.ts +1 -1
  74. package/lib/typescript/shared/hooks/use-backdrop-pointer-events.d.ts.map +1 -1
  75. package/lib/typescript/shared/providers/gestures.provider.d.ts +27 -2
  76. package/lib/typescript/shared/providers/gestures.provider.d.ts.map +1 -1
  77. package/lib/typescript/shared/types/ownership.types.d.ts +52 -0
  78. package/lib/typescript/shared/types/ownership.types.d.ts.map +1 -0
  79. package/lib/typescript/shared/types/screen.types.d.ts +22 -1
  80. package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
  81. package/lib/typescript/shared/utils/gesture/check-gesture-activation.d.ts +23 -19
  82. package/lib/typescript/shared/utils/gesture/check-gesture-activation.d.ts.map +1 -1
  83. package/lib/typescript/shared/utils/gesture/compute-claimed-directions.d.ts +23 -0
  84. package/lib/typescript/shared/utils/gesture/compute-claimed-directions.d.ts.map +1 -0
  85. package/lib/typescript/shared/utils/gesture/determine-snap-target.d.ts +5 -1
  86. package/lib/typescript/shared/utils/gesture/determine-snap-target.d.ts.map +1 -1
  87. package/lib/typescript/shared/utils/gesture/find-collapse-target.d.ts +17 -0
  88. package/lib/typescript/shared/utils/gesture/find-collapse-target.d.ts.map +1 -0
  89. package/lib/typescript/shared/utils/gesture/resolve-ownership.d.ts +36 -0
  90. package/lib/typescript/shared/utils/gesture/resolve-ownership.d.ts.map +1 -0
  91. package/lib/typescript/shared/utils/gesture/velocity.d.ts.map +1 -1
  92. package/package.json +121 -120
  93. package/src/shared/animation/snap-to.ts +1 -0
  94. package/src/shared/components/create-transition-aware-component.tsx +28 -25
  95. package/src/shared/components/screen-container.tsx +69 -7
  96. package/src/shared/constants.ts +7 -0
  97. package/src/shared/hooks/gestures/use-build-gestures.tsx +80 -44
  98. package/src/shared/hooks/gestures/use-screen-gesture-handlers.ts +147 -71
  99. package/src/shared/hooks/gestures/use-scroll-registry.tsx +94 -86
  100. package/src/shared/hooks/use-backdrop-pointer-events.ts +1 -1
  101. package/src/shared/providers/gestures.provider.tsx +166 -5
  102. package/src/shared/types/ownership.types.ts +77 -0
  103. package/src/shared/types/screen.types.ts +24 -1
  104. package/src/shared/utils/gesture/check-gesture-activation.ts +82 -116
  105. package/src/shared/utils/gesture/compute-claimed-directions.ts +93 -0
  106. package/src/shared/utils/gesture/determine-snap-target.ts +6 -2
  107. package/src/shared/utils/gesture/find-collapse-target.ts +42 -0
  108. package/src/shared/utils/gesture/resolve-ownership.ts +110 -0
  109. package/src/shared/utils/gesture/velocity.ts +16 -6
  110. package/src/shared/__tests__/bounds.store.test.ts +0 -394
  111. package/src/shared/__tests__/derivations.test.ts +0 -156
  112. package/src/shared/__tests__/determine-dismissal.test.ts +0 -111
  113. package/src/shared/__tests__/determine-snap-target.test.ts +0 -268
  114. package/src/shared/__tests__/geometry.test.ts +0 -130
  115. package/src/shared/__tests__/gesture-activation.test.ts +0 -471
  116. package/src/shared/__tests__/gesture.velocity.test.ts +0 -131
  117. package/src/shared/__tests__/history.store.test.ts +0 -550
  118. package/src/shared/__tests__/sync-routes-with-removed.test.ts +0 -137
  119. package/src/shared/__tests__/validate-snap-points.test.ts +0 -125
@@ -1 +1 @@
1
- {"version":3,"names":["StackActions","useCallback","useMemo","useRef","Gesture","useKeys","GestureStore","useScreenGestureHandlers","useBuildGestures","scrollConfig","ancestorContext","current","navState","navigation","getState","isFirstScreen","routes","findIndex","r","key","route","panGestureRef","undefined","gestureAnimationValues","getRouteGestures","snapPoints","options","canDismiss","Boolean","gestureEnabled","hasSnapPoints","Array","isArray","length","handleDismiss","isDismissing","value","state","routeStillPresent","some","dispatch","pop","source","target","onTouchesDown","onTouchesMove","onStart","onUpdate","onEnd","ancestorIsDismissing","panGesture","Pan","withRef","enabled","manualActivation","nativeGesture","Native","requireExternalGestureToFail","blocksExternalGesture","activePanAncestor"],"sourceRoot":"../../../../../src","sources":["shared/hooks/gestures/use-build-gestures.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["StackActions","useCallback","useMemo","useRef","Gesture","useKeys","GestureStore","claimsAnyDirection","resolveOwnership","useScreenGestureHandlers","DIRECTIONS","findShadowedAncestorPanGestures","selfClaims","ancestorContext","isIsolated","shadowedGestures","ancestor","shadowsAncestor","some","dir","claimedDirections","panGesture","push","useBuildGestures","scrollConfig","childDirectionClaims","current","navState","navigation","getState","isFirstScreen","routes","findIndex","r","key","route","panGestureRef","undefined","gestureAnimationValues","getRouteGestures","snapPoints","options","canDismiss","Boolean","gestureEnabled","hasSnapPoints","Array","isArray","length","ownershipStatus","selfClaimsAny","handleDismiss","isDismissing","value","state","routeStillPresent","dispatch","pop","source","target","onTouchesDown","onTouchesMove","onStart","onUpdate","onEnd","ancestorIsDismissing","Pan","withRef","enabled","manualActivation","shadowedAncestorGestures","ancestorPan","blocksExternalGesture"],"sourceRoot":"../../../../../src","sources":["shared/hooks/gestures/use-build-gestures.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,13 +4,13 @@ import { useMemo } from "react";
4
4
  import { useWindowDimensions } from "react-native";
5
5
  import { useSharedValue } from "react-native-reanimated";
6
6
  import { DefaultSnapSpec } from "../../configs/specs";
7
- import { DEFAULT_GESTURE_ACTIVATION_AREA, DEFAULT_GESTURE_DIRECTION, DEFAULT_GESTURE_DRIVES_PROGRESS, EPSILON, FALSE, GESTURE_VELOCITY_IMPACT, TRUE } from "../../constants";
7
+ import { DEFAULT_GESTURE_ACTIVATION_AREA, DEFAULT_GESTURE_DIRECTION, DEFAULT_GESTURE_DRIVES_PROGRESS, EPSILON, FALSE, GESTURE_VELOCITY_IMPACT, SNAP_VELOCITY_IMPACT, TRUE } from "../../constants";
8
8
  import { useKeys } from "../../providers/screen/keys.provider";
9
9
  import { AnimationStore } from "../../stores/animation.store";
10
10
  import { GestureStore } from "../../stores/gesture.store";
11
11
  import { GestureOffsetState } from "../../types/gesture.types";
12
12
  import { animateToProgress } from "../../utils/animation/animate-to-progress";
13
- import { applyOffsetRules, checkScrollAwareActivation } from "../../utils/gesture/check-gesture-activation";
13
+ import { applyOffsetRules, checkScrollBoundary } from "../../utils/gesture/check-gesture-activation";
14
14
  import { determineDismissal } from "../../utils/gesture/determine-dismissal";
15
15
  import { determineSnapTarget } from "../../utils/gesture/determine-snap-target";
16
16
  import { mapGestureToProgress } from "../../utils/gesture/map-gesture-to-progress";
@@ -19,11 +19,60 @@ import { validateSnapPoints } from "../../utils/gesture/validate-snap-points";
19
19
  import { velocity } from "../../utils/gesture/velocity";
20
20
  import { logger } from "../../utils/logger";
21
21
  import useStableCallbackValue from "../use-stable-callback-value";
22
+ /**
23
+ * Gesture Handlers for Screen Dismissal and Snap Navigation
24
+ *
25
+ * ## Mental Model
26
+ *
27
+ * This hook implements the touch handling logic for the gesture ownership system.
28
+ * Each screen has a pan gesture handler that runs through this decision flow:
29
+ *
30
+ * ```
31
+ * onTouchesMove (for each touch move event):
32
+ * 1. ANCESTOR CHECK: If ancestor is dismissing → fail (avoid racing)
33
+ * 2. DIRECTION DETECTION: Determine swipe direction from touch delta
34
+ * 3. OWNERSHIP CHECK: Do we own this direction? (ownershipStatus)
35
+ * - "self" → continue
36
+ * - "ancestor" or null → fail (let it bubble up)
37
+ * 4. CHILD CLAIM CHECK: Has a child pre-registered a claim for this direction?
38
+ * - Yes → fail immediately (child shadows us, no delay)
39
+ * - No → continue
40
+ * 5. OFFSET THRESHOLD: Wait for sufficient touch movement
41
+ * 6. SCROLLVIEW CHECK: If touch is on ScrollView, is it at boundary?
42
+ * 7. EXPAND CHECK (snap sheets): If expanding via ScrollView, is expandViaScrollView enabled?
43
+ * 8. ACTIVATE!
44
+ * ```
45
+ *
46
+ * ## Key Concepts
47
+ *
48
+ * **Ownership**: Pre-computed at render time. "self" means this screen handles
49
+ * the direction, "ancestor" means bubble up, null means no handler exists.
50
+ *
51
+ * **Child Claims**: Registered at mount time via useEffect in gestures.provider.tsx.
52
+ * When a child shadows our direction, it pre-registers a claim so we know to defer.
53
+ * IMPORTANT: This check happens BEFORE offset threshold to ensure the parent fails
54
+ * immediately when shadowed, avoiding any perceptible delay.
55
+ * ALSO: Claims from dismissing children are ignored, allowing the parent to handle
56
+ * new gestures while the child is animating out.
57
+ *
58
+ * **ScrollView Boundaries**: Per spec, a ScrollView must be at its boundary before
59
+ * yielding to gestures. The boundary depends on sheet type:
60
+ * - Bottom sheet (vertical): scrollY = 0 (top)
61
+ * - Top sheet (vertical-inverted): scrollY >= maxY (bottom)
62
+ *
63
+ * **Snap Points**: Sheets with snapPoints claim BOTH directions on their axis
64
+ * (e.g., vertical sheet claims vertical AND vertical-inverted). This allows
65
+ * expand (drag up) and collapse/dismiss (drag down) gestures.
66
+ */
22
67
  export const useScreenGestureHandlers = ({
23
68
  scrollConfig,
24
69
  ancestorIsDismissing,
25
70
  canDismiss,
26
- handleDismiss
71
+ handleDismiss,
72
+ ownershipStatus,
73
+ claimedDirections,
74
+ ancestorContext,
75
+ childDirectionClaims
27
76
  }) => {
28
77
  const dimensions = useWindowDimensions();
29
78
  const {
@@ -35,10 +84,12 @@ export const useScreenGestureHandlers = ({
35
84
  gestureDirection = DEFAULT_GESTURE_DIRECTION,
36
85
  gestureDrivesProgress = DEFAULT_GESTURE_DRIVES_PROGRESS,
37
86
  gestureVelocityImpact = GESTURE_VELOCITY_IMPACT,
87
+ snapVelocityImpact = SNAP_VELOCITY_IMPACT,
38
88
  gestureActivationArea = DEFAULT_GESTURE_ACTIVATION_AREA,
39
89
  gestureResponseDistance,
40
90
  transitionSpec,
41
- snapPoints: rawSnapPoints
91
+ snapPoints: rawSnapPoints,
92
+ expandViaScrollView = true
42
93
  } = current.options;
43
94
  const {
44
95
  hasSnapPoints,
@@ -94,10 +145,11 @@ export const useScreenGestureHandlers = ({
94
145
  };
95
146
  gestureOffsetState.value = GestureOffsetState.PENDING;
96
147
  });
148
+ const routeKey = current.route.key;
97
149
  const onTouchesMove = useStableCallbackValue((e, manager) => {
98
150
  "worklet";
99
151
 
100
- // If an ancestor navigator is already dismissing via gesture, block new gestures here.
152
+ // Step 1: Ancestor dismissing check
101
153
  if (ancestorIsDismissing?.value) {
102
154
  gestureOffsetState.value = GestureOffsetState.FAILED;
103
155
  manager.fail();
@@ -123,62 +175,70 @@ export const useScreenGestureHandlers = ({
123
175
  manager.fail();
124
176
  return;
125
177
  }
126
-
127
- // Keep pending until thresholds are met; no eager activation.
128
178
  if (gestureAnimationValues.isDragging?.value) {
129
179
  manager.activate();
130
180
  return;
131
181
  }
132
- const recognizedDirection = isSwipingDown || isSwipingUp || isSwipingRight || isSwipingLeft;
133
- const scrollCfg = scrollConfig.value;
134
- const isTouchingScrollView = scrollCfg?.isTouched ?? false;
135
- if (!isTouchingScrollView) {
136
- // Early return if gesture hasn't met activation criteria
137
- const canActivate = recognizedDirection && gestureOffsetState.value === GestureOffsetState.PASSED && !gestureAnimationValues.isDismissing?.value;
138
- if (!canActivate) {
139
- return;
140
- }
141
- if (isSwipingDown) {
142
- gestureAnimationValues.direction.value = "vertical";
143
- } else if (isSwipingUp) {
144
- gestureAnimationValues.direction.value = "vertical-inverted";
145
- } else if (isSwipingRight) {
146
- gestureAnimationValues.direction.value = "horizontal";
147
- } else if (isSwipingLeft) {
148
- gestureAnimationValues.direction.value = "horizontal-inverted";
149
- }
150
- manager.activate();
182
+
183
+ // Step 2: Direction detection
184
+ let swipeDirection = null;
185
+ if (isSwipingDown) swipeDirection = "vertical";else if (isSwipingUp) swipeDirection = "vertical-inverted";else if (isSwipingRight) swipeDirection = "horizontal";else if (isSwipingLeft) swipeDirection = "horizontal-inverted";
186
+ if (!swipeDirection) {
151
187
  return;
152
188
  }
153
189
 
154
- // Touch IS on ScrollView - apply scroll-aware rules
155
- // Snap mode: determine if sheet can still expand
156
- // Also check targetProgress - if we're already animating toward max, scroll should win
157
- const canExpandMore = hasSnapPoints && animations.progress.value < maxSnapPoint - EPSILON && animations.targetProgress.value < maxSnapPoint - EPSILON;
158
- const {
159
- shouldActivate,
160
- direction: activatedDirection
161
- } = checkScrollAwareActivation({
162
- swipeInfo: {
163
- isSwipingDown,
164
- isSwipingUp,
165
- isSwipingRight,
166
- isSwipingLeft
167
- },
168
- directions,
169
- scrollConfig: scrollCfg,
170
- hasSnapPoints,
171
- canExpandMore
172
- });
173
- if (recognizedDirection && !shouldActivate) {
190
+ // Step 3: Ownership check - fail if we don't own this direction
191
+ const ownership = ownershipStatus[swipeDirection];
192
+ if (ownership !== "self") {
174
193
  manager.fail();
175
194
  return;
176
195
  }
177
- if (shouldActivate && gestureOffsetState.value === GestureOffsetState.PASSED && !gestureAnimationValues.isDismissing?.value) {
178
- gestureAnimationValues.direction.value = activatedDirection;
179
- manager.activate();
196
+
197
+ // Step 4: Child claim check - fail EARLY if a child shadows this direction
198
+ // This MUST happen before offset threshold to avoid delay when shadowing
199
+ // ALSO: Ignore claims from children that are currently dismissing
200
+ const childClaim = childDirectionClaims.value[swipeDirection];
201
+ if (childClaim && childClaim.routeKey !== routeKey && !childClaim.isDismissing.value) {
202
+ manager.fail();
180
203
  return;
181
204
  }
205
+ if (gestureOffsetState.value !== GestureOffsetState.PASSED) {
206
+ return;
207
+ }
208
+
209
+ // Snap sheets can interrupt their own animation; non-snap cannot
210
+ if (!hasSnapPoints && gestureAnimationValues.isDismissing?.value) {
211
+ return;
212
+ }
213
+
214
+ // Step 6: ScrollView boundary check
215
+ const scrollCfg = scrollConfig.value;
216
+ const isTouchingScrollView = scrollCfg?.isTouched ?? false;
217
+ if (isTouchingScrollView) {
218
+ const atBoundary = checkScrollBoundary(scrollCfg, swipeDirection, hasSnapPoints ? directions.snapAxisInverted : undefined);
219
+ if (!atBoundary) {
220
+ manager.fail();
221
+ return;
222
+ }
223
+
224
+ // Step 7: Expand check for snap sheets
225
+ if (hasSnapPoints) {
226
+ const isExpandGesture = directions.snapAxisInverted && swipeDirection === "vertical" || !directions.snapAxisInverted && swipeDirection === "vertical-inverted" || directions.snapAxisInverted && swipeDirection === "horizontal" || !directions.snapAxisInverted && swipeDirection === "horizontal-inverted";
227
+ if (isExpandGesture) {
228
+ if (!expandViaScrollView) {
229
+ manager.fail();
230
+ return;
231
+ }
232
+ const canExpandMore = animations.progress.value < maxSnapPoint - EPSILON && animations.targetProgress.value < maxSnapPoint - EPSILON;
233
+ if (!canExpandMore) {
234
+ manager.fail();
235
+ return;
236
+ }
237
+ }
238
+ }
239
+ }
240
+ gestureAnimationValues.direction.value = swipeDirection;
241
+ manager.activate();
182
242
  });
183
243
  const onStart = useStableCallbackValue(() => {
184
244
  "worklet";
@@ -208,15 +268,10 @@ export const useScreenGestureHandlers = ({
208
268
  const translation = isHorizontal ? translationX : translationY;
209
269
  const dimension = isHorizontal ? width : height;
210
270
 
211
- // Map translation to progress delta:
212
- // - Positive translation (down/right) = decrease progress (dismiss)
213
- // - Negative translation (up/left) = increase progress (expand)
214
- // Inverted directions flip this behavior
271
+ // Map translation to progress: positive = dismiss, negative = expand
215
272
  const baseSign = -1;
216
273
  const sign = directions.snapAxisInverted ? -baseSign : baseSign;
217
274
  const progressDelta = sign * translation / dimension;
218
-
219
- // Use pre-computed bounds (minSnapPoint already accounts for canDismiss)
220
275
  animations.progress.value = Math.max(minSnapPoint, Math.min(maxSnapPoint, gestureStartProgress.value + progressDelta));
221
276
  } else if (gestureDrivesProgress) {
222
277
  let maxProgress = 0;
@@ -255,15 +310,14 @@ export const useScreenGestureHandlers = ({
255
310
  const axisVelocity = isHorizontal ? event.velocityX : event.velocityY;
256
311
  const axisDimension = isHorizontal ? dimensions.width : dimensions.height;
257
312
 
258
- // determineSnapTarget expects positive velocity = toward dismiss (decreasing progress)
259
- // Positive velocity (down/right) = dismiss for non-inverted
260
- // Inverted directions need velocity flipped
313
+ // Normalize velocity: positive = toward dismiss
261
314
  const snapVelocity = directions.snapAxisInverted ? -axisVelocity : axisVelocity;
262
315
  const result = determineSnapTarget({
263
316
  currentProgress: animations.progress.value,
264
317
  snapPoints,
265
318
  velocity: snapVelocity,
266
319
  dimension: axisDimension,
320
+ velocityFactor: snapVelocityImpact,
267
321
  canDismiss: canDismiss
268
322
  });
269
323
  const shouldDismiss = result.shouldDismiss;
@@ -281,10 +335,6 @@ export const useScreenGestureHandlers = ({
281
335
  event,
282
336
  dimensions
283
337
  });
284
-
285
- // For snap transitions, velocity should match gesture direction
286
- // Positive gesture velocity (down/right) = collapsing (negative progress velocity)
287
- // Inverted directions flip this
288
338
  const velocitySign = directions.snapAxisInverted ? 1 : -1;
289
339
  const initialVelocity = velocitySign * velocity.normalize(axisVelocity, axisDimension);
290
340
  animateToProgress({
@@ -302,7 +352,6 @@ export const useScreenGestureHandlers = ({
302
352
  gestureVelocityImpact
303
353
  });
304
354
  const shouldDismiss = result.shouldDismiss;
305
- // Without snap points, always animate to fully visible (1) when not dismissing
306
355
  const targetProgress = shouldDismiss ? 0 : 1;
307
356
  resetGestureValues({
308
357
  spec: shouldDismiss ? transitionSpec?.close : transitionSpec?.open,
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","useWindowDimensions","useSharedValue","DefaultSnapSpec","DEFAULT_GESTURE_ACTIVATION_AREA","DEFAULT_GESTURE_DIRECTION","DEFAULT_GESTURE_DRIVES_PROGRESS","EPSILON","FALSE","GESTURE_VELOCITY_IMPACT","TRUE","useKeys","AnimationStore","GestureStore","GestureOffsetState","animateToProgress","applyOffsetRules","checkScrollAwareActivation","determineDismissal","determineSnapTarget","mapGestureToProgress","resetGestureValues","validateSnapPoints","velocity","logger","useStableCallbackValue","useScreenGestureHandlers","scrollConfig","ancestorIsDismissing","canDismiss","handleDismiss","dimensions","current","animations","getAll","route","key","gestureAnimationValues","getRouteGestures","gestureDirection","gestureDrivesProgress","gestureVelocityImpact","gestureActivationArea","gestureResponseDistance","transitionSpec","snapPoints","rawSnapPoints","options","hasSnapPoints","minSnapPoint","maxSnapPoint","directions","Array","isArray","warn","effectiveDirection","directionsArray","isBidirectional","includes","hasHorizontalDirection","isSnapAxisInverted","enableBothVertical","enableBothHorizontal","vertical","verticalInverted","horizontal","horizontalInverted","snapAxisInverted","snapAxis","initialTouch","x","y","gestureOffsetState","PENDING","gestureStartProgress","onTouchesDown","e","firstTouch","changedTouches","value","onTouchesMove","manager","FAILED","fail","touch","isSwipingDown","isSwipingUp","isSwipingRight","isSwipingLeft","activationArea","responseDistance","isDragging","activate","recognizedDirection","scrollCfg","isTouchingScrollView","isTouched","canActivate","PASSED","isDismissing","direction","canExpandMore","progress","targetProgress","shouldActivate","activatedDirection","swipeInfo","onStart","animating","onUpdate","event","translationX","translationY","width","height","normalizedX","normalizeTranslation","normalizedY","isHorizontal","translation","dimension","baseSign","sign","progressDelta","Math","max","min","maxProgress","onEnd","axisVelocity","velocityX","velocityY","axisDimension","snapVelocity","result","currentProgress","shouldDismiss","isSnapping","spec","close","open","effectiveSpec","expand","collapse","gestures","velocitySign","initialVelocity","normalize","target","onAnimationFinish","undefined","calculateProgressVelocity"],"sourceRoot":"../../../../../src","sources":["shared/hooks/gestures/use-screen-gesture-handlers.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,mBAAmB,QAAQ,cAAc;AAQlD,SAA2BC,cAAc,QAAQ,yBAAyB;AAC1E,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SACCC,+BAA+B,EAC/BC,yBAAyB,EACzBC,+BAA+B,EAC/BC,OAAO,EACPC,KAAK,EACLC,uBAAuB,EACvBC,IAAI,QACE,iBAAiB;AAExB,SAASC,OAAO,QAAQ,sCAAsC;AAC9D,SAASC,cAAc,QAAQ,8BAA8B;AAC7D,SAASC,YAAY,QAAQ,4BAA4B;AACzD,SAASC,kBAAkB,QAAQ,2BAA2B;AAC9D,SAASC,iBAAiB,QAAQ,2CAA2C;AAC7E,SACCC,gBAAgB,EAChBC,0BAA0B,QACpB,8CAA8C;AACrD,SAASC,kBAAkB,QAAQ,yCAAyC;AAC5E,SAASC,mBAAmB,QAAQ,2CAA2C;AAC/E,SAASC,oBAAoB,QAAQ,6CAA6C;AAClF,SAASC,kBAAkB,QAAQ,0CAA0C;AAC7E,SAASC,kBAAkB,QAAQ,0CAA0C;AAC7E,SAASC,QAAQ,QAAQ,8BAA8B;AACvD,SAASC,MAAM,QAAQ,oBAAoB;AAC3C,OAAOC,sBAAsB,MAAM,8BAA8B;AASjE,OAAO,MAAMC,wBAAwB,GAAGA,CAAC;EACxCC,YAAY;EACZC,oBAAoB;EACpBC,UAAU;EACVC;AAC8B,CAAC,KAAK;EACpC,MAAMC,UAAU,GAAG9B,mBAAmB,CAAC,CAAC;EACxC,MAAM;IAAE+B;EAAQ,CAAC,GAAGrB,OAAO,CAAC,CAAC;EAE7B,MAAMsB,UAAU,GAAGrB,cAAc,CAACsB,MAAM,CAACF,OAAO,CAACG,KAAK,CAACC,GAAG,CAAC;EAC3D,MAAMC,sBAAsB,GAAGxB,YAAY,CAACyB,gBAAgB,CAC3DN,OAAO,CAACG,KAAK,CAACC,GACf,CAAC;EAED,MAAM;IACLG,gBAAgB,GAAGlC,yBAAyB;IAC5CmC,qBAAqB,GAAGlC,+BAA+B;IACvDmC,qBAAqB,GAAGhC,uBAAuB;IAC/CiC,qBAAqB,GAAGtC,+BAA+B;IACvDuC,uBAAuB;IACvBC,cAAc;IACdC,UAAU,EAAEC;EACb,CAAC,GAAGd,OAAO,CAACe,OAAO;EAEnB,MAAM;IAAEC,aAAa;IAAEH,UAAU;IAAEI,YAAY;IAAEC;EAAa,CAAC,GAAGlD,OAAO,CACxE,MAAMsB,kBAAkB,CAAC;IAAEuB,UAAU,EAAEC,aAAa;IAAEjB;EAAW,CAAC,CAAC,EACnE,CAACiB,aAAa,EAAEjB,UAAU,CAC3B,CAAC;EAED,MAAMsB,UAAU,GAAGnD,OAAO,CAAC,MAAM;IAChC,IAAIgD,aAAa,IAAII,KAAK,CAACC,OAAO,CAACd,gBAAgB,CAAC,EAAE;MACrD;AACH;AACA;AACA;AACA;AACA;AACA;MACGf,MAAM,CAAC8B,IAAI,CACV,2DAA2D,GAC1D,6BAA6Bf,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,GAClE,wFACF,CAAC;IACF;;IAEA;IACA,MAAMgB,kBAAkB,GAAGP,aAAa,GACrCI,KAAK,CAACC,OAAO,CAACd,gBAAgB,CAAC,GAC9BA,gBAAgB,CAAC,CAAC,CAAC,GACnBA,gBAAgB,GACjBA,gBAAgB;IAEnB,MAAMiB,eAAe,GAAGJ,KAAK,CAACC,OAAO,CAACE,kBAAkB,CAAC,GACtDA,kBAAkB,GAClB,CAACA,kBAAkB,CAAC;IAEvB,MAAME,eAAe,GAAGD,eAAe,CAACE,QAAQ,CAAC,eAAe,CAAC;IAEjE,MAAMC,sBAAsB,GAC3BH,eAAe,CAACE,QAAQ,CAAC,YAAY,CAAC,IACtCF,eAAe,CAACE,QAAQ,CAAC,qBAAqB,CAAC;IAEhD,MAAME,kBAAkB,GAAGD,sBAAsB,GAC9CH,eAAe,CAACE,QAAQ,CAAC,qBAAqB,CAAC,IAChD,CAACF,eAAe,CAACE,QAAQ,CAAC,YAAY,CAAC,GACtCF,eAAe,CAACE,QAAQ,CAAC,mBAAmB,CAAC,IAC9C,CAACF,eAAe,CAACE,QAAQ,CAAC,UAAU,CAAC;IAEvC,MAAMG,kBAAkB,GACvBJ,eAAe,IAAKT,aAAa,IAAI,CAACW,sBAAuB;IAC9D,MAAMG,oBAAoB,GACzBL,eAAe,IAAKT,aAAa,IAAIW,sBAAuB;IAE7D,OAAO;MACNI,QAAQ,EAAEP,eAAe,CAACE,QAAQ,CAAC,UAAU,CAAC,IAAIG,kBAAkB;MACpEG,gBAAgB,EACfR,eAAe,CAACE,QAAQ,CAAC,mBAAmB,CAAC,IAAIG,kBAAkB;MACpEI,UAAU,EACTT,eAAe,CAACE,QAAQ,CAAC,YAAY,CAAC,IAAII,oBAAoB;MAC/DI,kBAAkB,EACjBV,eAAe,CAACE,QAAQ,CAAC,qBAAqB,CAAC,IAAII,oBAAoB;MACxEK,gBAAgB,EAAEnB,aAAa,IAAIY;IACpC,CAAC;EACF,CAAC,EAAE,CAACrB,gBAAgB,EAAES,aAAa,CAAC,CAAC;EAErC,MAAMoB,QAAQ,GACbjB,UAAU,CAACc,UAAU,IAAId,UAAU,CAACe,kBAAkB,GACnD,YAAY,GACZ,UAAU;EAEd,MAAMG,YAAY,GAAGnE,cAAc,CAAC;IAAEoE,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC,CAAC;EACnD,MAAMC,kBAAkB,GAAGtE,cAAc,CACxCY,kBAAkB,CAAC2D,OACpB,CAAC;EACD,MAAMC,oBAAoB,GAAGxE,cAAc,CAAC,CAAC,CAAC;EAE9C,MAAMyE,aAAa,GAAGlD,sBAAsB,CAAEmD,CAAoB,IAAK;IACtE,SAAS;;IACT,MAAMC,UAAU,GAAGD,CAAC,CAACE,cAAc,CAAC,CAAC,CAAC;IACtCT,YAAY,CAACU,KAAK,GAAG;MAAET,CAAC,EAAEO,UAAU,CAACP,CAAC;MAAEC,CAAC,EAAEM,UAAU,CAACN;IAAE,CAAC;IACzDC,kBAAkB,CAACO,KAAK,GAAGjE,kBAAkB,CAAC2D,OAAO;EACtD,CAAC,CAAC;EAEF,MAAMO,aAAa,GAAGvD,sBAAsB,CAC3C,CAACmD,CAAoB,EAAEK,OAAgC,KAAK;IAC3D,SAAS;;IAET;IACA,IAAIrD,oBAAoB,EAAEmD,KAAK,EAAE;MAChCP,kBAAkB,CAACO,KAAK,GAAGjE,kBAAkB,CAACoE,MAAM;MACpDD,OAAO,CAACE,IAAI,CAAC,CAAC;MACd;IACD;IAEA,MAAMC,KAAK,GAAGR,CAAC,CAACE,cAAc,CAAC,CAAC,CAAC;IAEjC,MAAM;MAAEO,aAAa;MAAEC,WAAW;MAAEC,cAAc;MAAEC;IAAc,CAAC,GAClExE,gBAAgB,CAAC;MAChBoE,KAAK;MACLjC,UAAU;MACV8B,OAAO;MACPlD,UAAU;MACVyC,kBAAkB;MAClBH,YAAY,EAAEA,YAAY,CAACU,KAAK;MAChCU,cAAc,EAAE/C,qBAAqB;MACrCgD,gBAAgB,EAAE/C;IACnB,CAAC,CAAC;IAEH,IAAI6B,kBAAkB,CAACO,KAAK,KAAKjE,kBAAkB,CAACoE,MAAM,EAAE;MAC3DD,OAAO,CAACE,IAAI,CAAC,CAAC;MACd;IACD;;IAEA;IACA,IAAI9C,sBAAsB,CAACsD,UAAU,EAAEZ,KAAK,EAAE;MAC7CE,OAAO,CAACW,QAAQ,CAAC,CAAC;MAClB;IACD;IAEA,MAAMC,mBAAmB,GACxBR,aAAa,IAAIC,WAAW,IAAIC,cAAc,IAAIC,aAAa;IAEhE,MAAMM,SAAS,GAAGnE,YAAY,CAACoD,KAAK;IACpC,MAAMgB,oBAAoB,GAAGD,SAAS,EAAEE,SAAS,IAAI,KAAK;IAE1D,IAAI,CAACD,oBAAoB,EAAE;MAC1B;MACA,MAAME,WAAW,GAChBJ,mBAAmB,IACnBrB,kBAAkB,CAACO,KAAK,KAAKjE,kBAAkB,CAACoF,MAAM,IACtD,CAAC7D,sBAAsB,CAAC8D,YAAY,EAAEpB,KAAK;MAE5C,IAAI,CAACkB,WAAW,EAAE;QACjB;MACD;MAEA,IAAIZ,aAAa,EAAE;QAClBhD,sBAAsB,CAAC+D,SAAS,CAACrB,KAAK,GAAG,UAAU;MACpD,CAAC,MAAM,IAAIO,WAAW,EAAE;QACvBjD,sBAAsB,CAAC+D,SAAS,CAACrB,KAAK,GAAG,mBAAmB;MAC7D,CAAC,MAAM,IAAIQ,cAAc,EAAE;QAC1BlD,sBAAsB,CAAC+D,SAAS,CAACrB,KAAK,GAAG,YAAY;MACtD,CAAC,MAAM,IAAIS,aAAa,EAAE;QACzBnD,sBAAsB,CAAC+D,SAAS,CAACrB,KAAK,GAAG,qBAAqB;MAC/D;MAEAE,OAAO,CAACW,QAAQ,CAAC,CAAC;MAClB;IACD;;IAEA;IACA;IACA;IACA,MAAMS,aAAa,GAClBrD,aAAa,IACbf,UAAU,CAACqE,QAAQ,CAACvB,KAAK,GAAG7B,YAAY,GAAG3C,OAAO,IAClD0B,UAAU,CAACsE,cAAc,CAACxB,KAAK,GAAG7B,YAAY,GAAG3C,OAAO;IAEzD,MAAM;MAAEiG,cAAc;MAAEJ,SAAS,EAAEK;IAAmB,CAAC,GACtDxF,0BAA0B,CAAC;MAC1ByF,SAAS,EAAE;QACVrB,aAAa;QACbC,WAAW;QACXC,cAAc;QACdC;MACD,CAAC;MACDrC,UAAU;MACVxB,YAAY,EAAEmE,SAAS;MACvB9C,aAAa;MACbqD;IACD,CAAC,CAAC;IAEH,IAAIR,mBAAmB,IAAI,CAACW,cAAc,EAAE;MAC3CvB,OAAO,CAACE,IAAI,CAAC,CAAC;MACd;IACD;IAEA,IACCqB,cAAc,IACdhC,kBAAkB,CAACO,KAAK,KAAKjE,kBAAkB,CAACoF,MAAM,IACtD,CAAC7D,sBAAsB,CAAC8D,YAAY,EAAEpB,KAAK,EAC1C;MACD1C,sBAAsB,CAAC+D,SAAS,CAACrB,KAAK,GAAG0B,kBAAkB;MAC3DxB,OAAO,CAACW,QAAQ,CAAC,CAAC;MAClB;IACD;EACD,CACD,CAAC;EAED,MAAMe,OAAO,GAAGlF,sBAAsB,CAAC,MAAM;IAC5C,SAAS;;IACTY,sBAAsB,CAACsD,UAAU,CAACZ,KAAK,GAAGrE,IAAI;IAC9C2B,sBAAsB,CAAC8D,YAAY,CAACpB,KAAK,GAAGvE,KAAK;IACjDkE,oBAAoB,CAACK,KAAK,GAAG9C,UAAU,CAACqE,QAAQ,CAACvB,KAAK;IACtD9C,UAAU,CAAC2E,SAAS,CAAC7B,KAAK,GAAGrE,IAAI;EAClC,CAAC,CAAC;EAEF,MAAMmG,QAAQ,GAAGpF,sBAAsB,CACrCqF,KAAwD,IAAK;IAC7D,SAAS;;IAET,MAAM;MAAEC,YAAY;MAAEC;IAAa,CAAC,GAAGF,KAAK;IAC5C,MAAM;MAAEG,KAAK;MAAEC;IAAO,CAAC,GAAGnF,UAAU;IAEpCM,sBAAsB,CAACiC,CAAC,CAACS,KAAK,GAAGgC,YAAY;IAC7C1E,sBAAsB,CAACkC,CAAC,CAACQ,KAAK,GAAGiC,YAAY;IAC7C3E,sBAAsB,CAAC8E,WAAW,CAACpC,KAAK,GAAGxD,QAAQ,CAAC6F,oBAAoB,CACvEL,YAAY,EACZE,KACD,CAAC;IACD5E,sBAAsB,CAACgF,WAAW,CAACtC,KAAK,GAAGxD,QAAQ,CAAC6F,oBAAoB,CACvEJ,YAAY,EACZE,MACD,CAAC;IAED,IAAIlE,aAAa,IAAIR,qBAAqB,EAAE;MAC3C,MAAM8E,YAAY,GAAGlD,QAAQ,KAAK,YAAY;MAC9C,MAAMmD,WAAW,GAAGD,YAAY,GAAGP,YAAY,GAAGC,YAAY;MAC9D,MAAMQ,SAAS,GAAGF,YAAY,GAAGL,KAAK,GAAGC,MAAM;;MAE/C;MACA;MACA;MACA;MACA,MAAMO,QAAQ,GAAG,CAAC,CAAC;MACnB,MAAMC,IAAI,GAAGvE,UAAU,CAACgB,gBAAgB,GAAG,CAACsD,QAAQ,GAAGA,QAAQ;MAC/D,MAAME,aAAa,GAAID,IAAI,GAAGH,WAAW,GAAIC,SAAS;;MAEtD;MACAvF,UAAU,CAACqE,QAAQ,CAACvB,KAAK,GAAG6C,IAAI,CAACC,GAAG,CACnC5E,YAAY,EACZ2E,IAAI,CAACE,GAAG,CAAC5E,YAAY,EAAEwB,oBAAoB,CAACK,KAAK,GAAG4C,aAAa,CAClE,CAAC;IACF,CAAC,MAAM,IAAInF,qBAAqB,EAAE;MACjC,IAAIuF,WAAW,GAAG,CAAC;;MAEnB;MACA,IAAI5E,UAAU,CAACc,UAAU,IAAI8C,YAAY,GAAG,CAAC,EAAE;QAC9C,MAAMT,QAAQ,GAAGlF,oBAAoB,CAAC2F,YAAY,EAAEE,KAAK,CAAC;QAC1Dc,WAAW,GAAGH,IAAI,CAACC,GAAG,CAACE,WAAW,EAAEzB,QAAQ,CAAC;MAC9C;;MAEA;MACA,IAAInD,UAAU,CAACe,kBAAkB,IAAI6C,YAAY,GAAG,CAAC,EAAE;QACtD,MAAMT,QAAQ,GAAGlF,oBAAoB,CAAC,CAAC2F,YAAY,EAAEE,KAAK,CAAC;QAC3Dc,WAAW,GAAGH,IAAI,CAACC,GAAG,CAACE,WAAW,EAAEzB,QAAQ,CAAC;MAC9C;;MAEA;MACA,IAAInD,UAAU,CAACY,QAAQ,IAAIiD,YAAY,GAAG,CAAC,EAAE;QAC5C,MAAMV,QAAQ,GAAGlF,oBAAoB,CAAC4F,YAAY,EAAEE,MAAM,CAAC;QAC3Da,WAAW,GAAGH,IAAI,CAACC,GAAG,CAACE,WAAW,EAAEzB,QAAQ,CAAC;MAC9C;;MAEA;MACA,IAAInD,UAAU,CAACa,gBAAgB,IAAIgD,YAAY,GAAG,CAAC,EAAE;QACpD,MAAMV,QAAQ,GAAGlF,oBAAoB,CAAC,CAAC4F,YAAY,EAAEE,MAAM,CAAC;QAC5Da,WAAW,GAAGH,IAAI,CAACC,GAAG,CAACE,WAAW,EAAEzB,QAAQ,CAAC;MAC9C;MAEArE,UAAU,CAACqE,QAAQ,CAACvB,KAAK,GAAG6C,IAAI,CAACC,GAAG,CACnC,CAAC,EACDD,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEpD,oBAAoB,CAACK,KAAK,GAAGgD,WAAW,CACrD,CAAC;IACF;EACD,CACD,CAAC;EAED,MAAMC,KAAK,GAAGvG,sBAAsB,CAClCqF,KAA6D,IAAK;IAClE,SAAS;;IAET,IAAI9D,aAAa,EAAE;MAClB,MAAMsE,YAAY,GAAGlD,QAAQ,KAAK,YAAY;MAC9C,MAAM6D,YAAY,GAAGX,YAAY,GAAGR,KAAK,CAACoB,SAAS,GAAGpB,KAAK,CAACqB,SAAS;MACrE,MAAMC,aAAa,GAAGd,YAAY,GAC/BvF,UAAU,CAACkF,KAAK,GAChBlF,UAAU,CAACmF,MAAM;;MAEpB;MACA;MACA;MACA,MAAMmB,YAAY,GAAGlF,UAAU,CAACgB,gBAAgB,GAC7C,CAAC8D,YAAY,GACbA,YAAY;MAEf,MAAMK,MAAM,GAAGnH,mBAAmB,CAAC;QAClCoH,eAAe,EAAEtG,UAAU,CAACqE,QAAQ,CAACvB,KAAK;QAC1ClC,UAAU;QACVtB,QAAQ,EAAE8G,YAAY;QACtBb,SAAS,EAAEY,aAAa;QACxBvG,UAAU,EAAEA;MACb,CAAC,CAAC;MAEF,MAAM2G,aAAa,GAAGF,MAAM,CAACE,aAAa;MAC1C,MAAMjC,cAAc,GAAG+B,MAAM,CAAC/B,cAAc;MAC5C,MAAMkC,UAAU,GAAG,CAACD,aAAa;MAEjC,MAAME,IAAI,GAAGF,aAAa,GACvB5F,cAAc,EAAE+F,KAAK,GACrB/F,cAAc,EAAEgG,IAAI;MAEvB,MAAMC,aAAa,GAAGJ,UAAU,GAC7B;QACAG,IAAI,EAAEhG,cAAc,EAAEkG,MAAM,IAAI3I,eAAe;QAC/CwI,KAAK,EAAE/F,cAAc,EAAEmG,QAAQ,IAAI5I;MACpC,CAAC,GACAyC,cAAc;MAEjBvB,kBAAkB,CAAC;QAClBqH,IAAI;QACJM,QAAQ,EAAE3G,sBAAsB;QAChCmG,aAAa;QACb1B,KAAK;QACL/E;MACD,CAAC,CAAC;;MAEF;MACA;MACA;MACA,MAAMkH,YAAY,GAAG9F,UAAU,CAACgB,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAAC;MACzD,MAAM+E,eAAe,GACpBD,YAAY,GAAG1H,QAAQ,CAAC4H,SAAS,CAAClB,YAAY,EAAEG,aAAa,CAAC;MAE/DrH,iBAAiB,CAAC;QACjBqI,MAAM,EAAE7C,cAAc;QACtB8C,iBAAiB,EAAEb,aAAa,GAAG1G,aAAa,GAAGwH,SAAS;QAC5DZ,IAAI,EAAEG,aAAa;QACnB5G,UAAU;QACViH;MACD,CAAC,CAAC;IACH,CAAC,MAAM;MACN,MAAMZ,MAAM,GAAGpH,kBAAkB,CAAC;QACjC4F,KAAK;QACL3D,UAAU;QACVpB,UAAU;QACVU;MACD,CAAC,CAAC;MAEF,MAAM+F,aAAa,GAAGF,MAAM,CAACE,aAAa;MAC1C;MACA,MAAMjC,cAAc,GAAGiC,aAAa,GAAG,CAAC,GAAG,CAAC;MAE5CnH,kBAAkB,CAAC;QAClBqH,IAAI,EAAEF,aAAa,GAAG5F,cAAc,EAAE+F,KAAK,GAAG/F,cAAc,EAAEgG,IAAI;QAClEI,QAAQ,EAAE3G,sBAAsB;QAChCmG,aAAa;QACb1B,KAAK;QACL/E;MACD,CAAC,CAAC;MAEF,MAAMmH,eAAe,GAAG3H,QAAQ,CAACgI,yBAAyB,CAAC;QAC1DtH,UAAU;QACVuG,aAAa;QACb1B,KAAK;QACL/E,UAAU;QACVoB;MACD,CAAC,CAAC;MAEFpC,iBAAiB,CAAC;QACjBqI,MAAM,EAAE7C,cAAc;QACtB8C,iBAAiB,EAAEb,aAAa,GAAG1G,aAAa,GAAGwH,SAAS;QAC5DZ,IAAI,EAAE9F,cAAc;QACpBX,UAAU;QACViH;MACD,CAAC,CAAC;IACH;EACD,CACD,CAAC;EAED,OAAO;IAAEvE,aAAa;IAAEK,aAAa;IAAE2B,OAAO;IAAEE,QAAQ;IAAEmB;EAAM,CAAC;AAClE,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","useWindowDimensions","useSharedValue","DefaultSnapSpec","DEFAULT_GESTURE_ACTIVATION_AREA","DEFAULT_GESTURE_DIRECTION","DEFAULT_GESTURE_DRIVES_PROGRESS","EPSILON","FALSE","GESTURE_VELOCITY_IMPACT","SNAP_VELOCITY_IMPACT","TRUE","useKeys","AnimationStore","GestureStore","GestureOffsetState","animateToProgress","applyOffsetRules","checkScrollBoundary","determineDismissal","determineSnapTarget","mapGestureToProgress","resetGestureValues","validateSnapPoints","velocity","logger","useStableCallbackValue","useScreenGestureHandlers","scrollConfig","ancestorIsDismissing","canDismiss","handleDismiss","ownershipStatus","claimedDirections","ancestorContext","childDirectionClaims","dimensions","current","animations","getAll","route","key","gestureAnimationValues","getRouteGestures","gestureDirection","gestureDrivesProgress","gestureVelocityImpact","snapVelocityImpact","gestureActivationArea","gestureResponseDistance","transitionSpec","snapPoints","rawSnapPoints","expandViaScrollView","options","hasSnapPoints","minSnapPoint","maxSnapPoint","directions","Array","isArray","warn","effectiveDirection","directionsArray","isBidirectional","includes","hasHorizontalDirection","isSnapAxisInverted","enableBothVertical","enableBothHorizontal","vertical","verticalInverted","horizontal","horizontalInverted","snapAxisInverted","snapAxis","initialTouch","x","y","gestureOffsetState","PENDING","gestureStartProgress","onTouchesDown","e","firstTouch","changedTouches","value","routeKey","onTouchesMove","manager","FAILED","fail","touch","isSwipingDown","isSwipingUp","isSwipingRight","isSwipingLeft","activationArea","responseDistance","isDragging","activate","swipeDirection","ownership","childClaim","isDismissing","PASSED","scrollCfg","isTouchingScrollView","isTouched","atBoundary","undefined","isExpandGesture","canExpandMore","progress","targetProgress","direction","onStart","animating","onUpdate","event","translationX","translationY","width","height","normalizedX","normalizeTranslation","normalizedY","isHorizontal","translation","dimension","baseSign","sign","progressDelta","Math","max","min","maxProgress","onEnd","axisVelocity","velocityX","velocityY","axisDimension","snapVelocity","result","currentProgress","velocityFactor","shouldDismiss","isSnapping","spec","close","open","effectiveSpec","expand","collapse","gestures","velocitySign","initialVelocity","normalize","target","onAnimationFinish","calculateProgressVelocity"],"sourceRoot":"../../../../../src","sources":["shared/hooks/gestures/use-screen-gesture-handlers.ts"],"mappings":"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","ignoreList":[]}
@@ -1,32 +1,78 @@
1
1
  "use strict";
2
2
 
3
- /** biome-ignore-all lint/style/noNonNullAssertion: <Will always consume context from GestureProvider> */
3
+ /**
4
+ * Connects ScrollViews to the gesture ownership system.
5
+ * Finds the gesture owner for the scroll axis and coordinates with their panGesture.
6
+ */
4
7
 
5
8
  import { useMemo } from "react";
9
+ import { Gesture } from "react-native-gesture-handler";
6
10
  import { useAnimatedScrollHandler } from "react-native-reanimated";
7
11
  import { useGestureContext } from "../../providers/gestures.provider";
8
12
  import useStableCallback from "../use-stable-callback";
13
+
14
+ /** Walks up context tree to find the screen that owns this scroll axis. */
15
+ function findGestureOwnerForAxis(context, axis) {
16
+ let current = context;
17
+ const startIsolated = context?.isIsolated;
18
+ while (current) {
19
+ if (startIsolated !== undefined && current.isIsolated !== startIsolated) {
20
+ break;
21
+ }
22
+ const ownsAxis = axis === "vertical" ? current.claimedDirections?.vertical || current.claimedDirections?.["vertical-inverted"] : current.claimedDirections?.horizontal || current.claimedDirections?.["horizontal-inverted"];
23
+ if (ownsAxis) {
24
+ return {
25
+ scrollConfig: current.scrollConfig,
26
+ panGesture: current.panGesture
27
+ };
28
+ }
29
+ current = current.ancestorContext;
30
+ }
31
+ return {
32
+ scrollConfig: null,
33
+ panGesture: null
34
+ };
35
+ }
36
+ /**
37
+ * Returns scroll handlers and a native gesture for ScrollView coordination.
38
+ * Automatically finds the gesture owner for the scroll axis.
39
+ */
9
40
  export const useScrollRegistry = props => {
10
41
  const context = useGestureContext();
42
+ const scrollDirection = props.direction ?? "vertical";
11
43
  const {
12
44
  scrollConfig,
13
- ancestorContext
14
- } = context;
15
- const ancestorScrollConfigs = useMemo(() => {
16
- const configs = [];
17
- let current = ancestorContext;
18
- while (current) {
19
- if (current.scrollConfig) {
20
- configs.push(current.scrollConfig);
45
+ panGesture
46
+ } = findGestureOwnerForAxis(context, scrollDirection);
47
+ const nativeGesture = useMemo(() => {
48
+ if (!panGesture || !scrollConfig) return null;
49
+ const setIsTouched = () => {
50
+ "worklet";
51
+
52
+ if (scrollConfig.value) {
53
+ scrollConfig.value = {
54
+ ...scrollConfig.value,
55
+ isTouched: true
56
+ };
21
57
  }
22
- current = current.ancestorContext;
23
- }
24
- return configs;
25
- }, [ancestorContext]);
58
+ };
59
+ const clearIsTouched = () => {
60
+ "worklet";
61
+
62
+ if (scrollConfig.value) {
63
+ scrollConfig.value = {
64
+ ...scrollConfig.value,
65
+ isTouched: false
66
+ };
67
+ }
68
+ };
69
+ return Gesture.Native().onTouchesDown(setIsTouched).onTouchesUp(clearIsTouched).onTouchesCancelled(clearIsTouched).requireExternalGestureToFail(panGesture);
70
+ }, [panGesture, scrollConfig]);
26
71
  const scrollHandler = useAnimatedScrollHandler({
27
72
  onScroll: event => {
28
73
  props.onScroll?.(event);
29
- const updateScrollPosition = v => {
74
+ if (!scrollConfig) return;
75
+ const update = v => {
30
76
  "worklet";
31
77
 
32
78
  if (v === null) {
@@ -44,17 +90,13 @@ export const useScrollRegistry = props => {
44
90
  v.y = event.contentOffset.y;
45
91
  return v;
46
92
  };
47
- scrollConfig.modify(updateScrollPosition);
48
-
49
- // Sync to ALL ancestors, not just immediate parent
50
- for (const ancestorConfig of ancestorScrollConfigs) {
51
- ancestorConfig.modify(updateScrollPosition);
52
- }
93
+ scrollConfig.modify(update);
53
94
  }
54
95
  });
55
96
  const onContentSizeChange = useStableCallback((width, height) => {
56
97
  props.onContentSizeChange?.(width, height);
57
- const updateContentSize = v => {
98
+ if (!scrollConfig) return;
99
+ const update = v => {
58
100
  "worklet";
59
101
 
60
102
  if (v === null) {
@@ -72,18 +114,16 @@ export const useScrollRegistry = props => {
72
114
  v.contentHeight = height;
73
115
  return v;
74
116
  };
75
- scrollConfig.modify(updateContentSize);
76
- for (const ancestorConfig of ancestorScrollConfigs) {
77
- ancestorConfig.modify(updateContentSize);
78
- }
117
+ scrollConfig.modify(update);
79
118
  });
80
119
  const onLayout = useStableCallback(event => {
81
120
  props.onLayout?.(event);
121
+ if (!scrollConfig) return;
82
122
  const {
83
123
  width,
84
124
  height
85
125
  } = event.nativeEvent.layout;
86
- const updateLayout = v => {
126
+ const update = v => {
87
127
  "worklet";
88
128
 
89
129
  if (v === null) {
@@ -101,55 +141,13 @@ export const useScrollRegistry = props => {
101
141
  v.layoutWidth = width;
102
142
  return v;
103
143
  };
104
- scrollConfig.modify(updateLayout);
105
- for (const ancestorConfig of ancestorScrollConfigs) {
106
- ancestorConfig.modify(updateLayout);
107
- }
108
- });
109
- const onTouchStart = useStableCallback(event => {
110
- props.onTouchStart?.(event);
111
- const setTouched = v => {
112
- "worklet";
113
-
114
- if (v === null) {
115
- return {
116
- x: 0,
117
- y: 0,
118
- contentHeight: 0,
119
- contentWidth: 0,
120
- layoutHeight: 0,
121
- layoutWidth: 0,
122
- isTouched: true
123
- };
124
- }
125
- v.isTouched = true;
126
- return v;
127
- };
128
- scrollConfig.modify(setTouched);
129
- for (const ancestorConfig of ancestorScrollConfigs) {
130
- ancestorConfig.modify(setTouched);
131
- }
132
- });
133
- const onTouchEnd = useStableCallback(event => {
134
- props.onTouchEnd?.(event);
135
- const clearTouched = v => {
136
- "worklet";
137
-
138
- if (v === null) return v;
139
- v.isTouched = false;
140
- return v;
141
- };
142
- scrollConfig.modify(clearTouched);
143
- for (const ancestorConfig of ancestorScrollConfigs) {
144
- ancestorConfig.modify(clearTouched);
145
- }
144
+ scrollConfig.modify(update);
146
145
  });
147
146
  return {
148
147
  scrollHandler,
149
148
  onContentSizeChange,
150
149
  onLayout,
151
- onTouchStart,
152
- onTouchEnd
150
+ nativeGesture
153
151
  };
154
152
  };
155
153
  //# sourceMappingURL=use-scroll-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","useAnimatedScrollHandler","useGestureContext","useStableCallback","useScrollRegistry","props","context","scrollConfig","ancestorContext","ancestorScrollConfigs","configs","current","push","scrollHandler","onScroll","event","updateScrollPosition","v","x","contentOffset","y","contentHeight","contentWidth","layoutHeight","layoutWidth","isTouched","modify","ancestorConfig","onContentSizeChange","width","height","updateContentSize","onLayout","nativeEvent","layout","updateLayout","onTouchStart","setTouched","onTouchEnd","clearTouched"],"sourceRoot":"../../../../../src","sources":["shared/hooks/gestures/use-scroll-registry.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","Gesture","useAnimatedScrollHandler","useGestureContext","useStableCallback","findGestureOwnerForAxis","context","axis","current","startIsolated","isIsolated","undefined","ownsAxis","claimedDirections","vertical","horizontal","scrollConfig","panGesture","ancestorContext","useScrollRegistry","props","scrollDirection","direction","nativeGesture","setIsTouched","value","isTouched","clearIsTouched","Native","onTouchesDown","onTouchesUp","onTouchesCancelled","requireExternalGestureToFail","scrollHandler","onScroll","event","update","v","x","contentOffset","y","contentHeight","contentWidth","layoutHeight","layoutWidth","modify","onContentSizeChange","width","height","onLayout","nativeEvent","layout"],"sourceRoot":"../../../../../src","sources":["shared/hooks/gestures/use-scroll-registry.tsx"],"mappings":"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","ignoreList":[]}