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.
@@ -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
- }).onBegin(event => {
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 (focalDeltaX < threshold && focalDeltaY < threshold) {
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 deltaScale = newScale - initialScale;
363
- const centerX = nextLastFocalX - width / 2;
364
- const centerY = nextLastFocalY - height / 2;
365
-
366
- // NOTE 새로운 이동값 = 기존 이동값 - (중심점 거리 × 스케일 변화량) / 원래 스케일 (중심점이 화면 중심에서 멀수록, 확대 배율이 클수록 더 많이 이동)
367
- const newTranslateX = initialTranslateX.get() - centerX * deltaScale / initialScale;
368
- const newTranslateY = initialTranslateY.get() - centerY * deltaScale / initialScale;
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;AAM/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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAywBlC,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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-gesture-image-viewer",
3
- "version": "2.3.1",
3
+ "version": "2.3.2",
4
4
  "description": "🖼️ React Native Image Viewer - Reanimated-powered image gestures with full control",
5
5
  "keywords": [
6
6
  "android",
@@ -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
- .onBegin((event) => {
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 (focalDeltaX < threshold && focalDeltaY < threshold) {
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
- // NOTE 새로운 이동값 = 기존 이동값 - (중심점 거리 × 스케일 변화량) / 원래 스케일 (중심점이 화면 중심에서 멀수록, 확대 배율이 클수록 더 많이 이동)
568
- const newTranslateX = initialTranslateX.get() - (centerX * deltaScale) / initialScale;
569
- const newTranslateY = initialTranslateY.get() - (centerY * deltaScale) / initialScale;
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
+ };