react-native-gesture-image-viewer 2.3.1 → 2.3.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.
- package/lib/module/useGestureViewer.js +39 -14
- package/lib/module/useGestureViewer.js.map +1 -1
- package/lib/module/utils/zoom.js +42 -0
- package/lib/module/utils/zoom.js.map +1 -0
- package/lib/typescript/src/useGestureViewer.d.ts.map +1 -1
- package/lib/typescript/src/utils/zoom.d.ts +24 -0
- package/lib/typescript/src/utils/zoom.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/useGestureViewer.ts +42 -12
- package/src/utils/zoom.ts +60 -0
|
@@ -10,6 +10,7 @@ import { useGestureViewerPaging } from './useGestureViewerPaging';
|
|
|
10
10
|
import { createBoundsConstraint, createScrollAction } from "./utils/index.js";
|
|
11
11
|
import { getDismissDistance, shouldDismissByDirection } from "./utils/dismiss.js";
|
|
12
12
|
import { applyTapZoomAtPoint } from "./utils/tapZoom.js";
|
|
13
|
+
import { calculateFocalPointTranslation, shouldAcceptFocalPoint } from "./utils/zoom.js";
|
|
13
14
|
export const useGestureViewer = ({
|
|
14
15
|
data,
|
|
15
16
|
initialIndex = 0,
|
|
@@ -69,6 +70,9 @@ export const useGestureViewer = ({
|
|
|
69
70
|
const triggerOpacity = useSharedValue(1);
|
|
70
71
|
const lastFocalX = useSharedValue(0);
|
|
71
72
|
const lastFocalY = useSharedValue(0);
|
|
73
|
+
const startFocalX = useSharedValue(0);
|
|
74
|
+
const startFocalY = useSharedValue(0);
|
|
75
|
+
const hasActiveFocal = useSharedValue(false);
|
|
72
76
|
const dataLength = data?.length || 0;
|
|
73
77
|
const animationConfig = useMemo(() => ({
|
|
74
78
|
duration: triggerAnimation?.duration ?? 300,
|
|
@@ -333,12 +337,15 @@ export const useGestureViewer = ({
|
|
|
333
337
|
if (event.numberOfTouches === 2) {
|
|
334
338
|
scheduleOnRN(setIsPinching, true);
|
|
335
339
|
}
|
|
336
|
-
}).
|
|
340
|
+
}).onStart(event => {
|
|
337
341
|
startScale.set(scale.get());
|
|
338
342
|
initialTranslateX.set(translateX.get());
|
|
339
343
|
initialTranslateY.set(translateY.get());
|
|
344
|
+
startFocalX.set(event.focalX);
|
|
345
|
+
startFocalY.set(event.focalY);
|
|
340
346
|
lastFocalX.set(event.focalX);
|
|
341
347
|
lastFocalY.set(event.focalY);
|
|
348
|
+
hasActiveFocal.set(false);
|
|
342
349
|
}).onUpdate(event => {
|
|
343
350
|
const initialScale = startScale.get();
|
|
344
351
|
const newScale = initialScale * event.scale;
|
|
@@ -348,24 +355,40 @@ export const useGestureViewer = ({
|
|
|
348
355
|
translateY.set(withTiming(0));
|
|
349
356
|
return;
|
|
350
357
|
}
|
|
351
|
-
const currentLastFocalX = lastFocalX.get();
|
|
352
|
-
const currentLastFocalY = lastFocalY.get();
|
|
353
|
-
const focalDeltaX = Math.abs(event.focalX - currentLastFocalX);
|
|
354
|
-
const focalDeltaY = Math.abs(event.focalY - currentLastFocalY);
|
|
355
358
|
const threshold = 50;
|
|
356
|
-
if (
|
|
359
|
+
if (shouldAcceptFocalPoint({
|
|
360
|
+
focalX: event.focalX,
|
|
361
|
+
focalY: event.focalY,
|
|
362
|
+
hasActiveFocal: hasActiveFocal.get(),
|
|
363
|
+
lastFocalX: lastFocalX.get(),
|
|
364
|
+
lastFocalY: lastFocalY.get(),
|
|
365
|
+
threshold
|
|
366
|
+
})) {
|
|
367
|
+
if (!hasActiveFocal.get()) {
|
|
368
|
+
startFocalX.set(event.focalX);
|
|
369
|
+
startFocalY.set(event.focalY);
|
|
370
|
+
}
|
|
357
371
|
lastFocalX.set(event.focalX);
|
|
358
372
|
lastFocalY.set(event.focalY);
|
|
373
|
+
hasActiveFocal.set(true);
|
|
359
374
|
}
|
|
360
375
|
const nextLastFocalX = lastFocalX.get();
|
|
361
376
|
const nextLastFocalY = lastFocalY.get();
|
|
362
|
-
const
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
377
|
+
const {
|
|
378
|
+
translateX: newTranslateX,
|
|
379
|
+
translateY: newTranslateY
|
|
380
|
+
} = calculateFocalPointTranslation({
|
|
381
|
+
currentFocalX: nextLastFocalX,
|
|
382
|
+
currentFocalY: nextLastFocalY,
|
|
383
|
+
height,
|
|
384
|
+
initialScale,
|
|
385
|
+
initialTranslateX: initialTranslateX.get(),
|
|
386
|
+
initialTranslateY: initialTranslateY.get(),
|
|
387
|
+
nextScale: newScale,
|
|
388
|
+
startFocalX: startFocalX.get(),
|
|
389
|
+
startFocalY: startFocalY.get(),
|
|
390
|
+
width
|
|
391
|
+
});
|
|
369
392
|
const {
|
|
370
393
|
translateX: constrainedTranslateX,
|
|
371
394
|
translateY: constrainedTranslateY
|
|
@@ -404,6 +427,7 @@ export const useGestureViewer = ({
|
|
|
404
427
|
translateY.set(withTiming(0));
|
|
405
428
|
initialTranslateX.set(withTiming(0));
|
|
406
429
|
initialTranslateY.set(withTiming(0));
|
|
430
|
+
hasActiveFocal.set(false);
|
|
407
431
|
return;
|
|
408
432
|
}
|
|
409
433
|
const {
|
|
@@ -419,8 +443,9 @@ export const useGestureViewer = ({
|
|
|
419
443
|
}).onTouchesUp(() => {
|
|
420
444
|
scheduleOnRN(setIsPinching, false);
|
|
421
445
|
}).onFinalize(() => {
|
|
446
|
+
hasActiveFocal.set(false);
|
|
422
447
|
scheduleOnRN(setIsPinching, false);
|
|
423
|
-
}), [scale, enablePinchZoom, maxZoomScale, translateX, translateY, startScale, initialTranslateX, initialTranslateY, width, height, constrainTranslation, lastFocalX, lastFocalY]);
|
|
448
|
+
}), [scale, enablePinchZoom, maxZoomScale, translateX, translateY, startScale, initialTranslateX, initialTranslateY, width, height, constrainTranslation, lastFocalX, lastFocalY, startFocalX, startFocalY, hasActiveFocal]);
|
|
424
449
|
const zoomPanGesture = useMemo(() => Gesture.Pan().enabled(enablePanWhenZoomed && isZoomed).activeCursor('grabbing').averageTouches(true).onBegin(() => {
|
|
425
450
|
initialTranslateX.set(translateX.get());
|
|
426
451
|
initialTranslateY.set(translateY.get());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","InteractionManager","Platform","useWindowDimensions","Gesture","Easing","interpolate","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","scheduleOnRN","registry","useGestureViewerPaging","createBoundsConstraint","createScrollAction","getDismissDistance","shouldDismissByDirection","applyTapZoomAtPoint","useGestureViewer","data","initialIndex","onDismiss","onSingleTap","width","customWidth","dismiss","enableDoubleTapZoom","enablePinchZoom","enableHorizontalSwipe","enablePanWhenZoomed","enableLoop","maxZoomScale","itemSpacing","height","customHeight","id","onDismissStart","triggerAnimation","autoPlay","autoPlayInterval","screenWidth","screenHeight","dismissGestureRef","undefined","isZoomed","setIsZoomed","isRotated","setIsRotated","isPinching","setIsPinching","shouldStartTriggerAnimation","setShouldStartTriggerAnimation","manager","setManager","currentIndex","setCurrentIndex","activeTriggerNode","setActiveTriggerNode","listRef","triggerRectRef","pendingIndexRef","onAnimationCompleteRef","onAnimationComplete","onSingleTapRef","dataRef","managerRef","isValidTriggerRect","rect","initialTranslateY","initialTranslateX","startScale","translateY","translateX","scale","backdropOpacity","rotation","triggerScale","triggerTranslateX","triggerTranslateY","triggerOpacity","lastFocalX","lastFocalY","dataLength","length","animationConfig","duration","easing","bezier","reduceMotion","dismissOptions","direction","enabled","fadeBackdrop","resistance","threshold","adjustedInitialIndex","constrainTranslation","scrollTo","index","animated","scrollAction","current","resetTransformState","set","syncPendingIndex","nextIndex","syncCurrentIndex","managerCurrentIndex","getState","notifyStateChange","emitZoomChange","currentScale","prevScale","emitRotationChange","currentRotation","prevRotation","get","previousScale","previousRotation","unsubscribe","unsubscribeFromRegistry","subscribeToManager","managerInstance","subscribe","state","subscribeToActiveTrigger","setDataLength","setEnableHorizontalSwipe","setWidth","setHeight","setZoomSharedValues","setResetTransformCallback","setRotation","setEnableLoop","setListRef","runAfterInteractions","cancel","startX","x","startY","y","initialScaleFromTrigger","Math","min","finished","measure","_x","_y","measuredWidth","measuredHeight","pageX","pageY","nextTriggerRect","clearActiveTriggerNode","animateDismissToRect","endX","endY","endScale","dismissWithoutTrigger","handleDismiss","dismissTargetIndex","indexedTriggerNode","getIndexedTriggerNode","currentTriggerRect","dismissGesture","canDismiss","Pan","minDistance","averageTouches","activeCursor","activeOffsetY","failOffsetX","withRef","onUpdate","event","translationY","onEnd","damping","energyThreshold","mass","overshootClamping","stiffness","zoomPinchGesture","Pinch","onTouchesDown","numberOfTouches","onBegin","focalX","focalY","initialScale","newScale","currentLastFocalX","currentLastFocalY","focalDeltaX","abs","focalDeltaY","nextLastFocalX","nextLastFocalY","deltaScale","centerX","centerY","newTranslateX","newTranslateY","constrainedTranslateX","constrainedTranslateY","onTouchesUp","onFinalize","zoomPanGesture","translationX","emitSingleTap","currentData","emitTap","kind","item","singleTapGesture","Tap","OS","numberOfTaps","success","doubleTapGesture","tapGesture","Exclusive","zoomGesture","Race","animatedStyle","opacity","transform","rotate","backdropStyle","baseOpacity","dismissDistance","dismissOpacity","nativeScrollGesture","Native","requireExternalGestureToFail","onMomentumScrollEnd","onScroll","onScrollBeginDrag","onWebClick"],"sourceRoot":"../../src","sources":["useGestureViewer.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","InteractionManager","Platform","useWindowDimensions","Gesture","Easing","interpolate","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","scheduleOnRN","registry","useGestureViewerPaging","createBoundsConstraint","createScrollAction","getDismissDistance","shouldDismissByDirection","applyTapZoomAtPoint","calculateFocalPointTranslation","shouldAcceptFocalPoint","useGestureViewer","data","initialIndex","onDismiss","onSingleTap","width","customWidth","dismiss","enableDoubleTapZoom","enablePinchZoom","enableHorizontalSwipe","enablePanWhenZoomed","enableLoop","maxZoomScale","itemSpacing","height","customHeight","id","onDismissStart","triggerAnimation","autoPlay","autoPlayInterval","screenWidth","screenHeight","dismissGestureRef","undefined","isZoomed","setIsZoomed","isRotated","setIsRotated","isPinching","setIsPinching","shouldStartTriggerAnimation","setShouldStartTriggerAnimation","manager","setManager","currentIndex","setCurrentIndex","activeTriggerNode","setActiveTriggerNode","listRef","triggerRectRef","pendingIndexRef","onAnimationCompleteRef","onAnimationComplete","onSingleTapRef","dataRef","managerRef","isValidTriggerRect","rect","initialTranslateY","initialTranslateX","startScale","translateY","translateX","scale","backdropOpacity","rotation","triggerScale","triggerTranslateX","triggerTranslateY","triggerOpacity","lastFocalX","lastFocalY","startFocalX","startFocalY","hasActiveFocal","dataLength","length","animationConfig","duration","easing","bezier","reduceMotion","dismissOptions","direction","enabled","fadeBackdrop","resistance","threshold","adjustedInitialIndex","constrainTranslation","scrollTo","index","animated","scrollAction","current","resetTransformState","set","syncPendingIndex","nextIndex","syncCurrentIndex","managerCurrentIndex","getState","notifyStateChange","emitZoomChange","currentScale","prevScale","emitRotationChange","currentRotation","prevRotation","get","previousScale","previousRotation","unsubscribe","unsubscribeFromRegistry","subscribeToManager","managerInstance","subscribe","state","subscribeToActiveTrigger","setDataLength","setEnableHorizontalSwipe","setWidth","setHeight","setZoomSharedValues","setResetTransformCallback","setRotation","setEnableLoop","setListRef","runAfterInteractions","cancel","startX","x","startY","y","initialScaleFromTrigger","Math","min","finished","measure","_x","_y","measuredWidth","measuredHeight","pageX","pageY","nextTriggerRect","clearActiveTriggerNode","animateDismissToRect","endX","endY","endScale","dismissWithoutTrigger","handleDismiss","dismissTargetIndex","indexedTriggerNode","getIndexedTriggerNode","currentTriggerRect","dismissGesture","canDismiss","Pan","minDistance","averageTouches","activeCursor","activeOffsetY","failOffsetX","withRef","onUpdate","event","translationY","onEnd","damping","energyThreshold","mass","overshootClamping","stiffness","zoomPinchGesture","Pinch","onTouchesDown","numberOfTouches","onStart","focalX","focalY","initialScale","newScale","nextLastFocalX","nextLastFocalY","newTranslateX","newTranslateY","currentFocalX","currentFocalY","nextScale","constrainedTranslateX","constrainedTranslateY","onTouchesUp","onFinalize","zoomPanGesture","onBegin","translationX","emitSingleTap","currentData","emitTap","kind","item","singleTapGesture","Tap","OS","numberOfTaps","success","doubleTapGesture","tapGesture","Exclusive","zoomGesture","Race","animatedStyle","opacity","transform","rotate","backdropStyle","baseOpacity","dismissDistance","dismissOpacity","nativeScrollGesture","Native","requireExternalGestureToFail","onMomentumScrollEnd","onScroll","onScrollBeginDrag","onWebClick"],"sourceRoot":"../../src","sources":["useGestureViewer.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export const calculateFocalPointTranslation = ({
|
|
4
|
+
currentFocalX,
|
|
5
|
+
currentFocalY,
|
|
6
|
+
height,
|
|
7
|
+
initialScale,
|
|
8
|
+
initialTranslateX,
|
|
9
|
+
initialTranslateY,
|
|
10
|
+
nextScale,
|
|
11
|
+
startFocalX,
|
|
12
|
+
startFocalY,
|
|
13
|
+
width
|
|
14
|
+
}) => {
|
|
15
|
+
'worklet';
|
|
16
|
+
|
|
17
|
+
const scaleRatio = nextScale / initialScale;
|
|
18
|
+
const currentCenterX = currentFocalX - width / 2;
|
|
19
|
+
const currentCenterY = currentFocalY - height / 2;
|
|
20
|
+
const startCenterX = startFocalX - width / 2;
|
|
21
|
+
const startCenterY = startFocalY - height / 2;
|
|
22
|
+
return {
|
|
23
|
+
translateX: initialTranslateX * scaleRatio + currentCenterX - startCenterX * scaleRatio,
|
|
24
|
+
translateY: initialTranslateY * scaleRatio + currentCenterY - startCenterY * scaleRatio
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export const shouldAcceptFocalPoint = ({
|
|
28
|
+
focalX,
|
|
29
|
+
focalY,
|
|
30
|
+
hasActiveFocal,
|
|
31
|
+
lastFocalX,
|
|
32
|
+
lastFocalY,
|
|
33
|
+
threshold
|
|
34
|
+
}) => {
|
|
35
|
+
'worklet';
|
|
36
|
+
|
|
37
|
+
if (!hasActiveFocal) {
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
return Math.abs(focalX - lastFocalX) < threshold && Math.abs(focalY - lastFocalY) < threshold;
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=zoom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["calculateFocalPointTranslation","currentFocalX","currentFocalY","height","initialScale","initialTranslateX","initialTranslateY","nextScale","startFocalX","startFocalY","width","scaleRatio","currentCenterX","currentCenterY","startCenterX","startCenterY","translateX","translateY","shouldAcceptFocalPoint","focalX","focalY","hasActiveFocal","lastFocalX","lastFocalY","threshold","Math","abs"],"sourceRoot":"../../../src","sources":["utils/zoom.ts"],"mappings":";;AAAA,OAAO,MAAMA,8BAA8B,GAAGA,CAAC;EAC7CC,aAAa;EACbC,aAAa;EACbC,MAAM;EACNC,YAAY;EACZC,iBAAiB;EACjBC,iBAAiB;EACjBC,SAAS;EACTC,WAAW;EACXC,WAAW;EACXC;AAYF,CAAC,KAAK;EACJ,SAAS;;EAET,MAAMC,UAAU,GAAGJ,SAAS,GAAGH,YAAY;EAC3C,MAAMQ,cAAc,GAAGX,aAAa,GAAGS,KAAK,GAAG,CAAC;EAChD,MAAMG,cAAc,GAAGX,aAAa,GAAGC,MAAM,GAAG,CAAC;EACjD,MAAMW,YAAY,GAAGN,WAAW,GAAGE,KAAK,GAAG,CAAC;EAC5C,MAAMK,YAAY,GAAGN,WAAW,GAAGN,MAAM,GAAG,CAAC;EAE7C,OAAO;IACLa,UAAU,EAAEX,iBAAiB,GAAGM,UAAU,GAAGC,cAAc,GAAGE,YAAY,GAAGH,UAAU;IACvFM,UAAU,EAAEX,iBAAiB,GAAGK,UAAU,GAAGE,cAAc,GAAGE,YAAY,GAAGJ;EAC/E,CAAC;AACH,CAAC;AAED,OAAO,MAAMO,sBAAsB,GAAGA,CAAC;EACrCC,MAAM;EACNC,MAAM;EACNC,cAAc;EACdC,UAAU;EACVC,UAAU;EACVC;AAQF,CAAC,KAAK;EACJ,SAAS;;EAET,IAAI,CAACH,cAAc,EAAE;IACnB,OAAO,IAAI;EACb;EAEA,OAAOI,IAAI,CAACC,GAAG,CAACP,MAAM,GAAGG,UAAU,CAAC,GAAGE,SAAS,IAAIC,IAAI,CAACC,GAAG,CAACN,MAAM,GAAGG,UAAU,CAAC,GAAGC,SAAS;AAC/F,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGestureViewer.d.ts","sourceRoot":"","sources":["../../../src/useGestureViewer.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"useGestureViewer.d.ts","sourceRoot":"","sources":["../../../src/useGestureViewer.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAC;AAO/D,KAAK,qBAAqB,CAAC,KAAK,EAAE,EAAE,IAAI,IAAI,CAC1C,kBAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,EAC3B,YAAY,GACZ,iBAAiB,GACjB,eAAe,GACf,WAAW,GACX,gBAAgB,GAChB,eAAe,GACf,gBAAgB,CACnB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,EAAE,EAAE,EAAE,+RAoBzC,qBAAqB,CAAC,KAAK,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsyBlC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare const calculateFocalPointTranslation: ({ currentFocalX, currentFocalY, height, initialScale, initialTranslateX, initialTranslateY, nextScale, startFocalX, startFocalY, width, }: {
|
|
2
|
+
currentFocalX: number;
|
|
3
|
+
currentFocalY: number;
|
|
4
|
+
height: number;
|
|
5
|
+
initialScale: number;
|
|
6
|
+
initialTranslateX: number;
|
|
7
|
+
initialTranslateY: number;
|
|
8
|
+
nextScale: number;
|
|
9
|
+
startFocalX: number;
|
|
10
|
+
startFocalY: number;
|
|
11
|
+
width: number;
|
|
12
|
+
}) => {
|
|
13
|
+
translateX: number;
|
|
14
|
+
translateY: number;
|
|
15
|
+
};
|
|
16
|
+
export declare const shouldAcceptFocalPoint: ({ focalX, focalY, hasActiveFocal, lastFocalX, lastFocalY, threshold, }: {
|
|
17
|
+
focalX: number;
|
|
18
|
+
focalY: number;
|
|
19
|
+
hasActiveFocal: boolean;
|
|
20
|
+
lastFocalX: number;
|
|
21
|
+
lastFocalY: number;
|
|
22
|
+
threshold: number;
|
|
23
|
+
}) => boolean;
|
|
24
|
+
//# sourceMappingURL=zoom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zoom.d.ts","sourceRoot":"","sources":["../../../../src/utils/zoom.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B,GAAI,2IAW5C;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;;;CAaA,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,wEAOpC;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,YAQA,CAAC"}
|
package/package.json
CHANGED
package/src/useGestureViewer.ts
CHANGED
|
@@ -19,6 +19,7 @@ import { useGestureViewerPaging } from './useGestureViewerPaging';
|
|
|
19
19
|
import { createBoundsConstraint, createScrollAction } from './utils';
|
|
20
20
|
import { getDismissDistance, shouldDismissByDirection } from './utils/dismiss';
|
|
21
21
|
import { applyTapZoomAtPoint } from './utils/tapZoom';
|
|
22
|
+
import { calculateFocalPointTranslation, shouldAcceptFocalPoint } from './utils/zoom';
|
|
22
23
|
|
|
23
24
|
type UseGestureViewerProps<ItemT, LC> = Omit<
|
|
24
25
|
GestureViewerProps<ItemT, LC>,
|
|
@@ -95,6 +96,9 @@ export const useGestureViewer = <ItemT, LC>({
|
|
|
95
96
|
|
|
96
97
|
const lastFocalX = useSharedValue(0);
|
|
97
98
|
const lastFocalY = useSharedValue(0);
|
|
99
|
+
const startFocalX = useSharedValue(0);
|
|
100
|
+
const startFocalY = useSharedValue(0);
|
|
101
|
+
const hasActiveFocal = useSharedValue(false);
|
|
98
102
|
|
|
99
103
|
const dataLength = data?.length || 0;
|
|
100
104
|
|
|
@@ -528,12 +532,15 @@ export const useGestureViewer = <ItemT, LC>({
|
|
|
528
532
|
scheduleOnRN(setIsPinching, true);
|
|
529
533
|
}
|
|
530
534
|
})
|
|
531
|
-
.
|
|
535
|
+
.onStart((event) => {
|
|
532
536
|
startScale.set(scale.get());
|
|
533
537
|
initialTranslateX.set(translateX.get());
|
|
534
538
|
initialTranslateY.set(translateY.get());
|
|
539
|
+
startFocalX.set(event.focalX);
|
|
540
|
+
startFocalY.set(event.focalY);
|
|
535
541
|
lastFocalX.set(event.focalX);
|
|
536
542
|
lastFocalY.set(event.focalY);
|
|
543
|
+
hasActiveFocal.set(false);
|
|
537
544
|
})
|
|
538
545
|
.onUpdate((event) => {
|
|
539
546
|
const initialScale = startScale.get();
|
|
@@ -547,26 +554,44 @@ export const useGestureViewer = <ItemT, LC>({
|
|
|
547
554
|
return;
|
|
548
555
|
}
|
|
549
556
|
|
|
550
|
-
const currentLastFocalX = lastFocalX.get();
|
|
551
|
-
const currentLastFocalY = lastFocalY.get();
|
|
552
|
-
const focalDeltaX = Math.abs(event.focalX - currentLastFocalX);
|
|
553
|
-
const focalDeltaY = Math.abs(event.focalY - currentLastFocalY);
|
|
554
557
|
const threshold = 50;
|
|
555
558
|
|
|
556
|
-
if (
|
|
559
|
+
if (
|
|
560
|
+
shouldAcceptFocalPoint({
|
|
561
|
+
focalX: event.focalX,
|
|
562
|
+
focalY: event.focalY,
|
|
563
|
+
hasActiveFocal: hasActiveFocal.get(),
|
|
564
|
+
lastFocalX: lastFocalX.get(),
|
|
565
|
+
lastFocalY: lastFocalY.get(),
|
|
566
|
+
threshold,
|
|
567
|
+
})
|
|
568
|
+
) {
|
|
569
|
+
if (!hasActiveFocal.get()) {
|
|
570
|
+
startFocalX.set(event.focalX);
|
|
571
|
+
startFocalY.set(event.focalY);
|
|
572
|
+
}
|
|
573
|
+
|
|
557
574
|
lastFocalX.set(event.focalX);
|
|
558
575
|
lastFocalY.set(event.focalY);
|
|
576
|
+
hasActiveFocal.set(true);
|
|
559
577
|
}
|
|
560
578
|
|
|
561
579
|
const nextLastFocalX = lastFocalX.get();
|
|
562
580
|
const nextLastFocalY = lastFocalY.get();
|
|
563
|
-
const deltaScale = newScale - initialScale;
|
|
564
|
-
const centerX = nextLastFocalX - width / 2;
|
|
565
|
-
const centerY = nextLastFocalY - height / 2;
|
|
566
581
|
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
582
|
+
const { translateX: newTranslateX, translateY: newTranslateY } =
|
|
583
|
+
calculateFocalPointTranslation({
|
|
584
|
+
currentFocalX: nextLastFocalX,
|
|
585
|
+
currentFocalY: nextLastFocalY,
|
|
586
|
+
height,
|
|
587
|
+
initialScale,
|
|
588
|
+
initialTranslateX: initialTranslateX.get(),
|
|
589
|
+
initialTranslateY: initialTranslateY.get(),
|
|
590
|
+
nextScale: newScale,
|
|
591
|
+
startFocalX: startFocalX.get(),
|
|
592
|
+
startFocalY: startFocalY.get(),
|
|
593
|
+
width,
|
|
594
|
+
});
|
|
570
595
|
|
|
571
596
|
const { translateX: constrainedTranslateX, translateY: constrainedTranslateY } =
|
|
572
597
|
constrainTranslation({
|
|
@@ -613,6 +638,7 @@ export const useGestureViewer = <ItemT, LC>({
|
|
|
613
638
|
translateY.set(withTiming(0));
|
|
614
639
|
initialTranslateX.set(withTiming(0));
|
|
615
640
|
initialTranslateY.set(withTiming(0));
|
|
641
|
+
hasActiveFocal.set(false);
|
|
616
642
|
return;
|
|
617
643
|
}
|
|
618
644
|
|
|
@@ -630,6 +656,7 @@ export const useGestureViewer = <ItemT, LC>({
|
|
|
630
656
|
scheduleOnRN(setIsPinching, false);
|
|
631
657
|
})
|
|
632
658
|
.onFinalize(() => {
|
|
659
|
+
hasActiveFocal.set(false);
|
|
633
660
|
scheduleOnRN(setIsPinching, false);
|
|
634
661
|
}),
|
|
635
662
|
[
|
|
@@ -646,6 +673,9 @@ export const useGestureViewer = <ItemT, LC>({
|
|
|
646
673
|
constrainTranslation,
|
|
647
674
|
lastFocalX,
|
|
648
675
|
lastFocalY,
|
|
676
|
+
startFocalX,
|
|
677
|
+
startFocalY,
|
|
678
|
+
hasActiveFocal,
|
|
649
679
|
],
|
|
650
680
|
);
|
|
651
681
|
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
export const calculateFocalPointTranslation = ({
|
|
2
|
+
currentFocalX,
|
|
3
|
+
currentFocalY,
|
|
4
|
+
height,
|
|
5
|
+
initialScale,
|
|
6
|
+
initialTranslateX,
|
|
7
|
+
initialTranslateY,
|
|
8
|
+
nextScale,
|
|
9
|
+
startFocalX,
|
|
10
|
+
startFocalY,
|
|
11
|
+
width,
|
|
12
|
+
}: {
|
|
13
|
+
currentFocalX: number;
|
|
14
|
+
currentFocalY: number;
|
|
15
|
+
height: number;
|
|
16
|
+
initialScale: number;
|
|
17
|
+
initialTranslateX: number;
|
|
18
|
+
initialTranslateY: number;
|
|
19
|
+
nextScale: number;
|
|
20
|
+
startFocalX: number;
|
|
21
|
+
startFocalY: number;
|
|
22
|
+
width: number;
|
|
23
|
+
}) => {
|
|
24
|
+
'worklet';
|
|
25
|
+
|
|
26
|
+
const scaleRatio = nextScale / initialScale;
|
|
27
|
+
const currentCenterX = currentFocalX - width / 2;
|
|
28
|
+
const currentCenterY = currentFocalY - height / 2;
|
|
29
|
+
const startCenterX = startFocalX - width / 2;
|
|
30
|
+
const startCenterY = startFocalY - height / 2;
|
|
31
|
+
|
|
32
|
+
return {
|
|
33
|
+
translateX: initialTranslateX * scaleRatio + currentCenterX - startCenterX * scaleRatio,
|
|
34
|
+
translateY: initialTranslateY * scaleRatio + currentCenterY - startCenterY * scaleRatio,
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export const shouldAcceptFocalPoint = ({
|
|
39
|
+
focalX,
|
|
40
|
+
focalY,
|
|
41
|
+
hasActiveFocal,
|
|
42
|
+
lastFocalX,
|
|
43
|
+
lastFocalY,
|
|
44
|
+
threshold,
|
|
45
|
+
}: {
|
|
46
|
+
focalX: number;
|
|
47
|
+
focalY: number;
|
|
48
|
+
hasActiveFocal: boolean;
|
|
49
|
+
lastFocalX: number;
|
|
50
|
+
lastFocalY: number;
|
|
51
|
+
threshold: number;
|
|
52
|
+
}) => {
|
|
53
|
+
'worklet';
|
|
54
|
+
|
|
55
|
+
if (!hasActiveFocal) {
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return Math.abs(focalX - lastFocalX) < threshold && Math.abs(focalY - lastFocalY) < threshold;
|
|
60
|
+
};
|