react-native-screen-transitions 3.3.0-beta.0 → 3.3.0-beta.1
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 +104 -9
- package/lib/commonjs/blank-stack/components/adjusted-screen.js +2 -2
- package/lib/commonjs/blank-stack/components/adjusted-screen.js.map +1 -1
- package/lib/commonjs/shared/constants.js +36 -10
- package/lib/commonjs/shared/constants.js.map +1 -1
- package/lib/commonjs/shared/hooks/animation/use-screen-animation.js +25 -18
- package/lib/commonjs/shared/hooks/animation/use-screen-animation.js.map +1 -1
- package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js +0 -25
- package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js.map +1 -1
- package/lib/commonjs/shared/hooks/gestures/use-screen-gesture-handlers.js +71 -63
- package/lib/commonjs/shared/hooks/gestures/use-screen-gesture-handlers.js.map +1 -1
- package/lib/commonjs/shared/hooks/navigation/use-screen-state.js +9 -37
- package/lib/commonjs/shared/hooks/navigation/use-screen-state.js.map +1 -1
- package/lib/commonjs/shared/utils/animation/animate-to-progress.js +5 -1
- package/lib/commonjs/shared/utils/animation/animate-to-progress.js.map +1 -1
- package/lib/commonjs/shared/utils/gesture/check-gesture-activation.js +90 -23
- package/lib/commonjs/shared/utils/gesture/check-gesture-activation.js.map +1 -1
- package/lib/commonjs/shared/utils/logger.js +22 -0
- package/lib/commonjs/shared/utils/logger.js.map +1 -0
- package/lib/module/blank-stack/components/adjusted-screen.js +1 -1
- package/lib/module/blank-stack/components/adjusted-screen.js.map +1 -1
- package/lib/module/shared/constants.js +34 -9
- package/lib/module/shared/constants.js.map +1 -1
- package/lib/module/shared/hooks/animation/use-screen-animation.js +25 -18
- package/lib/module/shared/hooks/animation/use-screen-animation.js.map +1 -1
- package/lib/module/shared/hooks/gestures/use-build-gestures.js +0 -25
- package/lib/module/shared/hooks/gestures/use-build-gestures.js.map +1 -1
- package/lib/module/shared/hooks/gestures/use-screen-gesture-handlers.js +66 -58
- package/lib/module/shared/hooks/gestures/use-screen-gesture-handlers.js.map +1 -1
- package/lib/module/shared/hooks/navigation/use-screen-state.js +9 -37
- package/lib/module/shared/hooks/navigation/use-screen-state.js.map +1 -1
- package/lib/module/shared/utils/animation/animate-to-progress.js +5 -1
- package/lib/module/shared/utils/animation/animate-to-progress.js.map +1 -1
- package/lib/module/shared/utils/gesture/check-gesture-activation.js +90 -23
- package/lib/module/shared/utils/gesture/check-gesture-activation.js.map +1 -1
- package/lib/module/shared/utils/logger.js +17 -0
- package/lib/module/shared/utils/logger.js.map +1 -0
- package/lib/typescript/blank-stack/components/adjusted-screen.d.ts.map +1 -1
- package/lib/typescript/shared/constants.d.ts +9 -0
- package/lib/typescript/shared/constants.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/animation/use-screen-animation.d.ts.map +1 -1
- 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 +1 -16
- package/lib/typescript/shared/hooks/gestures/use-screen-gesture-handlers.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/navigation/use-screen-state.d.ts +0 -7
- package/lib/typescript/shared/hooks/navigation/use-screen-state.d.ts.map +1 -1
- package/lib/typescript/shared/types/animation.types.d.ts +9 -0
- package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
- package/lib/typescript/shared/utils/animation/animate-to-progress.d.ts.map +1 -1
- package/lib/typescript/shared/utils/gesture/check-gesture-activation.d.ts +4 -5
- package/lib/typescript/shared/utils/gesture/check-gesture-activation.d.ts.map +1 -1
- package/lib/typescript/shared/utils/logger.d.ts +6 -0
- package/lib/typescript/shared/utils/logger.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/blank-stack/components/adjusted-screen.tsx +1 -1
- package/src/shared/__tests__/derivations.test.ts +1 -0
- package/src/shared/__tests__/gesture-activation.test.ts +29 -56
- package/src/shared/constants.ts +36 -9
- package/src/shared/hooks/animation/use-screen-animation.tsx +32 -21
- package/src/shared/hooks/gestures/use-build-gestures.tsx +2 -34
- package/src/shared/hooks/gestures/use-screen-gesture-handlers.ts +89 -91
- package/src/shared/hooks/navigation/use-screen-state.tsx +9 -56
- package/src/shared/types/animation.types.ts +10 -0
- package/src/shared/utils/animation/animate-to-progress.ts +4 -1
- package/src/shared/utils/gesture/check-gesture-activation.ts +74 -23
- package/src/shared/utils/logger.ts +15 -0
|
@@ -32,46 +32,19 @@ export function useScreenState() {
|
|
|
32
32
|
return scenes[focusedIndex] ?? scenes[scenes.length - 1];
|
|
33
33
|
}, [scenes, focusedIndex]);
|
|
34
34
|
const currentOptions = current.options;
|
|
35
|
-
const snapPoints = currentOptions?.snapPoints;
|
|
36
35
|
const animations = useMemo(() => AnimationStore.getAll(current.route.key), [current.route.key]);
|
|
37
|
-
|
|
38
|
-
// Pre-sort snap points for the derived value (avoids sorting in worklet)
|
|
39
|
-
const sortedSnapPoints = useMemo(() => snapPoints ? [...snapPoints].sort((a, b) => a - b) : [], [snapPoints]);
|
|
40
|
-
const animatedSnapIndex = useDerivedValue(() => {
|
|
41
|
-
if (sortedSnapPoints.length === 0) {
|
|
42
|
-
return -1;
|
|
43
|
-
}
|
|
44
|
-
const progress = animations.progress.value;
|
|
45
|
-
|
|
46
|
-
// Below first snap point
|
|
47
|
-
if (progress <= sortedSnapPoints[0]) {
|
|
48
|
-
return 0;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// Above last snap point
|
|
52
|
-
if (progress >= sortedSnapPoints[sortedSnapPoints.length - 1]) {
|
|
53
|
-
return sortedSnapPoints.length - 1;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// Find segment and interpolate
|
|
57
|
-
for (let i = 0; i < sortedSnapPoints.length - 1; i++) {
|
|
58
|
-
if (progress <= sortedSnapPoints[i + 1]) {
|
|
59
|
-
const t = (progress - sortedSnapPoints[i]) / (sortedSnapPoints[i + 1] - sortedSnapPoints[i]);
|
|
60
|
-
return i + t;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return sortedSnapPoints.length - 1;
|
|
64
|
-
});
|
|
65
36
|
const snapTo = useCallback(targetIndex => {
|
|
66
|
-
|
|
37
|
+
const points = currentOptions?.snapPoints;
|
|
38
|
+
if (!points || points.length === 0) {
|
|
67
39
|
console.warn("snapTo called but no snapPoints defined");
|
|
68
40
|
return;
|
|
69
41
|
}
|
|
70
|
-
|
|
71
|
-
|
|
42
|
+
const sorted = [...points].sort((a, b) => a - b);
|
|
43
|
+
if (targetIndex < 0 || targetIndex >= sorted.length) {
|
|
44
|
+
console.warn(`snapTo index ${targetIndex} out of bounds (0-${sorted.length - 1})`);
|
|
72
45
|
return;
|
|
73
46
|
}
|
|
74
|
-
const targetProgress =
|
|
47
|
+
const targetProgress = sorted[targetIndex];
|
|
75
48
|
runOnUI(() => {
|
|
76
49
|
"worklet";
|
|
77
50
|
|
|
@@ -84,7 +57,7 @@ export function useScreenState() {
|
|
|
84
57
|
}
|
|
85
58
|
});
|
|
86
59
|
})();
|
|
87
|
-
}, [
|
|
60
|
+
}, [currentOptions?.snapPoints, animations, focusedScene]);
|
|
88
61
|
return useMemo(() => ({
|
|
89
62
|
index,
|
|
90
63
|
options: focusedScene?.descriptor?.options ?? {},
|
|
@@ -93,8 +66,7 @@ export function useScreenState() {
|
|
|
93
66
|
focusedIndex,
|
|
94
67
|
meta: focusedScene?.descriptor?.options?.meta,
|
|
95
68
|
navigation: current.navigation,
|
|
96
|
-
snapTo
|
|
97
|
-
|
|
98
|
-
}), [index, focusedScene, routes, focusedIndex, current.navigation, current.route, snapTo, animatedSnapIndex]);
|
|
69
|
+
snapTo
|
|
70
|
+
}), [index, focusedScene, routes, focusedIndex, current.navigation, current.route, snapTo]);
|
|
99
71
|
}
|
|
100
72
|
//# sourceMappingURL=use-screen-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useMemo","runOnUI","useDerivedValue","DefaultSnapSpec","useKeys","AnimationStore","animateToProgress","useSharedValueState","useStack","useScreenState","routes","scenes","routeKeys","optimisticFocusedIndex","current","index","indexOf","route","key","focusedIndex","globalIndex","get","Math","max","min","length","focusedScene","currentOptions","options","
|
|
1
|
+
{"version":3,"names":["useCallback","useMemo","runOnUI","useDerivedValue","DefaultSnapSpec","useKeys","AnimationStore","animateToProgress","useSharedValueState","useStack","useScreenState","routes","scenes","routeKeys","optimisticFocusedIndex","current","index","indexOf","route","key","focusedIndex","globalIndex","get","Math","max","min","length","focusedScene","currentOptions","options","animations","getAll","snapTo","targetIndex","points","snapPoints","console","warn","sorted","sort","a","b","targetProgress","target","spec","open","descriptor","transitionSpec","expand","close","collapse","focusedRoute","meta","navigation"],"sourceRoot":"../../../../../src","sources":["shared/hooks/navigation/use-screen-state.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -51,7 +51,11 @@ export const animateToProgress = ({
|
|
|
51
51
|
if (onAnimationFinish) {
|
|
52
52
|
runOnJS(onAnimationFinish)(finished);
|
|
53
53
|
}
|
|
54
|
-
|
|
54
|
+
|
|
55
|
+
// Delay setting animating=FALSE by one frame to ensure final frame is painted
|
|
56
|
+
requestAnimationFrame(() => {
|
|
57
|
+
animating.set(FALSE);
|
|
58
|
+
});
|
|
55
59
|
}));
|
|
56
60
|
};
|
|
57
61
|
//# sourceMappingURL=animate-to-progress.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["runOnJS","FALSE","TRUE","animate","animateToProgress","target","spec","onAnimationFinish","animations","initialVelocity","isClosing","value","config","close","open","isSpringConfig","effectiveConfig","velocity","progress","animating","closing","entering","set","finished"],"sourceRoot":"../../../../../src","sources":["shared/utils/animation/animate-to-progress.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,yBAAyB;AACjD,SAASC,KAAK,EAAEC,IAAI,QAAQ,iBAAiB;AAG7C,SAASC,OAAO,QAAQ,WAAW;AAiBnC,OAAO,MAAMC,iBAAiB,GAAGA,CAAC;EACjCC,MAAM;EACNC,IAAI;EACJC,iBAAiB;EACjBC,UAAU;EACVC;AACuB,CAAC,KAAK;EAC7B,SAAS;;EAET;EACA,MAAMC,SAAS,GACdL,MAAM,KAAK,OAAO,IAAK,OAAOA,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,CAAE;EACnE,MAAMM,KAAK,GAAG,OAAON,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGA,MAAM,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC;;EAE7E;EACA,MAAMO,MAAM,GAAGF,SAAS,GAAGJ,IAAI,EAAEO,KAAK,GAAGP,IAAI,EAAEQ,IAAI;EAEnD,MAAMC,cAAc,GACnB,CAAC,CAACH,MAAM,IAAI,EAAE,UAAU,IAAIA,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAIA,MAAM,CAAC;EAE7D,MAAMI,eAAe,GACpBD,cAAc,IAAI,OAAON,eAAe,KAAK,QAAQ,GAClD;IAAE,GAAGG,MAAM;IAAEK,QAAQ,EAAER;EAAgB,CAAC,GACxCG,MAAM;EAEV,MAAM;IAAEM,QAAQ;IAAEC,SAAS;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAGb,UAAU;EAE7D,IAAIE,SAAS,EAAE;IACdU,OAAO,CAACE,GAAG,CAACpB,IAAI,CAAC;IACjBmB,QAAQ,CAACC,GAAG,CAACrB,KAAK,CAAC;EACpB,CAAC,MAAM;IACNoB,QAAQ,CAACC,GAAG,CAACpB,IAAI,CAAC;EACnB;EAEA,IAAI,CAACU,MAAM,EAAE;IACZO,SAAS,CAACG,GAAG,CAACrB,KAAK,CAAC;IACpBiB,QAAQ,CAACI,GAAG,CAACX,KAAK,CAAC;IAEnB,IAAIJ,iBAAiB,EAAE;MACtBP,OAAO,CAACO,iBAAiB,CAAC,CAAC,IAAI,CAAC;IACjC;IACA;EACD;EAEAY,SAAS,CAACG,GAAG,CAACpB,IAAI,CAAC,CAAC,CAAC;EACrBgB,QAAQ,CAACI,GAAG,CACXnB,OAAO,CAACQ,KAAK,EAAEK,eAAe,EAAGO,QAAQ,IAAK;IAC7C,SAAS;;IACT,IAAI,CAACA,QAAQ,EAAE;IAEf,IAAIhB,iBAAiB,EAAE;MACtBP,OAAO,CAACO,iBAAiB,CAAC,CAACgB,QAAQ,CAAC;IACrC;
|
|
1
|
+
{"version":3,"names":["runOnJS","FALSE","TRUE","animate","animateToProgress","target","spec","onAnimationFinish","animations","initialVelocity","isClosing","value","config","close","open","isSpringConfig","effectiveConfig","velocity","progress","animating","closing","entering","set","finished","requestAnimationFrame"],"sourceRoot":"../../../../../src","sources":["shared/utils/animation/animate-to-progress.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,yBAAyB;AACjD,SAASC,KAAK,EAAEC,IAAI,QAAQ,iBAAiB;AAG7C,SAASC,OAAO,QAAQ,WAAW;AAiBnC,OAAO,MAAMC,iBAAiB,GAAGA,CAAC;EACjCC,MAAM;EACNC,IAAI;EACJC,iBAAiB;EACjBC,UAAU;EACVC;AACuB,CAAC,KAAK;EAC7B,SAAS;;EAET;EACA,MAAMC,SAAS,GACdL,MAAM,KAAK,OAAO,IAAK,OAAOA,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,CAAE;EACnE,MAAMM,KAAK,GAAG,OAAON,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGA,MAAM,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC;;EAE7E;EACA,MAAMO,MAAM,GAAGF,SAAS,GAAGJ,IAAI,EAAEO,KAAK,GAAGP,IAAI,EAAEQ,IAAI;EAEnD,MAAMC,cAAc,GACnB,CAAC,CAACH,MAAM,IAAI,EAAE,UAAU,IAAIA,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAIA,MAAM,CAAC;EAE7D,MAAMI,eAAe,GACpBD,cAAc,IAAI,OAAON,eAAe,KAAK,QAAQ,GAClD;IAAE,GAAGG,MAAM;IAAEK,QAAQ,EAAER;EAAgB,CAAC,GACxCG,MAAM;EAEV,MAAM;IAAEM,QAAQ;IAAEC,SAAS;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAGb,UAAU;EAE7D,IAAIE,SAAS,EAAE;IACdU,OAAO,CAACE,GAAG,CAACpB,IAAI,CAAC;IACjBmB,QAAQ,CAACC,GAAG,CAACrB,KAAK,CAAC;EACpB,CAAC,MAAM;IACNoB,QAAQ,CAACC,GAAG,CAACpB,IAAI,CAAC;EACnB;EAEA,IAAI,CAACU,MAAM,EAAE;IACZO,SAAS,CAACG,GAAG,CAACrB,KAAK,CAAC;IACpBiB,QAAQ,CAACI,GAAG,CAACX,KAAK,CAAC;IAEnB,IAAIJ,iBAAiB,EAAE;MACtBP,OAAO,CAACO,iBAAiB,CAAC,CAAC,IAAI,CAAC;IACjC;IACA;EACD;EAEAY,SAAS,CAACG,GAAG,CAACpB,IAAI,CAAC,CAAC,CAAC;EACrBgB,QAAQ,CAACI,GAAG,CACXnB,OAAO,CAACQ,KAAK,EAAEK,eAAe,EAAGO,QAAQ,IAAK;IAC7C,SAAS;;IACT,IAAI,CAACA,QAAQ,EAAE;IAEf,IAAIhB,iBAAiB,EAAE;MACtBP,OAAO,CAACO,iBAAiB,CAAC,CAACgB,QAAQ,CAAC;IACrC;;IAEA;IACAC,qBAAqB,CAAC,MAAM;MAC3BL,SAAS,CAACG,GAAG,CAACrB,KAAK,CAAC;IACrB,CAAC,CAAC;EACH,CAAC,CACF,CAAC;AACF,CAAC","ignoreList":[]}
|
|
@@ -230,10 +230,7 @@ export const applyOffsetRules = ({
|
|
|
230
230
|
export function checkScrollAwareActivation({
|
|
231
231
|
swipeInfo,
|
|
232
232
|
directions,
|
|
233
|
-
|
|
234
|
-
scrollY,
|
|
235
|
-
maxScrollX,
|
|
236
|
-
maxScrollY,
|
|
233
|
+
scrollConfig,
|
|
237
234
|
hasSnapPoints,
|
|
238
235
|
canExpandMore
|
|
239
236
|
}) {
|
|
@@ -245,6 +242,95 @@ export function checkScrollAwareActivation({
|
|
|
245
242
|
isSwipingRight,
|
|
246
243
|
isSwipingLeft
|
|
247
244
|
} = swipeInfo;
|
|
245
|
+
|
|
246
|
+
// Extract scroll values from config
|
|
247
|
+
const scrollX = scrollConfig?.x ?? 0;
|
|
248
|
+
const scrollY = scrollConfig?.y ?? 0;
|
|
249
|
+
const maxScrollX = scrollConfig ? scrollConfig.contentWidth - scrollConfig.layoutWidth : 0;
|
|
250
|
+
const maxScrollY = scrollConfig ? scrollConfig.contentHeight - scrollConfig.layoutHeight : 0;
|
|
251
|
+
const snapAxisInverted = directions.snapAxisInverted;
|
|
252
|
+
|
|
253
|
+
// With snap points, gestures should only activate based on the PRIMARY scroll edge
|
|
254
|
+
// (the edge where the sheet originates from), not the opposite edge.
|
|
255
|
+
// This prevents the auto-enabled opposite direction from hijacking scrolls.
|
|
256
|
+
if (hasSnapPoints) {
|
|
257
|
+
const isVerticalAxis = directions.vertical || directions.verticalInverted;
|
|
258
|
+
const isHorizontalAxis = directions.horizontal || directions.horizontalInverted;
|
|
259
|
+
if (isVerticalAxis) {
|
|
260
|
+
if (snapAxisInverted) {
|
|
261
|
+
// Sheet from TOP (vertical-inverted): only activate at scroll BOTTOM
|
|
262
|
+
if (scrollY >= maxScrollY) {
|
|
263
|
+
if (isSwipingUp) {
|
|
264
|
+
return {
|
|
265
|
+
shouldActivate: true,
|
|
266
|
+
direction: "vertical-inverted"
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
if (isSwipingDown && canExpandMore) {
|
|
270
|
+
return {
|
|
271
|
+
shouldActivate: true,
|
|
272
|
+
direction: "vertical"
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
} else {
|
|
277
|
+
// Sheet from BOTTOM (vertical): only activate at scroll TOP
|
|
278
|
+
if (scrollY <= 0) {
|
|
279
|
+
if (isSwipingDown) {
|
|
280
|
+
return {
|
|
281
|
+
shouldActivate: true,
|
|
282
|
+
direction: "vertical"
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
if (isSwipingUp && canExpandMore) {
|
|
286
|
+
return {
|
|
287
|
+
shouldActivate: true,
|
|
288
|
+
direction: "vertical-inverted"
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
if (isHorizontalAxis) {
|
|
295
|
+
if (snapAxisInverted) {
|
|
296
|
+
// Sheet from LEFT (horizontal-inverted): only activate at scroll RIGHT
|
|
297
|
+
if (scrollX >= maxScrollX) {
|
|
298
|
+
if (isSwipingLeft) {
|
|
299
|
+
return {
|
|
300
|
+
shouldActivate: true,
|
|
301
|
+
direction: "horizontal-inverted"
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
if (isSwipingRight && canExpandMore) {
|
|
305
|
+
return {
|
|
306
|
+
shouldActivate: true,
|
|
307
|
+
direction: "horizontal"
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
} else {
|
|
312
|
+
// Sheet from RIGHT (horizontal): only activate at scroll LEFT
|
|
313
|
+
if (scrollX <= 0) {
|
|
314
|
+
if (isSwipingRight) {
|
|
315
|
+
return {
|
|
316
|
+
shouldActivate: true,
|
|
317
|
+
direction: "horizontal"
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
if (isSwipingLeft && canExpandMore) {
|
|
321
|
+
return {
|
|
322
|
+
shouldActivate: true,
|
|
323
|
+
direction: "horizontal-inverted"
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
return {
|
|
330
|
+
shouldActivate: false,
|
|
331
|
+
direction: null
|
|
332
|
+
};
|
|
333
|
+
}
|
|
248
334
|
if (directions.vertical && isSwipingDown && scrollY <= 0) {
|
|
249
335
|
return {
|
|
250
336
|
shouldActivate: true,
|
|
@@ -269,25 +355,6 @@ export function checkScrollAwareActivation({
|
|
|
269
355
|
direction: "horizontal-inverted"
|
|
270
356
|
};
|
|
271
357
|
}
|
|
272
|
-
if (hasSnapPoints && canExpandMore) {
|
|
273
|
-
// Vertical sheet: swipe up at scroll top → expand
|
|
274
|
-
const enabledYAxis = directions.vertical || directions.verticalInverted;
|
|
275
|
-
const enabledXAxis = directions.horizontal || directions.horizontalInverted;
|
|
276
|
-
if (enabledYAxis && isSwipingUp && scrollY <= 0) {
|
|
277
|
-
return {
|
|
278
|
-
shouldActivate: true,
|
|
279
|
-
direction: "vertical-inverted"
|
|
280
|
-
};
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
// Horizontal sheet: swipe left at scroll left → expand
|
|
284
|
-
if (enabledXAxis && isSwipingLeft && scrollX <= 0) {
|
|
285
|
-
return {
|
|
286
|
-
shouldActivate: true,
|
|
287
|
-
direction: "horizontal-inverted"
|
|
288
|
-
};
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
358
|
return {
|
|
292
359
|
shouldActivate: false,
|
|
293
360
|
direction: null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GestureOffsetState","GESTURE_ACTIVATION_THRESHOLD_X","GESTURE_ACTIVATION_THRESHOLD_Y","GESTURE_FAIL_TOLERANCE_X","GESTURE_FAIL_TOLERANCE_Y","DEFAULT_EDGE_DISTANCE_HORIZONTAL","DEFAULT_EDGE_DISTANCE_VERTICAL","DEFAULT_ACTIVATION_AREA","normalizeSides","area","mode","left","right","top","bottom","s","computeEdgeConstraints","initialTouch","dimensions","sides","responseDistance","xDist","yDist","horizontalRight","x","horizontalLeft","width","verticalDown","y","verticalUp","height","calculateSwipeDirs","deltaX","deltaY","isVerticalSwipe","Math","abs","isHorizontalSwipe","isSwipingDown","isSwipingUp","isSwipingRight","isSwipingLeft","shouldActivateOrFail","params","hasHorizontal","hasVertical","allowedRight","allowedLeft","allowedUp","allowedDown","horizontalGateRight","horizontalGateLeft","verticalGateUp","verticalGateDown","shouldActivate","shouldFail","hasEnoughHorizontalMovement","hasAcceptableVerticalDeviation","rightOk","leftOk","hasEnoughVerticalMovement","hasAcceptableHorizontalDeviation","upOk","downOk","applyOffsetRules","touch","directions","manager","gestureOffsetState","activationArea","vertical","verticalInverted","horizontal","horizontalInverted","value","PENDING","PASSED","FAILED","fail","checkScrollAwareActivation","swipeInfo","scrollX","scrollY","maxScrollX","maxScrollY","
|
|
1
|
+
{"version":3,"names":["GestureOffsetState","GESTURE_ACTIVATION_THRESHOLD_X","GESTURE_ACTIVATION_THRESHOLD_Y","GESTURE_FAIL_TOLERANCE_X","GESTURE_FAIL_TOLERANCE_Y","DEFAULT_EDGE_DISTANCE_HORIZONTAL","DEFAULT_EDGE_DISTANCE_VERTICAL","DEFAULT_ACTIVATION_AREA","normalizeSides","area","mode","left","right","top","bottom","s","computeEdgeConstraints","initialTouch","dimensions","sides","responseDistance","xDist","yDist","horizontalRight","x","horizontalLeft","width","verticalDown","y","verticalUp","height","calculateSwipeDirs","deltaX","deltaY","isVerticalSwipe","Math","abs","isHorizontalSwipe","isSwipingDown","isSwipingUp","isSwipingRight","isSwipingLeft","shouldActivateOrFail","params","hasHorizontal","hasVertical","allowedRight","allowedLeft","allowedUp","allowedDown","horizontalGateRight","horizontalGateLeft","verticalGateUp","verticalGateDown","shouldActivate","shouldFail","hasEnoughHorizontalMovement","hasAcceptableVerticalDeviation","rightOk","leftOk","hasEnoughVerticalMovement","hasAcceptableHorizontalDeviation","upOk","downOk","applyOffsetRules","touch","directions","manager","gestureOffsetState","activationArea","vertical","verticalInverted","horizontal","horizontalInverted","value","PENDING","PASSED","FAILED","fail","checkScrollAwareActivation","swipeInfo","scrollConfig","hasSnapPoints","canExpandMore","scrollX","scrollY","maxScrollX","contentWidth","layoutWidth","maxScrollY","contentHeight","layoutHeight","snapAxisInverted","isVerticalAxis","isHorizontalAxis","direction"],"sourceRoot":"../../../../../src","sources":["shared/utils/gesture/check-gesture-activation.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const LIBRARY_NAME = "react-native-screen-transitions";
|
|
4
|
+
export const logger = {
|
|
5
|
+
error(message) {
|
|
6
|
+
"worklet";
|
|
7
|
+
|
|
8
|
+
console.error(`[${LIBRARY_NAME}] ${message}`);
|
|
9
|
+
},
|
|
10
|
+
warn(message) {
|
|
11
|
+
"worklet";
|
|
12
|
+
|
|
13
|
+
console.warn(`[${LIBRARY_NAME}] ${message}`);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
export const error = message => new Error(`[${LIBRARY_NAME}] ${message}`);
|
|
17
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["LIBRARY_NAME","logger","error","message","console","warn","Error"],"sourceRoot":"../../../../src","sources":["shared/utils/logger.ts"],"mappings":";;AAAA,MAAMA,YAAY,GAAG,iCAAiC;AAEtD,OAAO,MAAMC,MAAM,GAAG;EACrBC,KAAKA,CAACC,OAAe,EAAE;IACtB,SAAS;;IACTC,OAAO,CAACF,KAAK,CAAC,IAAIF,YAAY,KAAKG,OAAO,EAAE,CAAC;EAC9C,CAAC;EACDE,IAAIA,CAACF,OAAe,EAAE;IACrB,SAAS;;IACTC,OAAO,CAACC,IAAI,CAAC,IAAIL,YAAY,KAAKG,OAAO,EAAE,CAAC;EAC7C;AACD,CAAC;AAED,OAAO,MAAMD,KAAK,GAAIC,OAAe,IACpC,IAAIG,KAAK,CAAC,IAAIN,YAAY,KAAKG,OAAO,EAAE,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adjusted-screen.d.ts","sourceRoot":"","sources":["../../../../src/blank-stack/components/adjusted-screen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"adjusted-screen.d.ts","sourceRoot":"","sources":["../../../../src/blank-stack/components/adjusted-screen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAiBpC,UAAU,WAAW;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAYD,eAAO,MAAM,cAAc,GAAI,yEAO5B,WAAW,4CA6Eb,CAAC"}
|
|
@@ -2,6 +2,7 @@ import type { MeasuredDimensions } from "react-native-reanimated";
|
|
|
2
2
|
import type { ScreenTransitionState } from "./types/animation.types";
|
|
3
3
|
import type { ActivationArea } from "./types/gesture.types";
|
|
4
4
|
import type { Layout } from "./types/screen.types";
|
|
5
|
+
import type { BaseStackRoute } from "./types/stack.types";
|
|
5
6
|
/**
|
|
6
7
|
* Masked view integration
|
|
7
8
|
*/
|
|
@@ -11,6 +12,10 @@ export declare const CONTAINER_STYLE_ID = "_ROOT_CONTAINER";
|
|
|
11
12
|
* Styles
|
|
12
13
|
*/
|
|
13
14
|
export declare const NO_STYLES: Readonly<{}>;
|
|
15
|
+
/**
|
|
16
|
+
* Creates a new screen transition state object
|
|
17
|
+
*/
|
|
18
|
+
export declare const createScreenTransitionState: (route: BaseStackRoute, meta?: Record<string, unknown>) => ScreenTransitionState;
|
|
14
19
|
/**
|
|
15
20
|
* Default screen transition state
|
|
16
21
|
*/
|
|
@@ -41,4 +46,8 @@ export declare const DEFAULT_GESTURE_ACTIVATION_AREA: ActivationArea;
|
|
|
41
46
|
export declare const IS_WEB: boolean;
|
|
42
47
|
export declare const TRUE = 1;
|
|
43
48
|
export declare const FALSE = 0;
|
|
49
|
+
/**
|
|
50
|
+
* Small value for floating-point comparisons to handle animation/interpolation imprecision
|
|
51
|
+
*/
|
|
52
|
+
export declare const EPSILON = 0.00001;
|
|
44
53
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/shared/constants.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/shared/constants.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,aAAa,iBAAiB,CAAC;AAC5C,eAAO,MAAM,kBAAkB,oBAAoB,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,SAAS,cAAoB,CAAC;AAe3C;;GAEG;AACH,eAAO,MAAM,2BAA2B,GACvC,OAAO,cAAc,EACrB,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,qBAQD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,+BAA+B,EAAE,qBAQ3C,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,yBAAyB,cAAoB,CAAC;AAC3D,eAAO,MAAM,6BAA6B;;;;;;;;EAQxC,CAAC;AACH,eAAO,MAAM,WAAW,iBAAkB,CAAC;AAC3C,eAAO,MAAM,UAAU,iBAAkB,CAAC;AAE1C,eAAO,MAAM,qBAAqB,GACjC,YAAY,MAAM,KAChB,kBAUF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,yBAAyB,eAAe,CAAC;AACtD,eAAO,MAAM,+BAA+B,OAAO,CAAC;AACpD,eAAO,MAAM,+BAA+B,EAAE,cAAyB,CAAC;AAExE,eAAO,MAAM,MAAM,SAAwB,CAAC;AAE5C,eAAO,MAAM,IAAI,IAAI,CAAC;AACtB,eAAO,MAAM,KAAK,IAAI,CAAC;AAEvB;;GAEG;AACH,eAAO,MAAM,OAAO,UAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-screen-animation.d.ts","sourceRoot":"","sources":["../../../../../src/shared/hooks/animation/use-screen-animation.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-screen-animation.d.ts","sourceRoot":"","sources":["../../../../../src/shared/hooks/animation/use-screen-animation.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACX,wBAAwB,EAExB,MAAM,6BAA6B,CAAC;AAyFrC,wBAAgB,mBAAmB;;;;EA+ElC;AAED,wBAAgB,kBAAkB,6EAUjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-build-gestures.d.ts","sourceRoot":"","sources":["../../../../../src/shared/hooks/gestures/use-build-gestures.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-build-gestures.d.ts","sourceRoot":"","sources":["../../../../../src/shared/hooks/gestures/use-build-gestures.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EACX,kBAAkB,EAClB,YAAY,EACZ,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGhF,UAAU,sBAAsB;IAC/B,YAAY,EAAE,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC/C,eAAe,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC5C;AAED,eAAO,MAAM,gBAAgB,GAAI,oCAG9B,sBAAsB,KAAG;IAC3B,UAAU,EAAE,WAAW,CAAC;IACxB,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAC/D,aAAa,EAAE,WAAW,CAAC;IAC3B,sBAAsB,EAAE,eAAe,CAAC;CAoHxC,CAAC"}
|
|
@@ -2,28 +2,13 @@ import type { GestureStateChangeEvent, GestureTouchEvent, GestureUpdateEvent, Pa
|
|
|
2
2
|
import type { GestureStateManagerType } from "react-native-gesture-handler/lib/typescript/handlers/gestures/gestureStateManager";
|
|
3
3
|
import { type SharedValue } from "react-native-reanimated";
|
|
4
4
|
import type { ScrollConfig } from "../../providers/gestures.provider";
|
|
5
|
-
import type { AnimationStoreMap } from "../../stores/animation.store";
|
|
6
|
-
import type { GestureStoreMap } from "../../stores/gesture.store";
|
|
7
|
-
import type { TransitionSpec } from "../../types/animation.types";
|
|
8
|
-
import { type GestureActivationArea, type GestureDirection } from "../../types/gesture.types";
|
|
9
|
-
import type { Layout } from "../../types/screen.types";
|
|
10
5
|
interface UseScreenGestureHandlersProps {
|
|
11
|
-
dimensions: Layout;
|
|
12
|
-
animations: AnimationStoreMap;
|
|
13
|
-
gestureAnimationValues: GestureStoreMap;
|
|
14
|
-
gestureDirection: GestureDirection | GestureDirection[];
|
|
15
|
-
gestureDrivesProgress: boolean;
|
|
16
|
-
gestureVelocityImpact: number;
|
|
17
6
|
scrollConfig: SharedValue<ScrollConfig | null>;
|
|
18
|
-
gestureActivationArea: GestureActivationArea;
|
|
19
|
-
gestureResponseDistance?: number;
|
|
20
7
|
ancestorIsDismissing?: SharedValue<number> | null;
|
|
21
|
-
snapPoints?: number[];
|
|
22
8
|
canDismiss: boolean;
|
|
23
|
-
transitionSpec?: TransitionSpec;
|
|
24
9
|
handleDismiss: () => void;
|
|
25
10
|
}
|
|
26
|
-
export declare const useScreenGestureHandlers: ({
|
|
11
|
+
export declare const useScreenGestureHandlers: ({ scrollConfig, ancestorIsDismissing, canDismiss, handleDismiss, }: UseScreenGestureHandlersProps) => {
|
|
27
12
|
onTouchesDown: (e: GestureTouchEvent) => void;
|
|
28
13
|
onTouchesMove: (e: GestureTouchEvent, manager: GestureStateManagerType) => void;
|
|
29
14
|
onStart: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-screen-gesture-handlers.d.ts","sourceRoot":"","sources":["../../../../../src/shared/hooks/gestures/use-screen-gesture-handlers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-screen-gesture-handlers.d.ts","sourceRoot":"","sources":["../../../../../src/shared/hooks/gestures/use-screen-gesture-handlers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,6BAA6B,EAC7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mFAAmF,CAAC;AACjI,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,yBAAyB,CAAC;AAW3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAmBtE,UAAU,6BAA6B;IACtC,YAAY,EAAE,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC/C,oBAAoB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAClD,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,eAAO,MAAM,wBAAwB,GAAI,oEAKtC,6BAA6B;;;;;;CA8X/B,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { Route } from "@react-navigation/native";
|
|
2
|
-
import { type SharedValue } from "react-native-reanimated";
|
|
3
2
|
import type { ScreenTransitionConfig } from "../../types/screen.types";
|
|
4
3
|
import type { BaseStackNavigation } from "../../types/stack.types";
|
|
5
4
|
export interface ScreenState<TNavigation extends BaseStackNavigation = BaseStackNavigation> {
|
|
@@ -38,12 +37,6 @@ export interface ScreenState<TNavigation extends BaseStackNavigation = BaseStack
|
|
|
38
37
|
* @param index - The index of the snap point to snap to (0-based)
|
|
39
38
|
*/
|
|
40
39
|
snapTo: (index: number) => void;
|
|
41
|
-
/**
|
|
42
|
-
* Animated value representing the current snap point index.
|
|
43
|
-
* Interpolates between indices during gestures (e.g., 0.5 means halfway between snap 0 and 1).
|
|
44
|
-
* Returns -1 if no snap points are defined.
|
|
45
|
-
*/
|
|
46
|
-
animatedSnapIndex: SharedValue<number>;
|
|
47
40
|
}
|
|
48
41
|
/**
|
|
49
42
|
* Hook to access screen state information.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-screen-state.d.ts","sourceRoot":"","sources":["../../../../../src/shared/hooks/navigation/use-screen-state.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"use-screen-state.d.ts","sourceRoot":"","sources":["../../../../../src/shared/hooks/navigation/use-screen-state.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAStD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAKnE,MAAM,WAAW,WAAW,CAC3B,WAAW,SAAS,mBAAmB,GAAG,mBAAmB;IAE7D;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,EAAE,sBAAsB,CAAC;IAEhC;;OAEG;IACH,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IAExB;;OAEG;IACH,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAE5B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE/B;;OAEG;IACH,UAAU,EAAE,WAAW,CAAC;IAExB;;;;;OAKG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC7B,WAAW,SAAS,mBAAmB,GAAG,mBAAmB,KACzD,WAAW,CAAC,WAAW,CAAC,CAsF5B"}
|
|
@@ -120,6 +120,15 @@ export interface ScreenInterpolationProps {
|
|
|
120
120
|
* Falls back to `progress` when not in blank-stack.
|
|
121
121
|
*/
|
|
122
122
|
stackProgress: number;
|
|
123
|
+
/**
|
|
124
|
+
* Animated index of the current snap point.
|
|
125
|
+
* Interpolates between indices during gestures/animations.
|
|
126
|
+
* - Returns -1 if no snap points are defined
|
|
127
|
+
* - Returns 0 when at or below first snap point
|
|
128
|
+
* - Returns fractional values between snap points (e.g., 1.5 = halfway between snap 1 and 2)
|
|
129
|
+
* - Returns length-1 when at or above last snap point
|
|
130
|
+
*/
|
|
131
|
+
snapIndex: number;
|
|
123
132
|
/**
|
|
124
133
|
* Function that provides access to bounds builders for creating shared element transitions.
|
|
125
134
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animation.types.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/animation.types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"animation.types.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/animation.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animate-to-progress.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/animation/animate-to-progress.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAGlE,UAAU,sBAAsB;IAC/B;;;;;OAKG;IACH,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAClC,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,iBAAiB,CAAC;IAC9B,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,iBAAiB,GAAI,mEAM/B,sBAAsB,
|
|
1
|
+
{"version":3,"file":"animate-to-progress.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/animation/animate-to-progress.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAGlE,UAAU,sBAAsB;IAC/B;;;;;OAKG;IACH,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAClC,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,iBAAiB,CAAC;IAC9B,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,iBAAiB,GAAI,mEAM/B,sBAAsB,SAsDxB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { GestureStateManagerType } from "react-native-gesture-handler/lib/typescript/handlers/gestures/gestureStateManager";
|
|
2
2
|
import type { SharedValue } from "react-native-reanimated";
|
|
3
|
+
import type { ScrollConfig } from "../../providers/gestures.provider";
|
|
3
4
|
import { type ActivationArea, type GestureActivationArea, GestureOffsetState } from "../../types/gesture.types";
|
|
4
5
|
import type { Layout } from "../../types/screen.types";
|
|
5
6
|
type Directions = {
|
|
@@ -7,6 +8,7 @@ type Directions = {
|
|
|
7
8
|
verticalInverted: boolean;
|
|
8
9
|
horizontal: boolean;
|
|
9
10
|
horizontalInverted: boolean;
|
|
11
|
+
snapAxisInverted?: boolean;
|
|
10
12
|
};
|
|
11
13
|
interface CheckGestureActivationProps {
|
|
12
14
|
initialTouch: {
|
|
@@ -90,10 +92,7 @@ interface ScrollAwareActivationParams {
|
|
|
90
92
|
isSwipingLeft: boolean;
|
|
91
93
|
};
|
|
92
94
|
directions: Directions;
|
|
93
|
-
|
|
94
|
-
scrollY: number;
|
|
95
|
-
maxScrollX: number;
|
|
96
|
-
maxScrollY: number;
|
|
95
|
+
scrollConfig: ScrollConfig | null;
|
|
97
96
|
hasSnapPoints?: boolean;
|
|
98
97
|
canExpandMore?: boolean;
|
|
99
98
|
}
|
|
@@ -102,7 +101,7 @@ type GestureDirection = "vertical" | "vertical-inverted" | "horizontal" | "horiz
|
|
|
102
101
|
* Checks if a gesture should activate based on scroll position.
|
|
103
102
|
* Returns the direction to activate for, or null if activation should not occur.
|
|
104
103
|
*/
|
|
105
|
-
export declare function checkScrollAwareActivation({ swipeInfo, directions,
|
|
104
|
+
export declare function checkScrollAwareActivation({ swipeInfo, directions, scrollConfig, hasSnapPoints, canExpandMore, }: ScrollAwareActivationParams): {
|
|
106
105
|
shouldActivate: boolean;
|
|
107
106
|
direction: GestureDirection | null;
|
|
108
107
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-gesture-activation.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/gesture/check-gesture-activation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mFAAmF,CAAC;AACjI,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,kBAAkB,EAElB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,KAAK,UAAU,GAAG;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"check-gesture-activation.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/gesture/check-gesture-activation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/shared/utils/logger.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;mBACH,MAAM;kBAIP,MAAM;CAIpB,CAAC;AAEF,eAAO,MAAM,KAAK,GAAI,SAAS,MAAM,UACK,CAAC"}
|
package/package.json
CHANGED
|
@@ -9,6 +9,7 @@ import Animated, {
|
|
|
9
9
|
useSharedValue,
|
|
10
10
|
} from "react-native-reanimated";
|
|
11
11
|
import { Screen as RNSScreen } from "react-native-screens";
|
|
12
|
+
import { EPSILON } from "../../shared/constants";
|
|
12
13
|
import { useStack } from "../../shared/hooks/navigation/use-stack";
|
|
13
14
|
import { LayoutAnchorProvider } from "../../shared/providers/layout-anchor.provider";
|
|
14
15
|
import { useManagedStackContext } from "../../shared/providers/stack/managed.provider";
|
|
@@ -28,7 +29,6 @@ enum ScreenActivity {
|
|
|
28
29
|
ON_TOP = 2,
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
const EPSILON = 1e-5;
|
|
32
32
|
const POINT_NONE = "none" as const;
|
|
33
33
|
const POINT_BOX_NONE = "box-none" as const;
|
|
34
34
|
|