react-native-gesture-image-viewer 3.0.0-beta.0 → 3.0.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.
@@ -2,8 +2,9 @@
2
2
 
3
3
  import { useEffect, useMemo } from 'react';
4
4
  import { StyleSheet, useWindowDimensions, View } from 'react-native';
5
- import { Gesture, GestureDetector, GestureHandlerRootView } from 'react-native-gesture-handler';
5
+ import { GestureDetector, GestureHandlerRootView } from 'react-native-gesture-handler';
6
6
  import Animated, { useAnimatedStyle } from 'react-native-reanimated';
7
+ import { composeGestureViewerGestures } from "./gestureViewerGestures.js";
7
8
  import { registry } from "./GestureViewerRegistry.js";
8
9
  import { getWebContentProps } from './getWebContentProps';
9
10
  import { useGestureViewer } from "./useGestureViewer.js";
@@ -74,7 +75,8 @@ export function GestureViewer({
74
75
  pageStride,
75
76
  renderWindowSlots,
76
77
  visualPage,
77
- zoomGesture
78
+ zoomGesture,
79
+ zoomPinchGesture
78
80
  } = useGestureViewer({
79
81
  id,
80
82
  data,
@@ -87,8 +89,13 @@ export function GestureViewer({
87
89
  ...props
88
90
  });
89
91
  const gesture = useMemo(() => {
90
- return Gesture.Race(dismissGesture, horizontalPagingGesture, zoomGesture);
91
- }, [dismissGesture, horizontalPagingGesture, zoomGesture]);
92
+ return composeGestureViewerGestures({
93
+ dismissGesture,
94
+ horizontalPagingGesture,
95
+ zoomGesture,
96
+ zoomPinchGesture
97
+ });
98
+ }, [dismissGesture, horizontalPagingGesture, zoomGesture, zoomPinchGesture]);
92
99
  useEffect(() => {
93
100
  registry.createManager(id);
94
101
  return () => registry.deleteManager(id);
@@ -147,6 +154,7 @@ const styles = StyleSheet.create({
147
154
  },
148
155
  slot: {
149
156
  left: 0,
157
+ overflow: 'hidden',
150
158
  position: 'absolute',
151
159
  top: 0
152
160
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useMemo","StyleSheet","useWindowDimensions","View","Gesture","GestureDetector","GestureHandlerRootView","Animated","useAnimatedStyle","registry","getWebContentProps","useGestureViewer","jsx","_jsx","jsxs","_jsxs","RenderWindowSlotView","animatedStyle","height","isActive","pageStride","renderItem","slot","visualPage","width","slotAnimatedStyle","transform","translateX","virtualIndex","get","style","styles","children","page","item","logicalIndex","GestureViewer","id","data","renderContainer","customWidth","customHeight","backdropStyle","backdropStyleProps","containerStyle","initialIndex","pageSpacing","windowSize","enableLoop","props","screenWidth","screenHeight","centerVirtualIndex","dismissGesture","handleDismiss","horizontalPagingGesture","onWebClick","renderWindowSlots","zoomGesture","gesture","Race","createManager","deleteManager","control","dismiss","webContentProps","viewer","container","background","content","map","slotKey","create","absoluteFill","backgroundColor","overflow","alignItems","justifyContent","flex","left","position","top"],"sourceRoot":"../../src","sources":["GestureViewer.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useMemo","StyleSheet","useWindowDimensions","View","GestureDetector","GestureHandlerRootView","Animated","useAnimatedStyle","composeGestureViewerGestures","registry","getWebContentProps","useGestureViewer","jsx","_jsx","jsxs","_jsxs","RenderWindowSlotView","animatedStyle","height","isActive","pageStride","renderItem","slot","visualPage","width","slotAnimatedStyle","transform","translateX","virtualIndex","get","style","styles","children","page","item","logicalIndex","GestureViewer","id","data","renderContainer","customWidth","customHeight","backdropStyle","backdropStyleProps","containerStyle","initialIndex","pageSpacing","windowSize","enableLoop","props","screenWidth","screenHeight","centerVirtualIndex","dismissGesture","handleDismiss","horizontalPagingGesture","onWebClick","renderWindowSlots","zoomGesture","zoomPinchGesture","gesture","createManager","deleteManager","control","dismiss","webContentProps","viewer","container","background","content","map","slotKey","create","absoluteFill","backgroundColor","overflow","alignItems","justifyContent","flex","left","position","top"],"sourceRoot":"../../src","sources":["GestureViewer.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ import { Gesture } from 'react-native-gesture-handler';
4
+ export function composeGestureViewerGestures({
5
+ dismissGesture,
6
+ horizontalPagingGesture,
7
+ zoomGesture,
8
+ zoomPinchGesture
9
+ }) {
10
+ return Gesture.Simultaneous(zoomPinchGesture, Gesture.Race(dismissGesture, horizontalPagingGesture, zoomGesture));
11
+ }
12
+ //# sourceMappingURL=gestureViewerGestures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Gesture","composeGestureViewerGestures","dismissGesture","horizontalPagingGesture","zoomGesture","zoomPinchGesture","Simultaneous","Race"],"sourceRoot":"../../src","sources":["gestureViewerGestures.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAgD,8BAA8B;AAS9F,OAAO,SAASC,4BAA4BA,CAAC;EAC3CC,cAAc;EACdC,uBAAuB;EACvBC,WAAW;EACXC;AACqB,CAAC,EAAmB;EACzC,OAAOL,OAAO,CAACM,YAAY,CACzBD,gBAAgB,EAChBL,OAAO,CAACO,IAAI,CAACL,cAAc,EAAEC,uBAAuB,EAAEC,WAAW,CACnE,CAAC;AACH","ignoreList":[]}
@@ -19,6 +19,7 @@ import { createBoundsConstraint } from "./utils/index.js";
19
19
  import { getDismissDistance, shouldDismissByDirection } from "./utils/dismiss.js";
20
20
  import { applyTapZoomAtPoint } from "./utils/tapZoom.js";
21
21
  import { calculateFocalPointTranslation, shouldAcceptFocalPoint } from "./utils/zoom.js";
22
+ const NATIVE_TAP_MAX_DISTANCE = 10;
22
23
  const isValidTriggerRect = rect => {
23
24
  return !!rect && rect.width > 0 && rect.height > 0;
24
25
  };
@@ -99,6 +100,8 @@ export const useGestureViewer = ({
99
100
  const startFocalX = useSharedValue(0);
100
101
  const startFocalY = useSharedValue(0);
101
102
  const hasActiveFocal = useSharedValue(false);
103
+ const nativeInteractionHadMultipleTouches = useSharedValue(false);
104
+ const suppressNativeTap = useSharedValue(false);
102
105
  const {
103
106
  clearPendingWebSingleTap,
104
107
  scheduleWebSingleTap
@@ -194,6 +197,7 @@ export const useGestureViewer = ({
194
197
  isTriggerOpening,
195
198
  isZoomed,
196
199
  pageStride,
200
+ suppressNativeTap,
197
201
  width
198
202
  });
199
203
  const navigateToIndex = useCallback((targetIndex, options, preferredDirection) => {
@@ -479,15 +483,38 @@ export const useGestureViewer = ({
479
483
  dismissWithoutTrigger();
480
484
  }, [animateDismissToRect, dismissWithoutTrigger, id, isPageTransitioningRef, onDismissStart]);
481
485
  const dismissGesture = useMemo(() => {
482
- const canDismiss = !isTriggerOpening && !isZoomed && dismissOptions.enabled;
483
- return Gesture.Pan().minDistance(10).averageTouches(true).activeCursor('grabbing').activeOffsetY([-10, 10]).failOffsetX([-10, 10]).withRef(dismissGestureRef).enabled(canDismiss).onUpdate(event => {
484
- if (pageTransitionLocked.get()) {
486
+ const canDismiss = !isTriggerOpening && !isPinching && !isZoomed && dismissOptions.enabled;
487
+ const resetDismissTranslation = () => {
488
+ 'worklet';
489
+
490
+ cancelAnimation(translateY);
491
+ translateY.set(0);
492
+ };
493
+ return Gesture.Pan().minDistance(10).maxPointers(1).averageTouches(true).activeCursor('grabbing').activeOffsetY([-10, 10]).failOffsetX([-10, 10]).withRef(dismissGestureRef).enabled(canDismiss).onTouchesDown((event, stateManager) => {
494
+ if (event.numberOfTouches === 1) {
495
+ nativeInteractionHadMultipleTouches.set(false);
496
+ return;
497
+ }
498
+ if (event.numberOfTouches > 1) {
499
+ nativeInteractionHadMultipleTouches.set(true);
500
+ suppressNativeTap.set(true);
501
+ resetDismissTranslation();
502
+ stateManager.fail();
503
+ }
504
+ }).onStart(() => {
505
+ suppressNativeTap.set(true);
506
+ }).onUpdate(event => {
507
+ if (nativeInteractionHadMultipleTouches.get() || pageTransitionLocked.get()) {
485
508
  return;
486
509
  }
487
510
  translateY.set(event.translationY / dismissOptions.resistance);
488
511
  }).onEnd(event => {
512
+ if (nativeInteractionHadMultipleTouches.get()) {
513
+ resetDismissTranslation();
514
+ return;
515
+ }
489
516
  if (pageTransitionLocked.get()) {
490
- translateY.set(withSpring(0, PAGE_SPRING_CONFIG));
517
+ resetDismissTranslation();
491
518
  return;
492
519
  }
493
520
  if (canDismiss && shouldDismissByDirection(event.translationY, dismissOptions.threshold, dismissOptions.direction)) {
@@ -495,8 +522,12 @@ export const useGestureViewer = ({
495
522
  return;
496
523
  }
497
524
  translateY.set(withSpring(0, PAGE_SPRING_CONFIG));
525
+ }).onFinalize((_event, success) => {
526
+ if ((!success || nativeInteractionHadMultipleTouches.get()) && scale.get() <= 1) {
527
+ resetDismissTranslation();
528
+ }
498
529
  });
499
- }, [translateY, dismissOptions, handleDismiss, isTriggerOpening, isZoomed, pageTransitionLocked]);
530
+ }, [dismissOptions, handleDismiss, isPinching, isTriggerOpening, isZoomed, nativeInteractionHadMultipleTouches, pageTransitionLocked, scale, suppressNativeTap, translateY]);
500
531
  const getCurrentTapTarget = useCallback(() => {
501
532
  const index = pendingIndexRef.current;
502
533
  if (index < 0 || index >= dataRef.current.length || !(index in dataRef.current)) {
@@ -536,14 +567,30 @@ export const useGestureViewer = ({
536
567
  item: targetItem
537
568
  });
538
569
  }, [getCurrentTapTarget, isPageTransitioningRef]);
539
- const singleTapGesture = useMemo(() => Gesture.Tap().enabled(enableNativeTapGestures).numberOfTaps(1).onEnd((event, success) => {
540
- if (!success || pageTransitionLocked.get()) {
570
+ const singleTapGesture = useMemo(() => Gesture.Tap().enabled(enableNativeTapGestures).numberOfTaps(1).maxDistance(NATIVE_TAP_MAX_DISTANCE).onTouchesDown((event, stateManager) => {
571
+ if (event.numberOfTouches === 1) {
572
+ nativeInteractionHadMultipleTouches.set(false);
573
+ suppressNativeTap.set(false);
574
+ return;
575
+ }
576
+ nativeInteractionHadMultipleTouches.set(true);
577
+ suppressNativeTap.set(true);
578
+ stateManager.fail();
579
+ }).onEnd((event, success) => {
580
+ if (!success || pageTransitionLocked.get() || suppressNativeTap.get()) {
541
581
  return;
542
582
  }
543
583
  scheduleOnRN(emitSingleTap, event.x, event.y);
544
- }), [emitSingleTap, pageTransitionLocked]);
545
- const doubleTapGesture = useMemo(() => Gesture.Tap().enabled(enableDoubleTapZoom && enableNativeTapGestures).numberOfTaps(2).onEnd(event => {
546
- if (pageTransitionLocked.get()) {
584
+ }), [emitSingleTap, nativeInteractionHadMultipleTouches, pageTransitionLocked, suppressNativeTap]);
585
+ const doubleTapGesture = useMemo(() => Gesture.Tap().enabled(enableDoubleTapZoom && enableNativeTapGestures).numberOfTaps(2).maxDistance(NATIVE_TAP_MAX_DISTANCE).onTouchesDown((event, stateManager) => {
586
+ if (event.numberOfTouches === 1) {
587
+ return;
588
+ }
589
+ nativeInteractionHadMultipleTouches.set(true);
590
+ suppressNativeTap.set(true);
591
+ stateManager.fail();
592
+ }).onEnd(event => {
593
+ if (pageTransitionLocked.get() || suppressNativeTap.get()) {
547
594
  return;
548
595
  }
549
596
  applyTapZoomAtPoint({
@@ -556,20 +603,28 @@ export const useGestureViewer = ({
556
603
  translateX,
557
604
  translateY
558
605
  });
559
- }), [enableDoubleTapZoom, height, maxZoomScale, pageTransitionLocked, scale, translateX, translateY, width]);
606
+ }), [enableDoubleTapZoom, height, maxZoomScale, nativeInteractionHadMultipleTouches, pageTransitionLocked, scale, suppressNativeTap, translateX, translateY, width]);
560
607
  const tapGesture = useMemo(() => Gesture.Exclusive(doubleTapGesture, singleTapGesture), [doubleTapGesture, singleTapGesture]);
561
608
  const zoomPinchGesture = useMemo(() => Gesture.Pinch().enabled(enablePinchZoom).onTouchesDown(event => {
562
- if (pageTransitionLocked.get()) {
563
- return;
564
- }
565
609
  if (event.numberOfTouches === 2) {
610
+ nativeInteractionHadMultipleTouches.set(true);
611
+ suppressNativeTap.set(true);
566
612
  scheduleOnRN(setIsPinching, true);
567
613
  }
568
614
  }).onStart(event => {
569
615
  if (pageTransitionLocked.get()) {
570
616
  return;
571
617
  }
572
- startScale.set(scale.get());
618
+ const currentScale = scale.get();
619
+ nativeInteractionHadMultipleTouches.set(true);
620
+ suppressNativeTap.set(true);
621
+ startScale.set(currentScale);
622
+ if (currentScale <= 1) {
623
+ cancelAnimation(translateX);
624
+ cancelAnimation(translateY);
625
+ translateX.set(0);
626
+ translateY.set(0);
627
+ }
573
628
  initialTranslateX.set(translateX.get());
574
629
  initialTranslateY.set(translateY.get());
575
630
  startFocalX.set(event.focalX);
@@ -682,15 +737,27 @@ export const useGestureViewer = ({
682
737
  }).onFinalize(() => {
683
738
  hasActiveFocal.set(false);
684
739
  scheduleOnRN(setIsPinching, false);
685
- }), [scale, enablePinchZoom, maxZoomScale, translateX, translateY, startScale, initialTranslateX, initialTranslateY, width, height, constrainTranslation, lastFocalX, lastFocalY, startFocalX, startFocalY, hasActiveFocal, pageTransitionLocked]);
686
- const zoomPanGesture = useMemo(() => Gesture.Pan().enabled(enablePanWhenZoomed && isZoomed).activeCursor('grabbing').averageTouches(true).onBegin(() => {
687
- if (pageTransitionLocked.get()) {
740
+ }), [scale, enablePinchZoom, maxZoomScale, translateX, translateY, startScale, initialTranslateX, initialTranslateY, width, height, constrainTranslation, lastFocalX, lastFocalY, startFocalX, startFocalY, hasActiveFocal, nativeInteractionHadMultipleTouches, pageTransitionLocked, suppressNativeTap]);
741
+ const zoomPanGesture = useMemo(() => Gesture.Pan().enabled(enablePanWhenZoomed && !isPinching && isZoomed).maxPointers(1).activeCursor('grabbing').averageTouches(true).onTouchesDown((event, stateManager) => {
742
+ if (event.numberOfTouches === 1) {
743
+ nativeInteractionHadMultipleTouches.set(false);
744
+ return;
745
+ }
746
+ if (event.numberOfTouches > 1) {
747
+ nativeInteractionHadMultipleTouches.set(true);
748
+ suppressNativeTap.set(true);
749
+ stateManager.fail();
750
+ }
751
+ }).onBegin(() => {
752
+ if (nativeInteractionHadMultipleTouches.get() || pageTransitionLocked.get()) {
688
753
  return;
689
754
  }
690
755
  initialTranslateX.set(translateX.get());
691
756
  initialTranslateY.set(translateY.get());
757
+ }).onStart(() => {
758
+ suppressNativeTap.set(true);
692
759
  }).onUpdate(event => {
693
- if (pageTransitionLocked.get()) {
760
+ if (nativeInteractionHadMultipleTouches.get() || pageTransitionLocked.get()) {
694
761
  return;
695
762
  }
696
763
  const currentScale = scale.get();
@@ -708,8 +775,8 @@ export const useGestureViewer = ({
708
775
  translateX.set(constrainedTranslateX);
709
776
  translateY.set(constrainedTranslateY);
710
777
  }
711
- }), [translateX, translateY, enablePanWhenZoomed, isZoomed, scale, initialTranslateX, initialTranslateY, constrainTranslation, pageTransitionLocked]);
712
- const zoomGesture = useMemo(() => Gesture.Race(zoomPinchGesture, Gesture.Exclusive(zoomPanGesture, tapGesture)), [zoomPinchGesture, zoomPanGesture, tapGesture]);
778
+ }), [translateX, translateY, enablePanWhenZoomed, isPinching, isZoomed, scale, initialTranslateX, initialTranslateY, constrainTranslation, nativeInteractionHadMultipleTouches, pageTransitionLocked, suppressNativeTap]);
779
+ const zoomGesture = useMemo(() => Gesture.Exclusive(zoomPanGesture, tapGesture), [zoomPanGesture, tapGesture]);
713
780
  const onWebClick = useWebClickHandler({
714
781
  clearPendingWebSingleTap,
715
782
  emitSingleTap,
@@ -771,7 +838,8 @@ export const useGestureViewer = ({
771
838
  pageStride,
772
839
  renderWindowSlots,
773
840
  visualPage,
774
- zoomGesture
841
+ zoomGesture,
842
+ zoomPinchGesture
775
843
  };
776
844
  };
777
845
  //# sourceMappingURL=useGestureViewer.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useLayoutEffect","useMemo","useRef","useState","useWindowDimensions","Gesture","Easing","cancelAnimation","interpolate","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","scheduleOnRN","PAGE_SPRING_CONFIG","SWIPE_THRESHOLD_RATIO","SWIPE_VELOCITY_THRESHOLD","normalizeHorizontalSwipeThreshold","registry","resolveGestureViewerRenderWindow","enableNativeTapGestures","getLogicalIndex","getPageStride","getVirtualIndexForLogicalIndex","normalizePageSpacing","clampIndex","resolveNavigation","shouldRunNavigationDuringTransition","useGestureViewerManagerBridge","useGestureViewerPaging","useWebClickHandler","useWebSingleTapTimer","createBoundsConstraint","getDismissDistance","shouldDismissByDirection","applyTapZoomAtPoint","calculateFocalPointTranslation","shouldAcceptFocalPoint","isValidTriggerRect","rect","width","height","useGestureViewer","data","initialIndex","onDismiss","onSingleTap","customWidth","dismiss","enableDoubleTapZoom","enablePinchZoom","horizontalSwipe","enablePanWhenZoomed","enableLoop","maxZoomScale","pageSpacing","windowSize","customHeight","id","onDismissStart","triggerAnimation","autoPlay","autoPlayInterval","screenWidth","screenHeight","dataLength","length","normalizedPageSpacing","pageStride","initialCurrentIndex","horizontalSwipeEnabled","enabled","horizontalSwipeDistanceThresholdRatio","distanceThresholdRatio","horizontalSwipeVelocityThreshold","velocityThreshold","dismissGestureRef","undefined","isZoomed","setIsZoomed","isRotated","setIsRotated","isPinching","setIsPinching","shouldStartTriggerAnimation","setShouldStartTriggerAnimation","currentIndex","setCurrentIndex","centerVirtualIndex","setCenterVirtualIndex","activeTriggerNode","setActiveTriggerNode","getActiveTriggerNode","isTriggerOpening","setIsTriggerOpening","triggerRectRef","pendingIndexRef","currentIndexRef","centerVirtualIndexRef","previousInitialIndexRef","hasResolvedInitialIndexRef","onAnimationCompleteRef","onAnimationComplete","onSingleTapRef","dataRef","dataLengthRef","enableLoopRef","managerRef","isZoomedRef","isRotatedRef","isPinchingRef","initialTranslateY","initialTranslateX","startScale","translateY","translateX","scale","rotation","triggerScale","triggerTranslateX","triggerTranslateY","triggerOpacity","hasZoomChangeListeners","hasRotationChangeListeners","lastFocalX","lastFocalY","startFocalX","startFocalY","hasActiveFocal","clearPendingWebSingleTap","scheduleWebSingleTap","animationConfig","duration","easing","bezier","reduceMotion","dismissOptions","direction","fadeBackdrop","resistance","threshold","renderCenterVirtualIndex","renderCurrentIndex","slots","renderWindowSlots","constrainTranslation","resetTransformState","set","resetTransformStateImmediately","commitCurrentIndex","nextIndex","current","notifyStateChange","commitVirtualIndexOnly","nextVirtualIndex","nextLogicalIndex","animateToVirtualPage","horizontalPagingGesture","isPageTransitioningRef","pageTransitionLocked","snapToVirtualPage","visualPage","initialPage","navigateToIndex","targetIndex","options","preferredDirection","resolution","kind","targetVirtualIndex","animated","navigateByDirection","currentDataLength","navigateToNext","navigateToPrevious","goToIndex","goToNext","goToPrevious","emitZoomChange","currentScale","prevScale","emitRotationChange","currentRotation","prevRotation","finishTriggerOpening","get","previousScale","currentIsZoomed","previousIsZoomed","previousRotation","currentIsRotated","previousIsRotated","subscribeToActiveTrigger","node","initialIndexChanged","shouldResolveInitialIndex","previousIndex","previousVirtualIndex","shouldSyncVirtualPage","shouldResetTransform","shouldCommitIndexOutsidePaging","interval","Math","max","floor","Number","isFinite","timer","setInterval","clearInterval","startX","x","startY","y","initialScaleFromTrigger","min","finished","measure","clearActiveTriggerNode","_x","_y","measuredWidth","measuredHeight","pageX","pageY","nextTriggerRect","animateDismissToRect","endX","endY","endScale","dismissWithoutTrigger","handleDismiss","dismissTargetIndex","indexedTriggerNode","getIndexedTriggerNode","currentTriggerRect","dismissGesture","canDismiss","Pan","minDistance","averageTouches","activeCursor","activeOffsetY","failOffsetX","withRef","onUpdate","event","translationY","onEnd","getCurrentTapTarget","index","item","isWebInteractionLocked","emitSingleTap","tapTarget","target","targetItem","emitTap","singleTapGesture","Tap","numberOfTaps","success","doubleTapGesture","tapGesture","Exclusive","zoomPinchGesture","Pinch","onTouchesDown","numberOfTouches","onStart","focalX","focalY","initialScale","newScale","nextLastFocalX","nextLastFocalY","newTranslateX","newTranslateY","currentFocalX","currentFocalY","nextScale","constrainedTranslateX","constrainedTranslateY","onTouchesUp","onFinalize","zoomPanGesture","onBegin","translationX","zoomGesture","Race","onWebClick","isInteractionLocked","animatedStyle","opacity","transform","rotate","backdropStyle","baseOpacity","dismissDistance","dismissOpacity"],"sourceRoot":"../../src","sources":["useGestureViewer.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useLayoutEffect","useMemo","useRef","useState","useWindowDimensions","Gesture","Easing","cancelAnimation","interpolate","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","scheduleOnRN","PAGE_SPRING_CONFIG","SWIPE_THRESHOLD_RATIO","SWIPE_VELOCITY_THRESHOLD","normalizeHorizontalSwipeThreshold","registry","resolveGestureViewerRenderWindow","enableNativeTapGestures","getLogicalIndex","getPageStride","getVirtualIndexForLogicalIndex","normalizePageSpacing","clampIndex","resolveNavigation","shouldRunNavigationDuringTransition","useGestureViewerManagerBridge","useGestureViewerPaging","useWebClickHandler","useWebSingleTapTimer","createBoundsConstraint","getDismissDistance","shouldDismissByDirection","applyTapZoomAtPoint","calculateFocalPointTranslation","shouldAcceptFocalPoint","NATIVE_TAP_MAX_DISTANCE","isValidTriggerRect","rect","width","height","useGestureViewer","data","initialIndex","onDismiss","onSingleTap","customWidth","dismiss","enableDoubleTapZoom","enablePinchZoom","horizontalSwipe","enablePanWhenZoomed","enableLoop","maxZoomScale","pageSpacing","windowSize","customHeight","id","onDismissStart","triggerAnimation","autoPlay","autoPlayInterval","screenWidth","screenHeight","dataLength","length","normalizedPageSpacing","pageStride","initialCurrentIndex","horizontalSwipeEnabled","enabled","horizontalSwipeDistanceThresholdRatio","distanceThresholdRatio","horizontalSwipeVelocityThreshold","velocityThreshold","dismissGestureRef","undefined","isZoomed","setIsZoomed","isRotated","setIsRotated","isPinching","setIsPinching","shouldStartTriggerAnimation","setShouldStartTriggerAnimation","currentIndex","setCurrentIndex","centerVirtualIndex","setCenterVirtualIndex","activeTriggerNode","setActiveTriggerNode","getActiveTriggerNode","isTriggerOpening","setIsTriggerOpening","triggerRectRef","pendingIndexRef","currentIndexRef","centerVirtualIndexRef","previousInitialIndexRef","hasResolvedInitialIndexRef","onAnimationCompleteRef","onAnimationComplete","onSingleTapRef","dataRef","dataLengthRef","enableLoopRef","managerRef","isZoomedRef","isRotatedRef","isPinchingRef","initialTranslateY","initialTranslateX","startScale","translateY","translateX","scale","rotation","triggerScale","triggerTranslateX","triggerTranslateY","triggerOpacity","hasZoomChangeListeners","hasRotationChangeListeners","lastFocalX","lastFocalY","startFocalX","startFocalY","hasActiveFocal","nativeInteractionHadMultipleTouches","suppressNativeTap","clearPendingWebSingleTap","scheduleWebSingleTap","animationConfig","duration","easing","bezier","reduceMotion","dismissOptions","direction","fadeBackdrop","resistance","threshold","renderCenterVirtualIndex","renderCurrentIndex","slots","renderWindowSlots","constrainTranslation","resetTransformState","set","resetTransformStateImmediately","commitCurrentIndex","nextIndex","current","notifyStateChange","commitVirtualIndexOnly","nextVirtualIndex","nextLogicalIndex","animateToVirtualPage","horizontalPagingGesture","isPageTransitioningRef","pageTransitionLocked","snapToVirtualPage","visualPage","initialPage","navigateToIndex","targetIndex","options","preferredDirection","resolution","kind","targetVirtualIndex","animated","navigateByDirection","currentDataLength","navigateToNext","navigateToPrevious","goToIndex","goToNext","goToPrevious","emitZoomChange","currentScale","prevScale","emitRotationChange","currentRotation","prevRotation","finishTriggerOpening","get","previousScale","currentIsZoomed","previousIsZoomed","previousRotation","currentIsRotated","previousIsRotated","subscribeToActiveTrigger","node","initialIndexChanged","shouldResolveInitialIndex","previousIndex","previousVirtualIndex","shouldSyncVirtualPage","shouldResetTransform","shouldCommitIndexOutsidePaging","interval","Math","max","floor","Number","isFinite","timer","setInterval","clearInterval","startX","x","startY","y","initialScaleFromTrigger","min","finished","measure","clearActiveTriggerNode","_x","_y","measuredWidth","measuredHeight","pageX","pageY","nextTriggerRect","animateDismissToRect","endX","endY","endScale","dismissWithoutTrigger","handleDismiss","dismissTargetIndex","indexedTriggerNode","getIndexedTriggerNode","currentTriggerRect","dismissGesture","canDismiss","resetDismissTranslation","Pan","minDistance","maxPointers","averageTouches","activeCursor","activeOffsetY","failOffsetX","withRef","onTouchesDown","event","stateManager","numberOfTouches","fail","onStart","onUpdate","translationY","onEnd","onFinalize","_event","success","getCurrentTapTarget","index","item","isWebInteractionLocked","emitSingleTap","tapTarget","target","targetItem","emitTap","singleTapGesture","Tap","numberOfTaps","maxDistance","doubleTapGesture","tapGesture","Exclusive","zoomPinchGesture","Pinch","focalX","focalY","initialScale","newScale","nextLastFocalX","nextLastFocalY","newTranslateX","newTranslateY","currentFocalX","currentFocalY","nextScale","constrainedTranslateX","constrainedTranslateY","onTouchesUp","zoomPanGesture","onBegin","translationX","zoomGesture","onWebClick","isInteractionLocked","animatedStyle","opacity","transform","rotate","backdropStyle","baseOpacity","dismissDistance","dismissOpacity"],"sourceRoot":"../../src","sources":["useGestureViewer.ts"],"mappings":"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","ignoreList":[]}
@@ -25,6 +25,7 @@ export function useGestureViewerPaging({
25
25
  isTriggerOpening,
26
26
  isZoomed,
27
27
  pageStride,
28
+ suppressNativeTap,
28
29
  width
29
30
  }) {
30
31
  const visualPage = useSharedValue(initialPage);
@@ -92,7 +93,26 @@ export function useGestureViewerPaging({
92
93
  }
93
94
  }));
94
95
  };
95
- return Gesture.Pan().minDistance(10).averageTouches(true).activeCursor('grabbing').activeOffsetX([-10, 10]).failOffsetY([-10, 10]).enabled(canSwipe).onStart(() => {
96
+ const releasePagingForPinch = () => {
97
+ 'worklet';
98
+
99
+ if (!pagingGestureActive.get()) {
100
+ return;
101
+ }
102
+ cancelAnimation(visualPage);
103
+ pagingAnimationActive.set(false);
104
+ pagingGestureActive.set(false);
105
+ pageTransitionLocked.set(false);
106
+ visualPage.set(centerVirtualIndex);
107
+ scheduleOnRN(setPageTransitioning, false);
108
+ };
109
+ return Gesture.Pan().minDistance(10).maxPointers(1).averageTouches(true).activeCursor('grabbing').activeOffsetX([-10, 10]).failOffsetY([-10, 10]).enabled(canSwipe).onTouchesDown((event, stateManager) => {
110
+ if (event.numberOfTouches > 1) {
111
+ suppressNativeTap.set(true);
112
+ releasePagingForPinch();
113
+ stateManager.fail();
114
+ }
115
+ }).onStart(() => {
96
116
  if (pageTransitionLocked.get()) {
97
117
  return;
98
118
  }
@@ -102,6 +122,7 @@ export function useGestureViewerPaging({
102
122
  pagingAnimationActive.set(false);
103
123
  pagingGestureActive.set(true);
104
124
  pagingStartPage.set(visualPage.get());
125
+ suppressNativeTap.set(true);
105
126
  scheduleOnRN(setPageTransitioning, true);
106
127
  }).onUpdate(event => {
107
128
  if (!pagingGestureActive.get()) {
@@ -150,7 +171,7 @@ export function useGestureViewerPaging({
150
171
  }
151
172
  scheduleOnRN(setPageTransitioning, false);
152
173
  });
153
- }, [cancelAnimatedVirtualPage, centerVirtualIndex, completeAnimatedVirtualPage, currentIndex, dataLength, enableLoop, horizontalSwipeDistanceThresholdRatio, horizontalSwipeEnabled, horizontalSwipeVelocityThreshold, isTriggerOpening, isPinching, isRotated, isZoomed, pageTransitionLocked, pageStride, pagingAnimationActive, pagingGestureActive, pagingStartPage, setPageTransitioning, visualPage, width]);
174
+ }, [cancelAnimatedVirtualPage, centerVirtualIndex, completeAnimatedVirtualPage, currentIndex, dataLength, enableLoop, horizontalSwipeDistanceThresholdRatio, horizontalSwipeEnabled, horizontalSwipeVelocityThreshold, isTriggerOpening, isPinching, isRotated, isZoomed, pageTransitionLocked, pageStride, pagingAnimationActive, pagingGestureActive, pagingStartPage, setPageTransitioning, suppressNativeTap, visualPage, width]);
154
175
  return {
155
176
  animateToVirtualPage,
156
177
  cancelPagingInteraction,
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useMemo","useRef","Gesture","cancelAnimation","useSharedValue","withSpring","withTiming","scheduleOnRN","EDGE_RESISTANCE","PAGE_SPRING_CONFIG","PAGE_TRANSITION_CONFIG","applyHorizontalEdgeResistance","resolveHorizontalPagingTarget","resolveHorizontalSwipeDirection","useGestureViewerPaging","centerVirtualIndex","clearPendingWebSingleTap","commitVirtualIndexOnly","currentIndex","dataLength","enableLoop","horizontalSwipeDistanceThresholdRatio","horizontalSwipeEnabled","horizontalSwipeVelocityThreshold","initialPage","isPinching","isRotated","isTriggerOpening","isZoomed","pageStride","width","visualPage","pagingStartPage","pagingAnimationActive","pagingGestureActive","pageTransitionLocked","isPageTransitioningRef","setPageTransitioning","nextTransitioning","current","set","clearPagingFlags","cancelPagingInteraction","snapToVirtualPage","targetVirtualIndex","completeAnimatedVirtualPage","cancelAnimatedVirtualPage","animateToVirtualPage","finished","horizontalPagingGesture","canSwipe","settleToCenter","Pan","minDistance","averageTouches","activeCursor","activeOffsetX","failOffsetY","enabled","onStart","get","onUpdate","event","dragPageDelta","translationX","basePage","nextPage","onEnd","direction","velocityX","pagingTarget","kind","onFinalize","Math","abs"],"sourceRoot":"../../src","sources":["useGestureViewerPaging.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useMemo","useRef","Gesture","cancelAnimation","useSharedValue","withSpring","withTiming","scheduleOnRN","EDGE_RESISTANCE","PAGE_SPRING_CONFIG","PAGE_TRANSITION_CONFIG","applyHorizontalEdgeResistance","resolveHorizontalPagingTarget","resolveHorizontalSwipeDirection","useGestureViewerPaging","centerVirtualIndex","clearPendingWebSingleTap","commitVirtualIndexOnly","currentIndex","dataLength","enableLoop","horizontalSwipeDistanceThresholdRatio","horizontalSwipeEnabled","horizontalSwipeVelocityThreshold","initialPage","isPinching","isRotated","isTriggerOpening","isZoomed","pageStride","suppressNativeTap","width","visualPage","pagingStartPage","pagingAnimationActive","pagingGestureActive","pageTransitionLocked","isPageTransitioningRef","setPageTransitioning","nextTransitioning","current","set","clearPagingFlags","cancelPagingInteraction","snapToVirtualPage","targetVirtualIndex","completeAnimatedVirtualPage","cancelAnimatedVirtualPage","animateToVirtualPage","finished","horizontalPagingGesture","canSwipe","settleToCenter","releasePagingForPinch","get","Pan","minDistance","maxPointers","averageTouches","activeCursor","activeOffsetX","failOffsetY","enabled","onTouchesDown","event","stateManager","numberOfTouches","fail","onStart","onUpdate","dragPageDelta","translationX","basePage","nextPage","onEnd","direction","velocityX","pagingTarget","kind","onFinalize","Math","abs"],"sourceRoot":"../../src","sources":["useGestureViewerPaging.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"GestureViewer.d.ts","sourceRoot":"","sources":["../../../src/GestureViewer.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAgDlD,wBAAgB,aAAa,CAAC,KAAK,EAAE,EACnC,EAAc,EACd,IAAI,EACJ,UAAU,EACV,eAAe,EACf,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,kBAAkB,EACjC,cAAc,EACd,YAAgB,EAChB,WAAe,EACf,UAAc,EACd,UAAkB,EAClB,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,KAAK,CAAC,2CAqE3B"}
1
+ {"version":3,"file":"GestureViewer.d.ts","sourceRoot":"","sources":["../../../src/GestureViewer.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAgDlD,wBAAgB,aAAa,CAAC,KAAK,EAAE,EACnC,EAAc,EACd,IAAI,EACJ,UAAU,EACV,eAAe,EACf,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,kBAAkB,EACjC,cAAc,EACd,YAAgB,EAChB,WAAe,EACf,UAAc,EACd,UAAkB,EAClB,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,KAAK,CAAC,2CA2E3B"}
@@ -0,0 +1,10 @@
1
+ import { type ComposedGesture, type GestureType } from 'react-native-gesture-handler';
2
+ type GestureViewerGestures = {
3
+ dismissGesture: GestureType;
4
+ horizontalPagingGesture: GestureType;
5
+ zoomGesture: ComposedGesture;
6
+ zoomPinchGesture: GestureType;
7
+ };
8
+ export declare function composeGestureViewerGestures({ dismissGesture, horizontalPagingGesture, zoomGesture, zoomPinchGesture, }: GestureViewerGestures): ComposedGesture;
9
+ export {};
10
+ //# sourceMappingURL=gestureViewerGestures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gestureViewerGestures.d.ts","sourceRoot":"","sources":["../../../src/gestureViewerGestures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE/F,KAAK,qBAAqB,GAAG;IAC3B,cAAc,EAAE,WAAW,CAAC;IAC5B,uBAAuB,EAAE,WAAW,CAAC;IACrC,WAAW,EAAE,eAAe,CAAC;IAC7B,gBAAgB,EAAE,WAAW,CAAC;CAC/B,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,EAC3C,cAAc,EACd,uBAAuB,EACvB,WAAW,EACX,gBAAgB,GACjB,EAAE,qBAAqB,GAAG,eAAe,CAKzC"}
@@ -41,7 +41,8 @@ export declare const useGestureViewer: <ItemT>({ data, initialIndex, onDismiss,
41
41
  pageStride: number;
42
42
  renderWindowSlots: import("./renderWindow").RenderWindowSlot<ItemT>[];
43
43
  visualPage: import("react-native-reanimated").SharedValue<number>;
44
- zoomGesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/gestureComposition").ComposedGesture;
44
+ zoomGesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/gestureComposition").ExclusiveGesture;
45
+ zoomPinchGesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/pinchGesture").PinchGesture;
45
46
  };
46
47
  export {};
47
48
  //# sourceMappingURL=useGestureViewer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGestureViewer.d.ts","sourceRoot":"","sources":["../../../src/useGestureViewer.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAC;AAc/D,KAAK,qBAAqB,CAAC,KAAK,IAAI,IAAI,CACtC,kBAAkB,CAAC,KAAK,CAAC,EACzB,YAAY,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,eAAe,CACtE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,EAAE,qSAqBrC,qBAAqB,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyjC9B,CAAC"}
1
+ {"version":3,"file":"useGestureViewer.d.ts","sourceRoot":"","sources":["../../../src/useGestureViewer.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAC;AAgB/D,KAAK,qBAAqB,CAAC,KAAK,IAAI,IAAI,CACtC,kBAAkB,CAAC,KAAK,CAAC,EACzB,YAAY,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,eAAe,CACtE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,EAAE,qSAqBrC,qBAAqB,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+pC9B,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { type SharedValue } from 'react-native-reanimated';
1
2
  type UseGestureViewerPagingOptions = {
2
3
  centerVirtualIndex: number;
3
4
  clearPendingWebSingleTap: () => void;
@@ -14,19 +15,20 @@ type UseGestureViewerPagingOptions = {
14
15
  isTriggerOpening: boolean;
15
16
  isZoomed: boolean;
16
17
  pageStride: number;
18
+ suppressNativeTap: SharedValue<boolean>;
17
19
  width: number;
18
20
  };
19
21
  /**
20
22
  * Owns horizontal paging shared values, transition state, and paging commands.
21
23
  */
22
- export declare function useGestureViewerPaging({ centerVirtualIndex, clearPendingWebSingleTap, commitVirtualIndexOnly, currentIndex, dataLength, enableLoop, horizontalSwipeDistanceThresholdRatio, horizontalSwipeEnabled, horizontalSwipeVelocityThreshold, initialPage, isPinching, isRotated, isTriggerOpening, isZoomed, pageStride, width, }: UseGestureViewerPagingOptions): {
24
+ export declare function useGestureViewerPaging({ centerVirtualIndex, clearPendingWebSingleTap, commitVirtualIndexOnly, currentIndex, dataLength, enableLoop, horizontalSwipeDistanceThresholdRatio, horizontalSwipeEnabled, horizontalSwipeVelocityThreshold, initialPage, isPinching, isRotated, isTriggerOpening, isZoomed, pageStride, suppressNativeTap, width, }: UseGestureViewerPagingOptions): {
23
25
  animateToVirtualPage: (targetVirtualIndex: number) => void;
24
26
  cancelPagingInteraction: () => void;
25
27
  horizontalPagingGesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/panGesture").PanGesture;
26
28
  isPageTransitioningRef: import("react").RefObject<boolean>;
27
- pageTransitionLocked: import("react-native-reanimated").SharedValue<boolean>;
29
+ pageTransitionLocked: SharedValue<boolean>;
28
30
  snapToVirtualPage: (targetVirtualIndex: number) => void;
29
- visualPage: import("react-native-reanimated").SharedValue<number>;
31
+ visualPage: SharedValue<number>;
30
32
  };
31
33
  export {};
32
34
  //# sourceMappingURL=useGestureViewerPaging.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGestureViewerPaging.d.ts","sourceRoot":"","sources":["../../../src/useGestureViewerPaging.ts"],"names":[],"mappings":"AAgBA,KAAK,6BAA6B,GAAG;IACnC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wBAAwB,EAAE,MAAM,IAAI,CAAC;IACrC,sBAAsB,EAAE,CAAC,kBAAkB,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,qCAAqC,EAAE,MAAM,CAAC;IAC9C,sBAAsB,EAAE,OAAO,CAAC;IAChC,gCAAgC,EAAE,MAAM,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,EACtB,YAAY,EACZ,UAAU,EACV,UAAU,EACV,qCAAqC,EACrC,sBAAsB,EACtB,gCAAgC,EAChC,WAAW,EACX,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,QAAQ,EACR,UAAU,EACV,KAAK,GACN,EAAE,6BAA6B;+CA+DP,MAAM;;;;;4CA9BN,MAAM;;EA0N9B"}
1
+ {"version":3,"file":"useGestureViewerPaging.d.ts","sourceRoot":"","sources":["../../../src/useGestureViewerPaging.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,WAAW,EAIjB,MAAM,yBAAyB,CAAC;AAcjC,KAAK,6BAA6B,GAAG;IACnC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wBAAwB,EAAE,MAAM,IAAI,CAAC;IACrC,sBAAsB,EAAE,CAAC,kBAAkB,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,qCAAqC,EAAE,MAAM,CAAC;IAC9C,sBAAsB,EAAE,OAAO,CAAC;IAChC,gCAAgC,EAAE,MAAM,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,EACtB,YAAY,EACZ,UAAU,EACV,UAAU,EACV,qCAAqC,EACrC,sBAAsB,EACtB,gCAAgC,EAChC,WAAW,EACX,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,KAAK,GACN,EAAE,6BAA6B;+CA+DP,MAAM;;;;;4CA9BN,MAAM;;EAiP9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-gesture-image-viewer",
3
- "version": "3.0.0-beta.0",
3
+ "version": "3.0.0-beta.2",
4
4
  "description": "🖼️ React Native Image Viewer - Reanimated-powered image gestures with full control",
5
5
  "keywords": [
6
6
  "android",
@@ -81,7 +81,7 @@
81
81
  "devDependencies": {
82
82
  "@babel/core": "^7.29.7",
83
83
  "@changesets/changelog-github": "^0.7.0",
84
- "@changesets/cli": "^2.31.0",
84
+ "@changesets/cli": "^2.31.1",
85
85
  "@commitlint/config-conventional": "^21.0.2",
86
86
  "@evilmartians/lefthook": "^2.1.9",
87
87
  "@react-native/babel-preset": "0.85.3",
@@ -1,12 +1,13 @@
1
1
  import { useEffect, useMemo } from 'react';
2
2
  import { StyleSheet, useWindowDimensions, View, type ViewStyle } from 'react-native';
3
- import { Gesture, GestureDetector, GestureHandlerRootView } from 'react-native-gesture-handler';
3
+ import { GestureDetector, GestureHandlerRootView } from 'react-native-gesture-handler';
4
4
  import Animated, {
5
5
  type AnimatedStyle,
6
6
  type SharedValue,
7
7
  useAnimatedStyle,
8
8
  } from 'react-native-reanimated';
9
9
 
10
+ import { composeGestureViewerGestures } from './gestureViewerGestures';
10
11
  import { registry } from './GestureViewerRegistry';
11
12
  import { getWebContentProps } from './getWebContentProps';
12
13
  import type { RenderWindowSlot } from './renderWindow';
@@ -90,6 +91,7 @@ export function GestureViewer<ItemT>({
90
91
  renderWindowSlots,
91
92
  visualPage,
92
93
  zoomGesture,
94
+ zoomPinchGesture,
93
95
  } = useGestureViewer({
94
96
  id,
95
97
  data,
@@ -103,8 +105,13 @@ export function GestureViewer<ItemT>({
103
105
  });
104
106
 
105
107
  const gesture = useMemo(() => {
106
- return Gesture.Race(dismissGesture, horizontalPagingGesture, zoomGesture);
107
- }, [dismissGesture, horizontalPagingGesture, zoomGesture]);
108
+ return composeGestureViewerGestures({
109
+ dismissGesture,
110
+ horizontalPagingGesture,
111
+ zoomGesture,
112
+ zoomPinchGesture,
113
+ });
114
+ }, [dismissGesture, horizontalPagingGesture, zoomGesture, zoomPinchGesture]);
108
115
 
109
116
  useEffect(() => {
110
117
  registry.createManager(id);
@@ -164,6 +171,7 @@ const styles = StyleSheet.create({
164
171
  },
165
172
  slot: {
166
173
  left: 0,
174
+ overflow: 'hidden',
167
175
  position: 'absolute',
168
176
  top: 0,
169
177
  },
@@ -0,0 +1,20 @@
1
+ import { Gesture, type ComposedGesture, type GestureType } from 'react-native-gesture-handler';
2
+
3
+ type GestureViewerGestures = {
4
+ dismissGesture: GestureType;
5
+ horizontalPagingGesture: GestureType;
6
+ zoomGesture: ComposedGesture;
7
+ zoomPinchGesture: GestureType;
8
+ };
9
+
10
+ export function composeGestureViewerGestures({
11
+ dismissGesture,
12
+ horizontalPagingGesture,
13
+ zoomGesture,
14
+ zoomPinchGesture,
15
+ }: GestureViewerGestures): ComposedGesture {
16
+ return Gesture.Simultaneous(
17
+ zoomPinchGesture,
18
+ Gesture.Race(dismissGesture, horizontalPagingGesture, zoomGesture),
19
+ );
20
+ }
@@ -43,6 +43,8 @@ import { getDismissDistance, shouldDismissByDirection } from './utils/dismiss';
43
43
  import { applyTapZoomAtPoint } from './utils/tapZoom';
44
44
  import { calculateFocalPointTranslation, shouldAcceptFocalPoint } from './utils/zoom';
45
45
 
46
+ const NATIVE_TAP_MAX_DISTANCE = 10;
47
+
46
48
  const isValidTriggerRect = (rect: TriggerRect | null): rect is TriggerRect => {
47
49
  return !!rect && rect.width > 0 && rect.height > 0;
48
50
  };
@@ -144,6 +146,8 @@ export const useGestureViewer = <ItemT>({
144
146
  const startFocalX = useSharedValue(0);
145
147
  const startFocalY = useSharedValue(0);
146
148
  const hasActiveFocal = useSharedValue(false);
149
+ const nativeInteractionHadMultipleTouches = useSharedValue(false);
150
+ const suppressNativeTap = useSharedValue(false);
147
151
  const { clearPendingWebSingleTap, scheduleWebSingleTap } = useWebSingleTapTimer();
148
152
 
149
153
  const animationConfig = useMemo(
@@ -266,6 +270,7 @@ export const useGestureViewer = <ItemT>({
266
270
  isTriggerOpening,
267
271
  isZoomed,
268
272
  pageStride,
273
+ suppressNativeTap,
269
274
  width,
270
275
  });
271
276
 
@@ -736,26 +741,53 @@ export const useGestureViewer = <ItemT>({
736
741
  }, [animateDismissToRect, dismissWithoutTrigger, id, isPageTransitioningRef, onDismissStart]);
737
742
 
738
743
  const dismissGesture = useMemo(() => {
739
- const canDismiss = !isTriggerOpening && !isZoomed && dismissOptions.enabled;
744
+ const canDismiss = !isTriggerOpening && !isPinching && !isZoomed && dismissOptions.enabled;
745
+ const resetDismissTranslation = () => {
746
+ 'worklet';
747
+ cancelAnimation(translateY);
748
+ translateY.set(0);
749
+ };
740
750
 
741
751
  return Gesture.Pan()
742
752
  .minDistance(10)
753
+ .maxPointers(1)
743
754
  .averageTouches(true)
744
755
  .activeCursor('grabbing')
745
756
  .activeOffsetY([-10, 10])
746
757
  .failOffsetX([-10, 10])
747
758
  .withRef(dismissGestureRef)
748
759
  .enabled(canDismiss)
760
+ .onTouchesDown((event, stateManager) => {
761
+ if (event.numberOfTouches === 1) {
762
+ nativeInteractionHadMultipleTouches.set(false);
763
+ return;
764
+ }
765
+
766
+ if (event.numberOfTouches > 1) {
767
+ nativeInteractionHadMultipleTouches.set(true);
768
+ suppressNativeTap.set(true);
769
+ resetDismissTranslation();
770
+ stateManager.fail();
771
+ }
772
+ })
773
+ .onStart(() => {
774
+ suppressNativeTap.set(true);
775
+ })
749
776
  .onUpdate((event) => {
750
- if (pageTransitionLocked.get()) {
777
+ if (nativeInteractionHadMultipleTouches.get() || pageTransitionLocked.get()) {
751
778
  return;
752
779
  }
753
780
 
754
781
  translateY.set(event.translationY / dismissOptions.resistance);
755
782
  })
756
783
  .onEnd((event) => {
784
+ if (nativeInteractionHadMultipleTouches.get()) {
785
+ resetDismissTranslation();
786
+ return;
787
+ }
788
+
757
789
  if (pageTransitionLocked.get()) {
758
- translateY.set(withSpring(0, PAGE_SPRING_CONFIG));
790
+ resetDismissTranslation();
759
791
  return;
760
792
  }
761
793
 
@@ -772,8 +804,24 @@ export const useGestureViewer = <ItemT>({
772
804
  }
773
805
 
774
806
  translateY.set(withSpring(0, PAGE_SPRING_CONFIG));
807
+ })
808
+ .onFinalize((_event, success) => {
809
+ if ((!success || nativeInteractionHadMultipleTouches.get()) && scale.get() <= 1) {
810
+ resetDismissTranslation();
811
+ }
775
812
  });
776
- }, [translateY, dismissOptions, handleDismiss, isTriggerOpening, isZoomed, pageTransitionLocked]);
813
+ }, [
814
+ dismissOptions,
815
+ handleDismiss,
816
+ isPinching,
817
+ isTriggerOpening,
818
+ isZoomed,
819
+ nativeInteractionHadMultipleTouches,
820
+ pageTransitionLocked,
821
+ scale,
822
+ suppressNativeTap,
823
+ translateY,
824
+ ]);
777
825
 
778
826
  const getCurrentTapTarget = useCallback((): { index: number; item: ItemT } | null => {
779
827
  const index = pendingIndexRef.current;
@@ -819,14 +867,26 @@ export const useGestureViewer = <ItemT>({
819
867
  Gesture.Tap()
820
868
  .enabled(enableNativeTapGestures)
821
869
  .numberOfTaps(1)
870
+ .maxDistance(NATIVE_TAP_MAX_DISTANCE)
871
+ .onTouchesDown((event, stateManager) => {
872
+ if (event.numberOfTouches === 1) {
873
+ nativeInteractionHadMultipleTouches.set(false);
874
+ suppressNativeTap.set(false);
875
+ return;
876
+ }
877
+
878
+ nativeInteractionHadMultipleTouches.set(true);
879
+ suppressNativeTap.set(true);
880
+ stateManager.fail();
881
+ })
822
882
  .onEnd((event, success) => {
823
- if (!success || pageTransitionLocked.get()) {
883
+ if (!success || pageTransitionLocked.get() || suppressNativeTap.get()) {
824
884
  return;
825
885
  }
826
886
 
827
887
  scheduleOnRN(emitSingleTap, event.x, event.y);
828
888
  }),
829
- [emitSingleTap, pageTransitionLocked],
889
+ [emitSingleTap, nativeInteractionHadMultipleTouches, pageTransitionLocked, suppressNativeTap],
830
890
  );
831
891
 
832
892
  const doubleTapGesture = useMemo(
@@ -834,8 +894,18 @@ export const useGestureViewer = <ItemT>({
834
894
  Gesture.Tap()
835
895
  .enabled(enableDoubleTapZoom && enableNativeTapGestures)
836
896
  .numberOfTaps(2)
897
+ .maxDistance(NATIVE_TAP_MAX_DISTANCE)
898
+ .onTouchesDown((event, stateManager) => {
899
+ if (event.numberOfTouches === 1) {
900
+ return;
901
+ }
902
+
903
+ nativeInteractionHadMultipleTouches.set(true);
904
+ suppressNativeTap.set(true);
905
+ stateManager.fail();
906
+ })
837
907
  .onEnd((event) => {
838
- if (pageTransitionLocked.get()) {
908
+ if (pageTransitionLocked.get() || suppressNativeTap.get()) {
839
909
  return;
840
910
  }
841
911
 
@@ -854,8 +924,10 @@ export const useGestureViewer = <ItemT>({
854
924
  enableDoubleTapZoom,
855
925
  height,
856
926
  maxZoomScale,
927
+ nativeInteractionHadMultipleTouches,
857
928
  pageTransitionLocked,
858
929
  scale,
930
+ suppressNativeTap,
859
931
  translateX,
860
932
  translateY,
861
933
  width,
@@ -872,11 +944,9 @@ export const useGestureViewer = <ItemT>({
872
944
  Gesture.Pinch()
873
945
  .enabled(enablePinchZoom)
874
946
  .onTouchesDown((event) => {
875
- if (pageTransitionLocked.get()) {
876
- return;
877
- }
878
-
879
947
  if (event.numberOfTouches === 2) {
948
+ nativeInteractionHadMultipleTouches.set(true);
949
+ suppressNativeTap.set(true);
880
950
  scheduleOnRN(setIsPinching, true);
881
951
  }
882
952
  })
@@ -885,7 +955,19 @@ export const useGestureViewer = <ItemT>({
885
955
  return;
886
956
  }
887
957
 
888
- startScale.set(scale.get());
958
+ const currentScale = scale.get();
959
+
960
+ nativeInteractionHadMultipleTouches.set(true);
961
+ suppressNativeTap.set(true);
962
+ startScale.set(currentScale);
963
+
964
+ if (currentScale <= 1) {
965
+ cancelAnimation(translateX);
966
+ cancelAnimation(translateY);
967
+ translateX.set(0);
968
+ translateY.set(0);
969
+ }
970
+
889
971
  initialTranslateX.set(translateX.get());
890
972
  initialTranslateY.set(translateY.get());
891
973
  startFocalX.set(event.focalX);
@@ -1036,26 +1118,44 @@ export const useGestureViewer = <ItemT>({
1036
1118
  startFocalX,
1037
1119
  startFocalY,
1038
1120
  hasActiveFocal,
1121
+ nativeInteractionHadMultipleTouches,
1039
1122
  pageTransitionLocked,
1123
+ suppressNativeTap,
1040
1124
  ],
1041
1125
  );
1042
1126
 
1043
1127
  const zoomPanGesture = useMemo(
1044
1128
  () =>
1045
1129
  Gesture.Pan()
1046
- .enabled(enablePanWhenZoomed && isZoomed)
1130
+ .enabled(enablePanWhenZoomed && !isPinching && isZoomed)
1131
+ .maxPointers(1)
1047
1132
  .activeCursor('grabbing')
1048
1133
  .averageTouches(true)
1134
+ .onTouchesDown((event, stateManager) => {
1135
+ if (event.numberOfTouches === 1) {
1136
+ nativeInteractionHadMultipleTouches.set(false);
1137
+ return;
1138
+ }
1139
+
1140
+ if (event.numberOfTouches > 1) {
1141
+ nativeInteractionHadMultipleTouches.set(true);
1142
+ suppressNativeTap.set(true);
1143
+ stateManager.fail();
1144
+ }
1145
+ })
1049
1146
  .onBegin(() => {
1050
- if (pageTransitionLocked.get()) {
1147
+ if (nativeInteractionHadMultipleTouches.get() || pageTransitionLocked.get()) {
1051
1148
  return;
1052
1149
  }
1053
1150
 
1054
1151
  initialTranslateX.set(translateX.get());
1055
1152
  initialTranslateY.set(translateY.get());
1056
1153
  })
1154
+ .onStart(() => {
1155
+ suppressNativeTap.set(true);
1156
+ })
1057
1157
  .onUpdate((event) => {
1058
- if (pageTransitionLocked.get()) {
1158
+ if (nativeInteractionHadMultipleTouches.get() || pageTransitionLocked.get()) {
1059
1159
  return;
1060
1160
  }
1061
1161
 
@@ -1080,18 +1180,21 @@ export const useGestureViewer = <ItemT>({
1080
1180
  translateX,
1081
1181
  translateY,
1082
1182
  enablePanWhenZoomed,
1183
+ isPinching,
1083
1184
  isZoomed,
1084
1185
  scale,
1085
1186
  initialTranslateX,
1086
1187
  initialTranslateY,
1087
1188
  constrainTranslation,
1189
+ nativeInteractionHadMultipleTouches,
1088
1190
  pageTransitionLocked,
1191
+ suppressNativeTap,
1089
1192
  ],
1090
1193
  );
1091
1194
 
1092
1195
  const zoomGesture = useMemo(
1093
- () => Gesture.Race(zoomPinchGesture, Gesture.Exclusive(zoomPanGesture, tapGesture)),
1094
- [zoomPinchGesture, zoomPanGesture, tapGesture],
1196
+ () => Gesture.Exclusive(zoomPanGesture, tapGesture),
1197
+ [zoomPanGesture, tapGesture],
1095
1198
  );
1096
1199
 
1097
1200
  const onWebClick = useWebClickHandler({
@@ -1153,5 +1256,6 @@ export const useGestureViewer = <ItemT>({
1153
1256
  renderWindowSlots,
1154
1257
  visualPage,
1155
1258
  zoomGesture,
1259
+ zoomPinchGesture,
1156
1260
  };
1157
1261
  };
@@ -1,6 +1,12 @@
1
1
  import { useCallback, useMemo, useRef } from 'react';
2
2
  import { Gesture } from 'react-native-gesture-handler';
3
- import { cancelAnimation, useSharedValue, withSpring, withTiming } from 'react-native-reanimated';
3
+ import {
4
+ cancelAnimation,
5
+ type SharedValue,
6
+ useSharedValue,
7
+ withSpring,
8
+ withTiming,
9
+ } from 'react-native-reanimated';
4
10
  import { scheduleOnRN } from 'react-native-worklets';
5
11
 
6
12
  import {
@@ -30,6 +36,7 @@ type UseGestureViewerPagingOptions = {
30
36
  isTriggerOpening: boolean;
31
37
  isZoomed: boolean;
32
38
  pageStride: number;
39
+ suppressNativeTap: SharedValue<boolean>;
33
40
  width: number;
34
41
  };
35
42
 
@@ -52,6 +59,7 @@ export function useGestureViewerPaging({
52
59
  isTriggerOpening,
53
60
  isZoomed,
54
61
  pageStride,
62
+ suppressNativeTap,
55
63
  width,
56
64
  }: UseGestureViewerPagingOptions) {
57
65
  const visualPage = useSharedValue(initialPage);
@@ -166,14 +174,35 @@ export function useGestureViewerPaging({
166
174
  }),
167
175
  );
168
176
  };
177
+ const releasePagingForPinch = () => {
178
+ 'worklet';
179
+ if (!pagingGestureActive.get()) {
180
+ return;
181
+ }
182
+
183
+ cancelAnimation(visualPage);
184
+ pagingAnimationActive.set(false);
185
+ pagingGestureActive.set(false);
186
+ pageTransitionLocked.set(false);
187
+ visualPage.set(centerVirtualIndex);
188
+ scheduleOnRN(setPageTransitioning, false);
189
+ };
169
190
 
170
191
  return Gesture.Pan()
171
192
  .minDistance(10)
193
+ .maxPointers(1)
172
194
  .averageTouches(true)
173
195
  .activeCursor('grabbing')
174
196
  .activeOffsetX([-10, 10])
175
197
  .failOffsetY([-10, 10])
176
198
  .enabled(canSwipe)
199
+ .onTouchesDown((event, stateManager) => {
200
+ if (event.numberOfTouches > 1) {
201
+ suppressNativeTap.set(true);
202
+ releasePagingForPinch();
203
+ stateManager.fail();
204
+ }
205
+ })
177
206
  .onStart(() => {
178
207
  if (pageTransitionLocked.get()) {
179
208
  return;
@@ -184,6 +213,7 @@ export function useGestureViewerPaging({
184
213
  pagingAnimationActive.set(false);
185
214
  pagingGestureActive.set(true);
186
215
  pagingStartPage.set(visualPage.get());
216
+ suppressNativeTap.set(true);
187
217
  scheduleOnRN(setPageTransitioning, true);
188
218
  })
189
219
  .onUpdate((event) => {
@@ -291,6 +321,7 @@ export function useGestureViewerPaging({
291
321
  pagingGestureActive,
292
322
  pagingStartPage,
293
323
  setPageTransitioning,
324
+ suppressNativeTap,
294
325
  visualPage,
295
326
  width,
296
327
  ]);