react-native-screen-transitions 3.3.0-beta.0 → 3.3.0-beta.2

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 (87) hide show
  1. package/README.md +104 -9
  2. package/lib/commonjs/blank-stack/components/adjusted-screen.js +2 -2
  3. package/lib/commonjs/blank-stack/components/adjusted-screen.js.map +1 -1
  4. package/lib/commonjs/shared/animation/snap-to.js +62 -0
  5. package/lib/commonjs/shared/animation/snap-to.js.map +1 -0
  6. package/lib/commonjs/shared/constants.js +36 -10
  7. package/lib/commonjs/shared/constants.js.map +1 -1
  8. package/lib/commonjs/shared/hooks/animation/use-screen-animation.js +25 -18
  9. package/lib/commonjs/shared/hooks/animation/use-screen-animation.js.map +1 -1
  10. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js +0 -25
  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 +74 -64
  13. package/lib/commonjs/shared/hooks/gestures/use-screen-gesture-handlers.js.map +1 -1
  14. package/lib/commonjs/shared/hooks/navigation/use-screen-state.js +2 -61
  15. package/lib/commonjs/shared/hooks/navigation/use-screen-state.js.map +1 -1
  16. package/lib/commonjs/shared/index.js +7 -0
  17. package/lib/commonjs/shared/index.js.map +1 -1
  18. package/lib/commonjs/shared/stores/animation.store.js +2 -1
  19. package/lib/commonjs/shared/stores/animation.store.js.map +1 -1
  20. package/lib/commonjs/shared/utils/animation/animate-to-progress.js +8 -2
  21. package/lib/commonjs/shared/utils/animation/animate-to-progress.js.map +1 -1
  22. package/lib/commonjs/shared/utils/gesture/check-gesture-activation.js +90 -23
  23. package/lib/commonjs/shared/utils/gesture/check-gesture-activation.js.map +1 -1
  24. package/lib/commonjs/shared/utils/logger.js +22 -0
  25. package/lib/commonjs/shared/utils/logger.js.map +1 -0
  26. package/lib/module/blank-stack/components/adjusted-screen.js +1 -1
  27. package/lib/module/blank-stack/components/adjusted-screen.js.map +1 -1
  28. package/lib/module/shared/animation/snap-to.js +59 -0
  29. package/lib/module/shared/animation/snap-to.js.map +1 -0
  30. package/lib/module/shared/constants.js +34 -9
  31. package/lib/module/shared/constants.js.map +1 -1
  32. package/lib/module/shared/hooks/animation/use-screen-animation.js +25 -18
  33. package/lib/module/shared/hooks/animation/use-screen-animation.js.map +1 -1
  34. package/lib/module/shared/hooks/gestures/use-build-gestures.js +0 -25
  35. package/lib/module/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  36. package/lib/module/shared/hooks/gestures/use-screen-gesture-handlers.js +69 -59
  37. package/lib/module/shared/hooks/gestures/use-screen-gesture-handlers.js.map +1 -1
  38. package/lib/module/shared/hooks/navigation/use-screen-state.js +4 -63
  39. package/lib/module/shared/hooks/navigation/use-screen-state.js.map +1 -1
  40. package/lib/module/shared/index.js +1 -0
  41. package/lib/module/shared/index.js.map +1 -1
  42. package/lib/module/shared/stores/animation.store.js +2 -1
  43. package/lib/module/shared/stores/animation.store.js.map +1 -1
  44. package/lib/module/shared/utils/animation/animate-to-progress.js +8 -2
  45. package/lib/module/shared/utils/animation/animate-to-progress.js.map +1 -1
  46. package/lib/module/shared/utils/gesture/check-gesture-activation.js +90 -23
  47. package/lib/module/shared/utils/gesture/check-gesture-activation.js.map +1 -1
  48. package/lib/module/shared/utils/logger.js +17 -0
  49. package/lib/module/shared/utils/logger.js.map +1 -0
  50. package/lib/typescript/blank-stack/components/adjusted-screen.d.ts.map +1 -1
  51. package/lib/typescript/shared/animation/snap-to.d.ts +18 -0
  52. package/lib/typescript/shared/animation/snap-to.d.ts.map +1 -0
  53. package/lib/typescript/shared/constants.d.ts +9 -0
  54. package/lib/typescript/shared/constants.d.ts.map +1 -1
  55. package/lib/typescript/shared/hooks/animation/use-screen-animation.d.ts.map +1 -1
  56. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts.map +1 -1
  57. package/lib/typescript/shared/hooks/gestures/use-screen-gesture-handlers.d.ts +1 -16
  58. package/lib/typescript/shared/hooks/gestures/use-screen-gesture-handlers.d.ts.map +1 -1
  59. package/lib/typescript/shared/hooks/navigation/use-screen-state.d.ts +0 -14
  60. package/lib/typescript/shared/hooks/navigation/use-screen-state.d.ts.map +1 -1
  61. package/lib/typescript/shared/index.d.ts +1 -0
  62. package/lib/typescript/shared/index.d.ts.map +1 -1
  63. package/lib/typescript/shared/stores/animation.store.d.ts +1 -0
  64. package/lib/typescript/shared/stores/animation.store.d.ts.map +1 -1
  65. package/lib/typescript/shared/types/animation.types.d.ts +9 -0
  66. package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
  67. package/lib/typescript/shared/utils/animation/animate-to-progress.d.ts.map +1 -1
  68. package/lib/typescript/shared/utils/gesture/check-gesture-activation.d.ts +4 -5
  69. package/lib/typescript/shared/utils/gesture/check-gesture-activation.d.ts.map +1 -1
  70. package/lib/typescript/shared/utils/logger.d.ts +6 -0
  71. package/lib/typescript/shared/utils/logger.d.ts.map +1 -0
  72. package/package.json +1 -1
  73. package/src/blank-stack/components/adjusted-screen.tsx +1 -1
  74. package/src/shared/__tests__/derivations.test.ts +1 -0
  75. package/src/shared/__tests__/gesture-activation.test.ts +29 -56
  76. package/src/shared/animation/snap-to.ts +62 -0
  77. package/src/shared/constants.ts +36 -9
  78. package/src/shared/hooks/animation/use-screen-animation.tsx +32 -21
  79. package/src/shared/hooks/gestures/use-build-gestures.tsx +2 -34
  80. package/src/shared/hooks/gestures/use-screen-gesture-handlers.ts +94 -92
  81. package/src/shared/hooks/navigation/use-screen-state.tsx +2 -106
  82. package/src/shared/index.ts +1 -0
  83. package/src/shared/stores/animation.store.ts +2 -0
  84. package/src/shared/types/animation.types.ts +10 -0
  85. package/src/shared/utils/animation/animate-to-progress.ts +7 -2
  86. package/src/shared/utils/gesture/check-gesture-activation.ts +74 -23
  87. package/src/shared/utils/logger.ts +15 -0
package/README.md CHANGED
@@ -212,13 +212,14 @@ options={{
212
212
 
213
213
  ### Gesture Options
214
214
 
215
- | Option | Description |
216
- | ------------------------- | -------------------------------------- |
217
- | `gestureEnabled` | Enable swipe-to-dismiss |
218
- | `gestureDirection` | Direction(s) for swipe gesture |
219
- | `gestureActivationArea` | Where gesture can start |
220
- | `gestureResponseDistance` | Pixel threshold for activation |
221
- | `gestureVelocityImpact` | How much velocity affects dismissal |
215
+ | Option | Description |
216
+ | ------------------------- | ----------------------------------------- |
217
+ | `gestureEnabled` | Enable swipe-to-dismiss |
218
+ | `gestureDirection` | Direction(s) for swipe gesture |
219
+ | `gestureActivationArea` | Where gesture can start |
220
+ | `gestureResponseDistance` | Pixel threshold for activation |
221
+ | `gestureVelocityImpact` | How much velocity affects dismissal |
222
+ | `backdropBehavior` | Touch handling for backdrop area |
222
223
 
223
224
  ### Gesture Direction
224
225
 
@@ -268,6 +269,94 @@ Gesture rules with scrollables:
268
269
 
269
270
  ---
270
271
 
272
+ ## Bottom Sheets
273
+
274
+ Create multi-stop bottom sheets with snap points:
275
+
276
+ ### Basic Configuration
277
+
278
+ ```tsx
279
+ <Stack.Screen
280
+ name="Sheet"
281
+ options={{
282
+ gestureEnabled: true,
283
+ gestureDirection: "vertical",
284
+ snapPoints: [0.5, 1], // 50% and 100% height
285
+ initialSnapIndex: 0, // Start at 50%
286
+ backdropBehavior: "dismiss", // Tap backdrop to dismiss
287
+ ...Transition.Presets.SlideFromBottom(),
288
+ }}
289
+ />
290
+ ```
291
+
292
+ ### Options
293
+
294
+ | Option | Description |
295
+ | ------------------ | ------------------------------------------------------- |
296
+ | `snapPoints` | Array of fractions (0-1) where sheet can rest |
297
+ | `initialSnapIndex` | Index of initial snap point (default: 0) |
298
+ | `backdropBehavior` | Touch handling: `"block"`, `"passthrough"`, `"dismiss"` |
299
+
300
+ ### Programmatic Control
301
+
302
+ Control snap points from within your screen:
303
+
304
+ ```tsx
305
+ import { useScreenState } from "react-native-screen-transitions";
306
+
307
+ function BottomSheet() {
308
+ const { snapTo } = useScreenState();
309
+
310
+ // Expand to full height (index 1)
311
+ const expand = () => snapTo(1);
312
+
313
+ // Collapse to half height (index 0)
314
+ const collapse = () => snapTo(0);
315
+
316
+ return (
317
+ <View>
318
+ <Button title="Expand" onPress={expand} />
319
+ <Button title="Collapse" onPress={collapse} />
320
+ </View>
321
+ );
322
+ }
323
+ ```
324
+
325
+ The animated `snapIndex` is available in screen interpolators via `ScreenInterpolationProps`:
326
+
327
+ ```tsx
328
+ screenStyleInterpolator: ({ snapIndex }) => {
329
+ // snapIndex interpolates between snap point indices
330
+ // e.g., 0.5 means halfway between snap point 0 and 1
331
+ return {
332
+ contentStyle: {
333
+ opacity: interpolate(snapIndex, [0, 1], [0.5, 1]),
334
+ },
335
+ };
336
+ }
337
+ ```
338
+
339
+ ### ScrollView Behavior
340
+
341
+ With `Transition.ScrollView` inside a snap-enabled sheet:
342
+ - **Scroll at top**: Swipe up expands, swipe down collapses
343
+ - **Scrolled into content**: Normal scroll behavior
344
+
345
+ ### Snap Animation Specs
346
+
347
+ Customize snap animations separately from enter/exit:
348
+
349
+ ```tsx
350
+ transitionSpec: {
351
+ open: { stiffness: 1000, damping: 500, mass: 3 }, // Screen enter
352
+ close: { stiffness: 1000, damping: 500, mass: 3 }, // Screen exit
353
+ expand: { stiffness: 300, damping: 30 }, // Snap up
354
+ collapse: { stiffness: 300, damping: 30 }, // Snap down
355
+ }
356
+ ```
357
+
358
+ ---
359
+
271
360
  ## Shared Elements (Bounds API)
272
361
 
273
362
  Animate elements between screens by tagging them.
@@ -382,13 +471,19 @@ function DetailScreen() {
382
471
 
383
472
  ### useScreenState
384
473
 
385
- Get navigation state without animation values:
474
+ Get navigation state and snap point controls:
386
475
 
387
476
  ```tsx
388
477
  import { useScreenState } from "react-native-screen-transitions";
389
478
 
390
479
  function DetailScreen() {
391
- const { index, focusedRoute, routes, navigation } = useScreenState();
480
+ const {
481
+ index,
482
+ focusedRoute,
483
+ routes,
484
+ navigation,
485
+ snapTo, // Snap to index programmatically
486
+ } = useScreenState();
392
487
  // ...
393
488
  }
394
489
  ```
@@ -7,6 +7,7 @@ exports.AdjustedScreen = void 0;
7
7
  var _reactNative = require("react-native");
8
8
  var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
9
9
  var _reactNativeScreens = require("react-native-screens");
10
+ var _constants = require("../../shared/constants");
10
11
  var _useStack = require("../../shared/hooks/navigation/use-stack");
11
12
  var _layoutAnchor = require("../../shared/providers/layout-anchor.provider");
12
13
  var _managed = require("../../shared/providers/stack/managed.provider");
@@ -19,7 +20,6 @@ var ScreenActivity = /*#__PURE__*/function (ScreenActivity) {
19
20
  ScreenActivity[ScreenActivity["ON_TOP"] = 2] = "ON_TOP";
20
21
  return ScreenActivity;
21
22
  }(ScreenActivity || {});
22
- const EPSILON = 1e-5;
23
23
  const POINT_NONE = "none";
24
24
  const POINT_BOX_NONE = "box-none";
25
25
  const AnimatedNativeScreen = _reactNativeReanimated.default.createAnimatedComponent(_reactNativeScreens.Screen);
@@ -54,7 +54,7 @@ const AdjustedScreen = ({
54
54
  screenActivity.set(ScreenActivity.INACTIVE);
55
55
  } else {
56
56
  const outputValue = index === routesLength - 1 ? ScreenActivity.ON_TOP : index >= routesLength - activeScreensLimit ? ScreenActivity.TRANSITIONING_OR_BELOW_TOP : ScreenActivity.INACTIVE;
57
- const v = (0, _reactNativeReanimated.interpolate)(sceneProgress.get(), [0, 1 - EPSILON, 1], [1, 1, outputValue], _reactNativeReanimated.Extrapolation.CLAMP);
57
+ const v = (0, _reactNativeReanimated.interpolate)(sceneProgress.get(), [0, 1 - _constants.EPSILON, 1], [1, 1, outputValue], _reactNativeReanimated.Extrapolation.CLAMP);
58
58
  const next = Math.trunc(v) ?? ScreenActivity.TRANSITIONING_OR_BELOW_TOP;
59
59
  if (next !== screenActivity.get()) {
60
60
  screenActivity.set(next);
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_reactNativeReanimated","_interopRequireWildcard","_reactNativeScreens","_useStack","_layoutAnchor","_managed","_animation","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ScreenActivity","EPSILON","POINT_NONE","POINT_BOX_NONE","AnimatedNativeScreen","Animated","createAnimatedComponent","RNSScreen","AdjustedScreen","routeKey","index","isPreloaded","children","freezeOnBlur","shouldFreeze","flags","DISABLE_NATIVE_SCREENS","useStack","activeScreensLimit","routes","useManagedStackContext","routesLength","length","screenRef","useAnimatedRef","sceneProgress","AnimationStore","getAnimation","sceneClosing","screenActivity","useSharedValue","TRANSITIONING_OR_BELOW_TOP","useDerivedValue","INACTIVE","outputValue","ON_TOP","v","interpolate","Extrapolation","CLAMP","next","Math","trunc","animatedProps","useAnimatedProps","activity","activityState","pointerEvents","AdjustedScreenComponent","View","jsx","enabled","ref","style","StyleSheet","absoluteFill","LayoutAnchorProvider","anchorRef","exports"],"sourceRoot":"../../../../src","sources":["blank-stack/components/adjusted-screen.tsx"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAC,uBAAA,CAAAF,OAAA;AAQA,IAAAG,mBAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,UAAA,GAAAP,OAAA;AAAqE,IAAAQ,WAAA,GAAAR,OAAA;AAAA,SAAAE,wBAAAO,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAT,uBAAA,YAAAA,CAAAO,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,IAUhEkB,cAAc,0BAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA,EAAdA,cAAc;AAMnB,MAAMC,OAAO,GAAG,IAAI;AACpB,MAAMC,UAAU,GAAG,MAAe;AAClC,MAAMC,cAAc,GAAG,UAAmB;AAE1C,MAAMC,oBAAoB,GAAGC,8BAAQ,CAACC,uBAAuB,CAACC,0BAAS,CAAC;AAEjE,MAAMC,cAAc,GAAGA,CAAC;EAC9BC,QAAQ;EACRC,KAAK;EACLC,WAAW;EACXC,QAAQ;EACRC,YAAY;EACZC;AACY,CAAC,KAAK;EAClB,MAAM;IACLC,KAAK,EAAE;MAAEC,sBAAsB,GAAG;IAAM;EACzC,CAAC,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EACd,MAAM;IAAEC,kBAAkB;IAAEC;EAAO,CAAC,GAAG,IAAAC,+BAAsB,EAAC,CAAC;EAC/D,MAAMC,YAAY,GAAGF,MAAM,CAACG,MAAM;EAClC,MAAMC,SAAS,GAAG,IAAAC,qCAAc,EAAO,CAAC;EAExC,MAAMC,aAAa,GAAGC,yBAAc,CAACC,YAAY,CAAClB,QAAQ,EAAE,UAAU,CAAC;EACvE,MAAMmB,YAAY,GAAGF,yBAAc,CAACC,YAAY,CAAClB,QAAQ,EAAE,SAAS,CAAC;EACrE,MAAMoB,cAAc,GAAG,IAAAC,qCAAc,EACpC9B,cAAc,CAAC+B,0BAChB,CAAC;EAED,IAAAC,sCAAe,EAAC,MAAM;IACrB,IAAI,CAACP,aAAa,EAAE;MACnBI,cAAc,CAACnC,GAAG,CAACM,cAAc,CAAC+B,0BAA0B,CAAC;MAC7D;IACD;IAEA,IAAIrB,KAAK,GAAGW,YAAY,GAAGH,kBAAkB,GAAG,CAAC,IAAIP,WAAW,EAAE;MACjEkB,cAAc,CAACnC,GAAG,CAACM,cAAc,CAACiC,QAAQ,CAAC;IAC5C,CAAC,MAAM;MACN,MAAMC,WAAW,GAChBxB,KAAK,KAAKW,YAAY,GAAG,CAAC,GACvBrB,cAAc,CAACmC,MAAM,GACrBzB,KAAK,IAAIW,YAAY,GAAGH,kBAAkB,GACzClB,cAAc,CAAC+B,0BAA0B,GACzC/B,cAAc,CAACiC,QAAQ;MAE5B,MAAMG,CAAC,GAAG,IAAAC,kCAAW,EACpBZ,aAAa,CAAChC,GAAG,CAAC,CAAC,EACnB,CAAC,CAAC,EAAE,CAAC,GAAGQ,OAAO,EAAE,CAAC,CAAC,EACnB,CAAC,CAAC,EAAE,CAAC,EAAEiC,WAAW,CAAC,EACnBI,oCAAa,CAACC,KACf,CAAC;MAED,MAAMC,IAAI,GAAGC,IAAI,CAACC,KAAK,CAACN,CAAC,CAAC,IAAIpC,cAAc,CAAC+B,0BAA0B;MAEvE,IAAIS,IAAI,KAAKX,cAAc,CAACpC,GAAG,CAAC,CAAC,EAAE;QAClCoC,cAAc,CAACnC,GAAG,CAAC8C,IAAI,CAAC;MACzB;IACD;EACD,CAAC,CAAC;EAEF,MAAMG,aAAa,GAAG,IAAAC,uCAAgB,EAAC,MAAM;IAC5C,MAAMC,QAAQ,GAAGhB,cAAc,CAACpC,GAAG,CAAC,CAAC;IACrC,IAAI,CAACuB,sBAAsB,EAAE;MAC5B,OAAO;QACN8B,aAAa,EAAED,QAAQ;QACvB/B,YAAY,EAAE+B,QAAQ,KAAK7C,cAAc,CAACiC,QAAQ,IAAInB,YAAY;QAClEiC,aAAa,EAAEnB,YAAY,CAACnC,GAAG,CAAC,CAAC,GAAGS,UAAU,GAAGC;MAClD,CAAC;IACF;IAEA,OAAO;MACN4C,aAAa,EAAEnB,YAAY,CAACnC,GAAG,CAAC,CAAC,GAAGS,UAAU,GAAGC;IAClD,CAAC;EACF,CAAC,CAAC;EAEF,MAAM6C,uBAAuB,GAAG,CAAChC,sBAAsB,GACpDZ,oBAAoB,GACpBC,8BAAQ,CAAC4C,IAAI;EAEhB,oBACC,IAAArE,WAAA,CAAAsE,GAAA,EAACF,uBAAuB;IACvBG,OAAO;IACPC,GAAG,EAAE7B,SAAU;IACf8B,KAAK,EAAEC,uBAAU,CAACC,YAAa;IAC/B1C,YAAY,EAAEA,YAAa;IAC3B8B,aAAa,EAAEA,aAAc;IAAA/B,QAAA,eAE7B,IAAAhC,WAAA,CAAAsE,GAAA,EAACzE,aAAA,CAAA+E,oBAAoB;MAACC,SAAS,EAAElC,SAAU;MAAAX,QAAA,EACzCA;IAAQ,CACY;EAAC,CACC,CAAC;AAE5B,CAAC;AAAC8C,OAAA,CAAAlD,cAAA,GAAAA,cAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_reactNativeReanimated","_interopRequireWildcard","_reactNativeScreens","_constants","_useStack","_layoutAnchor","_managed","_animation","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ScreenActivity","POINT_NONE","POINT_BOX_NONE","AnimatedNativeScreen","Animated","createAnimatedComponent","RNSScreen","AdjustedScreen","routeKey","index","isPreloaded","children","freezeOnBlur","shouldFreeze","flags","DISABLE_NATIVE_SCREENS","useStack","activeScreensLimit","routes","useManagedStackContext","routesLength","length","screenRef","useAnimatedRef","sceneProgress","AnimationStore","getAnimation","sceneClosing","screenActivity","useSharedValue","TRANSITIONING_OR_BELOW_TOP","useDerivedValue","INACTIVE","outputValue","ON_TOP","v","interpolate","EPSILON","Extrapolation","CLAMP","next","Math","trunc","animatedProps","useAnimatedProps","activity","activityState","pointerEvents","AdjustedScreenComponent","View","jsx","enabled","ref","style","StyleSheet","absoluteFill","LayoutAnchorProvider","anchorRef","exports"],"sourceRoot":"../../../../src","sources":["blank-stack/components/adjusted-screen.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.snapTo = snapTo;
7
+ var _reactNativeReanimated = require("react-native-reanimated");
8
+ var _specs = require("../configs/specs");
9
+ var _animation = require("../stores/animation.store");
10
+ var _history = require("../stores/history.store");
11
+ var _animateToProgress = require("../utils/animation/animate-to-progress");
12
+ /**
13
+ * Programmatically snap the currently focused screen to a specific snap point.
14
+ *
15
+ * @param index - The index of the snap point to snap to (0-based, sorted ascending)
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * import { snapTo } from 'react-native-screen-transitions';
20
+ *
21
+ * // Snap to the first (smallest) snap point
22
+ * snapTo(0);
23
+ *
24
+ * // Snap to the last (largest) snap point
25
+ * snapTo(2); // if there are 3 snap points
26
+ * ```
27
+ */
28
+ function snapTo(index) {
29
+ const recent = _history.HistoryStore.getMostRecent();
30
+ if (!recent) {
31
+ console.warn("snapTo: No screen in history");
32
+ return;
33
+ }
34
+ const {
35
+ descriptor
36
+ } = recent;
37
+ const snapPoints = descriptor.options?.snapPoints;
38
+ if (!snapPoints || snapPoints.length === 0) {
39
+ console.warn("snapTo: No snapPoints defined on current screen");
40
+ return;
41
+ }
42
+ const sorted = [...snapPoints].sort((a, b) => a - b);
43
+ if (index < 0 || index >= sorted.length) {
44
+ console.warn(`snapTo: index ${index} out of bounds (0-${sorted.length - 1})`);
45
+ return;
46
+ }
47
+ const targetProgress = sorted[index];
48
+ const animations = _animation.AnimationStore.getAll(descriptor.route.key);
49
+ (0, _reactNativeReanimated.runOnUI)(() => {
50
+ "worklet";
51
+
52
+ (0, _animateToProgress.animateToProgress)({
53
+ target: targetProgress,
54
+ animations,
55
+ spec: {
56
+ open: descriptor.options.transitionSpec?.expand ?? _specs.DefaultSnapSpec,
57
+ close: descriptor.options.transitionSpec?.collapse ?? _specs.DefaultSnapSpec
58
+ }
59
+ });
60
+ })();
61
+ }
62
+ //# sourceMappingURL=snap-to.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNativeReanimated","require","_specs","_animation","_history","_animateToProgress","snapTo","index","recent","HistoryStore","getMostRecent","console","warn","descriptor","snapPoints","options","length","sorted","sort","a","b","targetProgress","animations","AnimationStore","getAll","route","key","runOnUI","animateToProgress","target","spec","open","transitionSpec","expand","DefaultSnapSpec","close","collapse"],"sourceRoot":"../../../../src","sources":["shared/animation/snap-to.ts"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,kBAAA,GAAAJ,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,MAAMA,CAACC,KAAa,EAAQ;EAC3C,MAAMC,MAAM,GAAGC,qBAAY,CAACC,aAAa,CAAC,CAAC;EAE3C,IAAI,CAACF,MAAM,EAAE;IACZG,OAAO,CAACC,IAAI,CAAC,8BAA8B,CAAC;IAC5C;EACD;EAEA,MAAM;IAAEC;EAAW,CAAC,GAAGL,MAAM;EAC7B,MAAMM,UAAU,GAAGD,UAAU,CAACE,OAAO,EAAED,UAAU;EAEjD,IAAI,CAACA,UAAU,IAAIA,UAAU,CAACE,MAAM,KAAK,CAAC,EAAE;IAC3CL,OAAO,CAACC,IAAI,CAAC,iDAAiD,CAAC;IAC/D;EACD;EAEA,MAAMK,MAAM,GAAG,CAAC,GAAGH,UAAU,CAAC,CAACI,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,CAAC;EAEpD,IAAIb,KAAK,GAAG,CAAC,IAAIA,KAAK,IAAIU,MAAM,CAACD,MAAM,EAAE;IACxCL,OAAO,CAACC,IAAI,CACX,iBAAiBL,KAAK,qBAAqBU,MAAM,CAACD,MAAM,GAAG,CAAC,GAC7D,CAAC;IACD;EACD;EAEA,MAAMK,cAAc,GAAGJ,MAAM,CAACV,KAAK,CAAC;EACpC,MAAMe,UAAU,GAAGC,yBAAc,CAACC,MAAM,CAACX,UAAU,CAACY,KAAK,CAACC,GAAG,CAAC;EAE9D,IAAAC,8BAAO,EAAC,MAAM;IACb,SAAS;;IACT,IAAAC,oCAAiB,EAAC;MACjBC,MAAM,EAAER,cAAc;MACtBC,UAAU;MACVQ,IAAI,EAAE;QACLC,IAAI,EAAElB,UAAU,CAACE,OAAO,CAACiB,cAAc,EAAEC,MAAM,IAAIC,sBAAe;QAClEC,KAAK,EAAEtB,UAAU,CAACE,OAAO,CAACiB,cAAc,EAAEI,QAAQ,IAAIF;MACvD;IACD,CAAC,CAAC;EACH,CAAC,CAAC,CAAC,CAAC;AACL","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TRUE = exports.NO_STYLES = exports.MASK_STYLE_ID = exports.IS_WEB = exports.GESTURE_VELOCITY_IMPACT = exports.FULLSCREEN_DIMENSIONS = exports.FALSE = exports.EXIT_RANGE = exports.ENTER_RANGE = exports.EMPTY_BOUND_HELPER_RESULT_RAW = exports.EMPTY_BOUND_HELPER_RESULT = exports.DEFAULT_SCREEN_TRANSITION_STATE = exports.DEFAULT_GESTURE_DRIVES_PROGRESS = exports.DEFAULT_GESTURE_DIRECTION = exports.DEFAULT_GESTURE_ACTIVATION_AREA = exports.CONTAINER_STYLE_ID = void 0;
6
+ exports.createScreenTransitionState = exports.TRUE = exports.NO_STYLES = exports.MASK_STYLE_ID = exports.IS_WEB = exports.GESTURE_VELOCITY_IMPACT = exports.FULLSCREEN_DIMENSIONS = exports.FALSE = exports.EXIT_RANGE = exports.EPSILON = exports.ENTER_RANGE = exports.EMPTY_BOUND_HELPER_RESULT_RAW = exports.EMPTY_BOUND_HELPER_RESULT = exports.DEFAULT_SCREEN_TRANSITION_STATE = exports.DEFAULT_GESTURE_DRIVES_PROGRESS = exports.DEFAULT_GESTURE_DIRECTION = exports.DEFAULT_GESTURE_ACTIVATION_AREA = exports.CONTAINER_STYLE_ID = void 0;
7
7
  var _reactNative = require("react-native");
8
8
  /**
9
9
  * Masked view integration
@@ -17,22 +17,43 @@ const CONTAINER_STYLE_ID = exports.CONTAINER_STYLE_ID = "_ROOT_CONTAINER";
17
17
  const NO_STYLES = exports.NO_STYLES = Object.freeze({});
18
18
 
19
19
  /**
20
- * Default screen transition state
20
+ * Default gesture values
21
21
  */
22
- const DEFAULT_SCREEN_TRANSITION_STATE = exports.DEFAULT_SCREEN_TRANSITION_STATE = Object.freeze({
22
+ const DEFAULT_GESTURE_VALUES = {
23
+ x: 0,
24
+ y: 0,
25
+ normalizedX: 0,
26
+ normalizedY: 0,
27
+ isDismissing: 0,
28
+ isDragging: 0,
29
+ direction: null
30
+ };
31
+
32
+ /**
33
+ * Creates a new screen transition state object
34
+ */
35
+ const createScreenTransitionState = (route, meta) => ({
23
36
  progress: 0,
24
37
  closing: 0,
25
38
  animating: 0,
26
39
  entering: 1,
27
40
  gesture: {
28
- x: 0,
29
- y: 0,
30
- normalizedX: 0,
31
- normalizedY: 0,
32
- isDismissing: 0,
33
- isDragging: 0,
34
- direction: null
41
+ ...DEFAULT_GESTURE_VALUES
35
42
  },
43
+ route,
44
+ meta
45
+ });
46
+
47
+ /**
48
+ * Default screen transition state
49
+ */
50
+ exports.createScreenTransitionState = createScreenTransitionState;
51
+ const DEFAULT_SCREEN_TRANSITION_STATE = exports.DEFAULT_SCREEN_TRANSITION_STATE = Object.freeze({
52
+ progress: 0,
53
+ closing: 0,
54
+ animating: 0,
55
+ entering: 1,
56
+ gesture: DEFAULT_GESTURE_VALUES,
36
57
  route: {}
37
58
  });
38
59
 
@@ -75,4 +96,9 @@ const DEFAULT_GESTURE_ACTIVATION_AREA = exports.DEFAULT_GESTURE_ACTIVATION_AREA
75
96
  const IS_WEB = exports.IS_WEB = _reactNative.Platform.OS === "web";
76
97
  const TRUE = exports.TRUE = 1;
77
98
  const FALSE = exports.FALSE = 0;
99
+
100
+ /**
101
+ * Small value for floating-point comparisons to handle animation/interpolation imprecision
102
+ */
103
+ const EPSILON = exports.EPSILON = 1e-5;
78
104
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","MASK_STYLE_ID","exports","CONTAINER_STYLE_ID","NO_STYLES","Object","freeze","DEFAULT_SCREEN_TRANSITION_STATE","progress","closing","animating","entering","gesture","x","y","normalizedX","normalizedY","isDismissing","isDragging","direction","route","EMPTY_BOUND_HELPER_RESULT","EMPTY_BOUND_HELPER_RESULT_RAW","scaleX","scaleY","scale","translateX","translateY","width","height","ENTER_RANGE","EXIT_RANGE","FULLSCREEN_DIMENSIONS","dimensions","pageX","pageY","GESTURE_VELOCITY_IMPACT","DEFAULT_GESTURE_DIRECTION","DEFAULT_GESTURE_DRIVES_PROGRESS","DEFAULT_GESTURE_ACTIVATION_AREA","IS_WEB","Platform","OS","TRUE","FALSE"],"sourceRoot":"../../../src","sources":["shared/constants.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAMA;AACA;AACA;AACO,MAAMC,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,cAAc;AACpC,MAAME,kBAAkB,GAAAD,OAAA,CAAAC,kBAAA,GAAG,iBAAiB;;AAEnD;AACA;AACA;AACO,MAAMC,SAAS,GAAAF,OAAA,CAAAE,SAAA,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC;;AAE1C;AACA;AACA;AACO,MAAMC,+BAAsD,GAAAL,OAAA,CAAAK,+BAAA,GAClEF,MAAM,CAACC,MAAM,CAAC;EACbE,QAAQ,EAAE,CAAC;EACXC,OAAO,EAAE,CAAC;EACVC,SAAS,EAAE,CAAC;EACZC,QAAQ,EAAE,CAAC;EACXC,OAAO,EAAE;IACRC,CAAC,EAAE,CAAC;IACJC,CAAC,EAAE,CAAC;IACJC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE,CAAC;IACdC,YAAY,EAAE,CAAC;IACfC,UAAU,EAAE,CAAC;IACbC,SAAS,EAAE;EACZ,CAAC;EACDC,KAAK,EAAE,CAAC;AACT,CAAC,CAAC;;AAEH;AACA;AACA;AACO,MAAMC,yBAAyB,GAAAnB,OAAA,CAAAmB,yBAAA,GAAGhB,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC;AACnD,MAAMgB,6BAA6B,GAAApB,OAAA,CAAAoB,6BAAA,GAAGjB,MAAM,CAACC,MAAM,CAAC;EAC1DiB,MAAM,EAAE,CAAC;EACTC,MAAM,EAAE,CAAC;EACTC,KAAK,EAAE,CAAC;EACRC,UAAU,EAAE,CAAC;EACbC,UAAU,EAAE,CAAC;EACbC,KAAK,EAAE,CAAC;EACRC,MAAM,EAAE;AACT,CAAC,CAAC;AACK,MAAMC,WAAW,GAAA5B,OAAA,CAAA4B,WAAA,GAAG,CAAC,CAAC,EAAE,CAAC,CAAU;AACnC,MAAMC,UAAU,GAAA7B,OAAA,CAAA6B,UAAA,GAAG,CAAC,CAAC,EAAE,CAAC,CAAU;AAElC,MAAMC,qBAAqB,GACjCC,UAAkB,IACM;EACxB,SAAS;;EACT,OAAO;IACNpB,CAAC,EAAE,CAAC;IACJC,CAAC,EAAE,CAAC;IACJoB,KAAK,EAAE,CAAC;IACRC,KAAK,EAAE,CAAC;IACRP,KAAK,EAAEK,UAAU,CAACL,KAAK;IACvBC,MAAM,EAAEI,UAAU,CAACJ;EACpB,CAAC;AACF,CAAC;;AAED;AACA;AACA;AAFA3B,OAAA,CAAA8B,qBAAA,GAAAA,qBAAA;AAGO,MAAMI,uBAAuB,GAAAlC,OAAA,CAAAkC,uBAAA,GAAG,GAAG;AACnC,MAAMC,yBAAyB,GAAAnC,OAAA,CAAAmC,yBAAA,GAAG,YAAY;AAC9C,MAAMC,+BAA+B,GAAApC,OAAA,CAAAoC,+BAAA,GAAG,IAAI;AAC5C,MAAMC,+BAA+C,GAAArC,OAAA,CAAAqC,+BAAA,GAAG,QAAQ;AAEhE,MAAMC,MAAM,GAAAtC,OAAA,CAAAsC,MAAA,GAAGC,qBAAQ,CAACC,EAAE,KAAK,KAAK;AAEpC,MAAMC,IAAI,GAAAzC,OAAA,CAAAyC,IAAA,GAAG,CAAC;AACd,MAAMC,KAAK,GAAA1C,OAAA,CAAA0C,KAAA,GAAG,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","MASK_STYLE_ID","exports","CONTAINER_STYLE_ID","NO_STYLES","Object","freeze","DEFAULT_GESTURE_VALUES","x","y","normalizedX","normalizedY","isDismissing","isDragging","direction","createScreenTransitionState","route","meta","progress","closing","animating","entering","gesture","DEFAULT_SCREEN_TRANSITION_STATE","EMPTY_BOUND_HELPER_RESULT","EMPTY_BOUND_HELPER_RESULT_RAW","scaleX","scaleY","scale","translateX","translateY","width","height","ENTER_RANGE","EXIT_RANGE","FULLSCREEN_DIMENSIONS","dimensions","pageX","pageY","GESTURE_VELOCITY_IMPACT","DEFAULT_GESTURE_DIRECTION","DEFAULT_GESTURE_DRIVES_PROGRESS","DEFAULT_GESTURE_ACTIVATION_AREA","IS_WEB","Platform","OS","TRUE","FALSE","EPSILON"],"sourceRoot":"../../../src","sources":["shared/constants.ts"],"mappings":"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","ignoreList":[]}
@@ -16,23 +16,24 @@ var _gesture = require("../../stores/gesture.store");
16
16
  var _derivations = require("../../utils/animation/derivations");
17
17
  var _bounds = require("../../utils/bounds");
18
18
  var _useStack = require("../navigation/use-stack");
19
- const createScreenTransitionState = (route, meta) => ({
20
- progress: 0,
21
- closing: 0,
22
- animating: 0,
23
- entering: 1,
24
- gesture: {
25
- x: 0,
26
- y: 0,
27
- normalizedX: 0,
28
- normalizedY: 0,
29
- isDismissing: 0,
30
- isDragging: 0,
31
- direction: null
32
- },
33
- route,
34
- meta
35
- });
19
+ /**
20
+ * Computes the animated snap index based on progress and snap points.
21
+ * Returns -1 if no snap points, otherwise interpolates between indices.
22
+ */
23
+ const computeSnapIndex = (progress, snapPoints) => {
24
+ "worklet";
25
+
26
+ if (snapPoints.length === 0) return -1;
27
+ if (progress <= snapPoints[0]) return 0;
28
+ if (progress >= snapPoints[snapPoints.length - 1]) return snapPoints.length - 1;
29
+ for (let i = 0; i < snapPoints.length - 1; i++) {
30
+ if (progress <= snapPoints[i + 1]) {
31
+ const t = (progress - snapPoints[i]) / (snapPoints[i + 1] - snapPoints[i]);
32
+ return i + t;
33
+ }
34
+ }
35
+ return snapPoints.length - 1;
36
+ };
36
37
  const unwrapInto = s => {
37
38
  "worklet";
38
39
 
@@ -64,7 +65,7 @@ const useBuildScreenTransitionState = descriptor => {
64
65
  gesture: _gesture.GestureStore.getRouteGestures(key),
65
66
  route: descriptor.route,
66
67
  meta,
67
- unwrapped: createScreenTransitionState(descriptor.route, meta)
68
+ unwrapped: (0, _constants.createScreenTransitionState)(descriptor.route, meta)
68
69
  };
69
70
  }, [key, descriptor?.route, meta]);
70
71
  };
@@ -94,6 +95,10 @@ function _useScreenAnimation() {
94
95
  const prevAnimation = useBuildScreenTransitionState(previousDescriptor);
95
96
  const currentRouteKey = currentDescriptor?.route?.key;
96
97
  const currentIndex = routeKeys.indexOf(currentRouteKey);
98
+ const sortedSnapPoints = (0, _react.useMemo)(() => {
99
+ const points = currentDescriptor?.options?.snapPoints;
100
+ return points ? [...points].sort((a, b) => a - b) : [];
101
+ }, [currentDescriptor?.options?.snapPoints]);
97
102
  const screenInterpolatorProps = (0, _reactNativeReanimated.useDerivedValue)(() => {
98
103
  "worklet";
99
104
 
@@ -113,6 +118,7 @@ function _useScreenAnimation() {
113
118
  // This gives us the sum of progress values from current screen onwards
114
119
  // Falls back to current progress if index is invalid
115
120
  const stackProgress = currentIndex >= 0 ? rootStackProgress.value - currentIndex : progress;
121
+ const snapIndex = computeSnapIndex(current.progress, sortedSnapPoints);
116
122
  return {
117
123
  layouts: {
118
124
  screen: dimensions
@@ -123,6 +129,7 @@ function _useScreenAnimation() {
123
129
  next,
124
130
  progress,
125
131
  stackProgress,
132
+ snapIndex,
126
133
  ...helpers
127
134
  };
128
135
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_reactNativeReanimated","_reactNativeSafeAreaContext","_constants","_keys","_animation","_gesture","_derivations","_bounds","_useStack","createScreenTransitionState","route","meta","progress","closing","animating","entering","gesture","x","y","normalizedX","normalizedY","isDismissing","isDragging","direction","unwrapInto","s","out","unwrapped","value","useBuildScreenTransitionState","descriptor","key","options","useMemo","undefined","AnimationStore","getAnimation","GestureStore","getRouteGestures","hasTransitionsEnabled","alwaysOn","enableTransitions","_useScreenAnimation","windowDimensions","useWindowDimensions","dimensions","insets","useSafeAreaInsets","flags","stackProgress","rootStackProgress","routeKeys","useStack","transitionsAlwaysOn","TRANSITIONS_ALWAYS_ON","current","currentDescriptor","next","nextDescriptor","previous","previousDescriptor","useKeys","currentAnimation","nextAnimation","prevAnimation","currentRouteKey","currentIndex","indexOf","screenInterpolatorProps","useDerivedValue","DEFAULT_SCREEN_TRANSITION_STATE","helpers","derivations","layouts","screen","nextInterpolator","screenStyleInterpolator","currentInterpolator","useScreenAnimation","props","bounds","createBounds"],"sourceRoot":"../../../../../src","sources":["shared/hooks/animation/use-screen-animation.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_reactNativeReanimated","_reactNativeSafeAreaContext","_constants","_keys","_animation","_gesture","_derivations","_bounds","_useStack","computeSnapIndex","progress","snapPoints","length","i","t","unwrapInto","s","out","unwrapped","value","closing","entering","animating","gesture","x","y","normalizedX","normalizedY","isDismissing","isDragging","direction","meta","useBuildScreenTransitionState","descriptor","key","route","options","useMemo","undefined","AnimationStore","getAnimation","GestureStore","getRouteGestures","createScreenTransitionState","hasTransitionsEnabled","alwaysOn","enableTransitions","_useScreenAnimation","windowDimensions","useWindowDimensions","dimensions","insets","useSafeAreaInsets","flags","stackProgress","rootStackProgress","routeKeys","useStack","transitionsAlwaysOn","TRANSITIONS_ALWAYS_ON","current","currentDescriptor","next","nextDescriptor","previous","previousDescriptor","useKeys","currentAnimation","nextAnimation","prevAnimation","currentRouteKey","currentIndex","indexOf","sortedSnapPoints","points","sort","a","b","screenInterpolatorProps","useDerivedValue","DEFAULT_SCREEN_TRANSITION_STATE","helpers","derivations","snapIndex","layouts","screen","nextInterpolator","screenStyleInterpolator","currentInterpolator","useScreenAnimation","props","bounds","createBounds"],"sourceRoot":"../../../../../src","sources":["shared/hooks/animation/use-screen-animation.tsx"],"mappings":"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","ignoreList":[]}
@@ -6,18 +6,14 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useBuildGestures = void 0;
7
7
  var _native = require("@react-navigation/native");
8
8
  var _react = require("react");
9
- var _reactNative = require("react-native");
10
9
  var _reactNativeGestureHandler = require("react-native-gesture-handler");
11
- var _constants = require("../../constants");
12
10
  var _keys = require("../../providers/screen/keys.provider");
13
- var _animation = require("../../stores/animation.store");
14
11
  var _gesture = require("../../stores/gesture.store");
15
12
  var _useScreenGestureHandlers = require("./use-screen-gesture-handlers");
16
13
  const useBuildGestures = ({
17
14
  scrollConfig,
18
15
  ancestorContext
19
16
  }) => {
20
- const dimensions = (0, _reactNative.useWindowDimensions)();
21
17
  const {
22
18
  current
23
19
  } = (0, _keys.useKeys)();
@@ -29,14 +25,7 @@ const useBuildGestures = ({
29
25
  // Ref for external gesture coordination (e.g., swipeable lists)
30
26
  const panGestureRef = (0, _react.useRef)(undefined);
31
27
  const gestureAnimationValues = _gesture.GestureStore.getRouteGestures(current.route.key);
32
- const animations = _animation.AnimationStore.getAll(current.route.key);
33
28
  const {
34
- gestureDirection = _constants.DEFAULT_GESTURE_DIRECTION,
35
- gestureVelocityImpact = _constants.GESTURE_VELOCITY_IMPACT,
36
- gestureDrivesProgress = _constants.DEFAULT_GESTURE_DRIVES_PROGRESS,
37
- gestureActivationArea = _constants.DEFAULT_GESTURE_ACTIVATION_AREA,
38
- gestureResponseDistance,
39
- transitionSpec,
40
29
  snapPoints
41
30
  } = current.options;
42
31
 
@@ -72,25 +61,11 @@ const useBuildGestures = ({
72
61
  onUpdate,
73
62
  onEnd
74
63
  } = (0, _useScreenGestureHandlers.useScreenGestureHandlers)({
75
- dimensions,
76
- animations,
77
- gestureAnimationValues,
78
- gestureDirection,
79
- gestureDrivesProgress,
80
- gestureVelocityImpact,
81
64
  scrollConfig,
82
- gestureActivationArea,
83
- gestureResponseDistance,
84
- snapPoints,
85
65
  canDismiss,
86
- transitionSpec,
87
66
  handleDismiss,
88
67
  ancestorIsDismissing: ancestorContext?.gestureAnimationValues.isDismissing
89
68
  });
90
-
91
- // Memoize gestures to keep stable references - critical for RNGH
92
- // Child gestures reference ancestor's pan via requireExternalGestureToFail,
93
- // so the pan gesture MUST be stable or children will reference stale objects
94
69
  return (0, _react.useMemo)(() => {
95
70
  const panGesture = _reactNativeGestureHandler.Gesture.Pan().withRef(panGestureRef).enabled(gestureEnabled).manualActivation(true).onTouchesDown(onTouchesDown).onTouchesMove(onTouchesMove).onStart(onStart).onUpdate(onUpdate).onEnd(onEnd);
96
71
 
@@ -1 +1 @@
1
- {"version":3,"names":["_native","require","_react","_reactNative","_reactNativeGestureHandler","_constants","_keys","_animation","_gesture","_useScreenGestureHandlers","useBuildGestures","scrollConfig","ancestorContext","dimensions","useWindowDimensions","current","useKeys","navState","navigation","getState","isFirstScreen","useMemo","routes","findIndex","r","key","route","panGestureRef","useRef","undefined","gestureAnimationValues","GestureStore","getRouteGestures","animations","AnimationStore","getAll","gestureDirection","DEFAULT_GESTURE_DIRECTION","gestureVelocityImpact","GESTURE_VELOCITY_IMPACT","gestureDrivesProgress","DEFAULT_GESTURE_DRIVES_PROGRESS","gestureActivationArea","DEFAULT_GESTURE_ACTIVATION_AREA","gestureResponseDistance","transitionSpec","snapPoints","options","canDismiss","Boolean","gestureEnabled","hasSnapPoints","Array","isArray","length","handleDismiss","useCallback","isDismissing","value","state","routeStillPresent","some","dispatch","StackActions","pop","source","target","onTouchesDown","onTouchesMove","onStart","onUpdate","onEnd","useScreenGestureHandlers","ancestorIsDismissing","panGesture","Gesture","Pan","withRef","enabled","manualActivation","nativeGesture","Native","requireExternalGestureToFail","blocksExternalGesture","activePanAncestor","exports"],"sourceRoot":"../../../../../src","sources":["shared/hooks/gestures/use-build-gestures.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_native","require","_react","_reactNativeGestureHandler","_keys","_gesture","_useScreenGestureHandlers","useBuildGestures","scrollConfig","ancestorContext","current","useKeys","navState","navigation","getState","isFirstScreen","useMemo","routes","findIndex","r","key","route","panGestureRef","useRef","undefined","gestureAnimationValues","GestureStore","getRouteGestures","snapPoints","options","canDismiss","Boolean","gestureEnabled","hasSnapPoints","Array","isArray","length","handleDismiss","useCallback","isDismissing","value","state","routeStillPresent","some","dispatch","StackActions","pop","source","target","onTouchesDown","onTouchesMove","onStart","onUpdate","onEnd","useScreenGestureHandlers","ancestorIsDismissing","panGesture","Gesture","Pan","withRef","enabled","manualActivation","nativeGesture","Native","requireExternalGestureToFail","blocksExternalGesture","activePanAncestor","exports"],"sourceRoot":"../../../../../src","sources":["shared/hooks/gestures/use-build-gestures.tsx"],"mappings":"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","ignoreList":[]}