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.
- package/README.md +95 -31
- package/lib/commonjs/shared/animation/snap-to.js +2 -0
- package/lib/commonjs/shared/animation/snap-to.js.map +1 -1
- package/lib/commonjs/shared/components/create-transition-aware-component.js +20 -18
- package/lib/commonjs/shared/components/create-transition-aware-component.js.map +1 -1
- package/lib/commonjs/shared/components/screen-container.js +59 -6
- package/lib/commonjs/shared/components/screen-container.js.map +1 -1
- package/lib/commonjs/shared/constants.js +8 -1
- package/lib/commonjs/shared/constants.js.map +1 -1
- package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js +49 -39
- package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js.map +1 -1
- package/lib/commonjs/shared/hooks/gestures/use-screen-gesture-handlers.js +110 -61
- package/lib/commonjs/shared/hooks/gestures/use-screen-gesture-handlers.js.map +1 -1
- package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js +67 -70
- package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
- package/lib/commonjs/shared/providers/gestures.provider.js +112 -5
- package/lib/commonjs/shared/providers/gestures.provider.js.map +1 -1
- package/lib/commonjs/shared/types/ownership.types.js +71 -0
- package/lib/commonjs/shared/types/ownership.types.js.map +1 -0
- package/lib/commonjs/shared/utils/gesture/check-gesture-activation.js +72 -128
- package/lib/commonjs/shared/utils/gesture/check-gesture-activation.js.map +1 -1
- package/lib/commonjs/shared/utils/gesture/compute-claimed-directions.js +81 -0
- package/lib/commonjs/shared/utils/gesture/compute-claimed-directions.js.map +1 -0
- package/lib/commonjs/shared/utils/gesture/determine-snap-target.js +1 -1
- package/lib/commonjs/shared/utils/gesture/determine-snap-target.js.map +1 -1
- package/lib/commonjs/shared/utils/gesture/find-collapse-target.js +48 -0
- package/lib/commonjs/shared/utils/gesture/find-collapse-target.js.map +1 -0
- package/lib/commonjs/shared/utils/gesture/resolve-ownership.js +87 -0
- package/lib/commonjs/shared/utils/gesture/resolve-ownership.js.map +1 -0
- package/lib/commonjs/shared/utils/gesture/velocity.js +16 -5
- package/lib/commonjs/shared/utils/gesture/velocity.js.map +1 -1
- package/lib/module/shared/animation/snap-to.js +1 -0
- package/lib/module/shared/animation/snap-to.js.map +1 -1
- package/lib/module/shared/components/create-transition-aware-component.js +20 -18
- package/lib/module/shared/components/create-transition-aware-component.js.map +1 -1
- package/lib/module/shared/components/screen-container.js +59 -7
- package/lib/module/shared/components/screen-container.js.map +1 -1
- package/lib/module/shared/constants.js +7 -0
- package/lib/module/shared/constants.js.map +1 -1
- package/lib/module/shared/hooks/gestures/use-build-gestures.js +49 -39
- package/lib/module/shared/hooks/gestures/use-build-gestures.js.map +1 -1
- package/lib/module/shared/hooks/gestures/use-screen-gesture-handlers.js +112 -63
- package/lib/module/shared/hooks/gestures/use-screen-gesture-handlers.js.map +1 -1
- package/lib/module/shared/hooks/gestures/use-scroll-registry.js +68 -70
- package/lib/module/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
- package/lib/module/shared/providers/gestures.provider.js +112 -5
- package/lib/module/shared/providers/gestures.provider.js.map +1 -1
- package/lib/module/shared/types/ownership.types.js +67 -0
- package/lib/module/shared/types/ownership.types.js.map +1 -0
- package/lib/module/shared/utils/gesture/check-gesture-activation.js +70 -126
- package/lib/module/shared/utils/gesture/check-gesture-activation.js.map +1 -1
- package/lib/module/shared/utils/gesture/compute-claimed-directions.js +77 -0
- package/lib/module/shared/utils/gesture/compute-claimed-directions.js.map +1 -0
- package/lib/module/shared/utils/gesture/determine-snap-target.js +1 -1
- package/lib/module/shared/utils/gesture/determine-snap-target.js.map +1 -1
- package/lib/module/shared/utils/gesture/find-collapse-target.js +44 -0
- package/lib/module/shared/utils/gesture/find-collapse-target.js.map +1 -0
- package/lib/module/shared/utils/gesture/resolve-ownership.js +83 -0
- package/lib/module/shared/utils/gesture/resolve-ownership.js.map +1 -0
- package/lib/module/shared/utils/gesture/velocity.js +16 -5
- package/lib/module/shared/utils/gesture/velocity.js.map +1 -1
- package/lib/typescript/shared/animation/snap-to.d.ts.map +1 -1
- package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
- package/lib/typescript/shared/components/screen-container.d.ts.map +1 -1
- package/lib/typescript/shared/constants.d.ts +6 -0
- package/lib/typescript/shared/constants.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts +15 -3
- package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/gestures/use-screen-gesture-handlers.d.ts +52 -2
- package/lib/typescript/shared/hooks/gestures/use-screen-gesture-handlers.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/gestures/use-scroll-registry.d.ts +11 -6
- package/lib/typescript/shared/hooks/gestures/use-scroll-registry.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/use-backdrop-pointer-events.d.ts +1 -1
- package/lib/typescript/shared/hooks/use-backdrop-pointer-events.d.ts.map +1 -1
- package/lib/typescript/shared/providers/gestures.provider.d.ts +27 -2
- package/lib/typescript/shared/providers/gestures.provider.d.ts.map +1 -1
- package/lib/typescript/shared/types/ownership.types.d.ts +52 -0
- package/lib/typescript/shared/types/ownership.types.d.ts.map +1 -0
- package/lib/typescript/shared/types/screen.types.d.ts +22 -1
- package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
- package/lib/typescript/shared/utils/gesture/check-gesture-activation.d.ts +23 -19
- package/lib/typescript/shared/utils/gesture/check-gesture-activation.d.ts.map +1 -1
- package/lib/typescript/shared/utils/gesture/compute-claimed-directions.d.ts +23 -0
- package/lib/typescript/shared/utils/gesture/compute-claimed-directions.d.ts.map +1 -0
- package/lib/typescript/shared/utils/gesture/determine-snap-target.d.ts +5 -1
- package/lib/typescript/shared/utils/gesture/determine-snap-target.d.ts.map +1 -1
- package/lib/typescript/shared/utils/gesture/find-collapse-target.d.ts +17 -0
- package/lib/typescript/shared/utils/gesture/find-collapse-target.d.ts.map +1 -0
- package/lib/typescript/shared/utils/gesture/resolve-ownership.d.ts +36 -0
- package/lib/typescript/shared/utils/gesture/resolve-ownership.d.ts.map +1 -0
- package/lib/typescript/shared/utils/gesture/velocity.d.ts.map +1 -1
- package/package.json +121 -120
- package/src/shared/animation/snap-to.ts +1 -0
- package/src/shared/components/create-transition-aware-component.tsx +28 -25
- package/src/shared/components/screen-container.tsx +69 -7
- package/src/shared/constants.ts +7 -0
- package/src/shared/hooks/gestures/use-build-gestures.tsx +80 -44
- package/src/shared/hooks/gestures/use-screen-gesture-handlers.ts +147 -71
- package/src/shared/hooks/gestures/use-scroll-registry.tsx +94 -86
- package/src/shared/hooks/use-backdrop-pointer-events.ts +1 -1
- package/src/shared/providers/gestures.provider.tsx +166 -5
- package/src/shared/types/ownership.types.ts +77 -0
- package/src/shared/types/screen.types.ts +24 -1
- package/src/shared/utils/gesture/check-gesture-activation.ts +82 -116
- package/src/shared/utils/gesture/compute-claimed-directions.ts +93 -0
- package/src/shared/utils/gesture/determine-snap-target.ts +6 -2
- package/src/shared/utils/gesture/find-collapse-target.ts +42 -0
- package/src/shared/utils/gesture/resolve-ownership.ts +110 -0
- package/src/shared/utils/gesture/velocity.ts +16 -6
- package/src/shared/__tests__/bounds.store.test.ts +0 -394
- package/src/shared/__tests__/derivations.test.ts +0 -156
- package/src/shared/__tests__/determine-dismissal.test.ts +0 -111
- package/src/shared/__tests__/determine-snap-target.test.ts +0 -268
- package/src/shared/__tests__/geometry.test.ts +0 -130
- package/src/shared/__tests__/gesture-activation.test.ts +0 -471
- package/src/shared/__tests__/gesture.velocity.test.ts +0 -131
- package/src/shared/__tests__/history.store.test.ts +0 -550
- package/src/shared/__tests__/sync-routes-with-removed.test.ts +0 -137
- 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","
|
|
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,
|
|
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
|
-
//
|
|
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
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
if (
|
|
136
|
-
|
|
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
|
-
//
|
|
155
|
-
|
|
156
|
-
|
|
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
|
-
|
|
178
|
-
|
|
179
|
-
|
|
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
|
|
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
|
-
//
|
|
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":"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","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
|
-
/**
|
|
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
|
-
|
|
14
|
-
} = context;
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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
|
|
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(
|
|
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
|
-
|
|
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","
|
|
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":[]}
|