rampkit-expo-dev 0.0.16 → 0.0.18

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.
@@ -351,13 +351,28 @@ function Overlay(props) {
351
351
  };
352
352
  }, [handleRequestClose, props.onRegisterClose]);
353
353
  // Android hardware back goes to previous page, then closes
354
- const navigateToIndex = (nextIndex) => {
354
+ const navigateToIndex = (nextIndex, animation = "fade") => {
355
355
  if (nextIndex === index ||
356
356
  nextIndex < 0 ||
357
357
  nextIndex >= props.screens.length)
358
358
  return;
359
359
  if (isTransitioning)
360
360
  return;
361
+ // Slide animation: use PagerView's built-in animated page change
362
+ // and skip the fade curtain overlay.
363
+ if (animation === "slide") {
364
+ // @ts-ignore: methods exist on PagerView instance
365
+ const pager = pagerRef.current;
366
+ if (!pager)
367
+ return;
368
+ if (typeof pager.setPage === "function") {
369
+ pager.setPage(nextIndex);
370
+ }
371
+ else if (typeof pager.setPageWithoutAnimation === "function") {
372
+ pager.setPageWithoutAnimation(nextIndex);
373
+ }
374
+ return;
375
+ }
361
376
  setIsTransitioning(true);
362
377
  react_native_1.Animated.timing(fadeOpacity, {
363
378
  toValue: 1,
@@ -462,10 +477,10 @@ function Overlay(props) {
462
477
  console.log("[Rampkit] onPageSelected", pos);
463
478
  sendVarsToWebView(pos);
464
479
  };
465
- const handleAdvance = (i) => {
480
+ const handleAdvance = (i, animation = "fade") => {
466
481
  const last = props.screens.length - 1;
467
482
  if (i < last) {
468
- navigateToIndex(i + 1);
483
+ navigateToIndex(i + 1, animation);
469
484
  Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light).catch(() => { });
470
485
  }
471
486
  else {
@@ -667,14 +682,14 @@ function Overlay(props) {
667
682
  }
668
683
  if ((data === null || data === void 0 ? void 0 : data.type) === "rampkit:continue" ||
669
684
  (data === null || data === void 0 ? void 0 : data.type) === "continue") {
670
- handleAdvance(i);
685
+ handleAdvance(i, (data === null || data === void 0 ? void 0 : data.animation) || "fade");
671
686
  return;
672
687
  }
673
688
  if ((data === null || data === void 0 ? void 0 : data.type) === "rampkit:navigate") {
674
689
  const target = data === null || data === void 0 ? void 0 : data.targetScreenId;
675
690
  if (target === "__goBack__") {
676
691
  if (i > 0) {
677
- navigateToIndex(i - 1);
692
+ navigateToIndex(i - 1, (data === null || data === void 0 ? void 0 : data.animation) || "fade");
678
693
  }
679
694
  else {
680
695
  handleRequestClose();
@@ -682,12 +697,12 @@ function Overlay(props) {
682
697
  return;
683
698
  }
684
699
  if (!target || target === "__continue__") {
685
- handleAdvance(i);
700
+ handleAdvance(i, (data === null || data === void 0 ? void 0 : data.animation) || "fade");
686
701
  return;
687
702
  }
688
703
  const targetIndex = props.screens.findIndex((s) => s.id === target);
689
704
  if (targetIndex >= 0) {
690
- navigateToIndex(targetIndex);
705
+ navigateToIndex(targetIndex, (data === null || data === void 0 ? void 0 : data.animation) || "fade");
691
706
  }
692
707
  else {
693
708
  handleAdvance(i);
@@ -696,7 +711,7 @@ function Overlay(props) {
696
711
  }
697
712
  if ((data === null || data === void 0 ? void 0 : data.type) === "rampkit:goBack") {
698
713
  if (i > 0) {
699
- navigateToIndex(i - 1);
714
+ navigateToIndex(i - 1, (data === null || data === void 0 ? void 0 : data.animation) || "fade");
700
715
  }
701
716
  else {
702
717
  handleRequestClose();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rampkit-expo-dev",
3
- "version": "0.0.16",
3
+ "version": "0.0.18",
4
4
  "description": "The Expo SDK for RampKit. Build, test, and personalize app onboardings with instant updates.",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",