react-native-gesture-image-viewer 2.0.0-beta.3 → 2.0.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +43 -19
  2. package/lib/module/GestureTrigger.js +82 -0
  3. package/lib/module/GestureTrigger.js.map +1 -0
  4. package/lib/module/GestureViewer.js +14 -8
  5. package/lib/module/GestureViewer.js.map +1 -1
  6. package/lib/module/GestureViewerManager.js +5 -5
  7. package/lib/module/GestureViewerManager.js.map +1 -1
  8. package/lib/module/GestureViewerRegistry.js +11 -0
  9. package/lib/module/GestureViewerRegistry.js.map +1 -1
  10. package/lib/module/index.js +2 -0
  11. package/lib/module/index.js.map +1 -1
  12. package/lib/module/useGestureViewer.js +140 -71
  13. package/lib/module/useGestureViewer.js.map +1 -1
  14. package/lib/module/useGestureViewerController.js +17 -66
  15. package/lib/module/useGestureViewerController.js.map +1 -1
  16. package/lib/module/useGestureViewerState.js +78 -0
  17. package/lib/module/useGestureViewerState.js.map +1 -0
  18. package/lib/typescript/src/GestureTrigger.d.ts +55 -0
  19. package/lib/typescript/src/GestureTrigger.d.ts.map +1 -0
  20. package/lib/typescript/src/GestureViewer.d.ts +2 -2
  21. package/lib/typescript/src/GestureViewer.d.ts.map +1 -1
  22. package/lib/typescript/src/GestureViewerManager.d.ts +5 -8
  23. package/lib/typescript/src/GestureViewerManager.d.ts.map +1 -1
  24. package/lib/typescript/src/GestureViewerRegistry.d.ts +5 -0
  25. package/lib/typescript/src/GestureViewerRegistry.d.ts.map +1 -1
  26. package/lib/typescript/src/index.d.ts +4 -1
  27. package/lib/typescript/src/index.d.ts.map +1 -1
  28. package/lib/typescript/src/types.d.ts +116 -58
  29. package/lib/typescript/src/types.d.ts.map +1 -1
  30. package/lib/typescript/src/useGestureViewer.d.ts +9 -8
  31. package/lib/typescript/src/useGestureViewer.d.ts.map +1 -1
  32. package/lib/typescript/src/useGestureViewerController.d.ts +10 -21
  33. package/lib/typescript/src/useGestureViewerController.d.ts.map +1 -1
  34. package/lib/typescript/src/useGestureViewerState.d.ts +35 -0
  35. package/lib/typescript/src/useGestureViewerState.d.ts.map +1 -0
  36. package/package.json +1 -1
  37. package/src/GestureTrigger.tsx +86 -0
  38. package/src/GestureViewer.tsx +15 -9
  39. package/src/GestureViewerManager.ts +9 -9
  40. package/src/GestureViewerRegistry.ts +16 -0
  41. package/src/index.tsx +4 -1
  42. package/src/types.ts +116 -60
  43. package/src/useGestureViewer.ts +180 -77
  44. package/src/useGestureViewerController.ts +19 -76
  45. package/src/useGestureViewerState.ts +85 -0
@@ -10,37 +10,33 @@ import { createBoundsConstraint, createScrollAction, getLoopAdjustedIndex } from
10
10
  export const useGestureViewer = ({
11
11
  data,
12
12
  initialIndex = 0,
13
- onIndexChange,
14
13
  onDismiss,
15
14
  width: customWidth,
16
- dismissThreshold = 80,
17
- resistance = 2,
18
- // swipeThreshold = 0.5,
19
- // velocityThreshold = 200,
20
- animateBackdrop = true,
21
- enableDismissGesture = true,
22
- enableSwipeGesture = true,
23
- enableZoomGesture = true,
24
- enableDoubleTapGesture = true,
25
- enableZoomPanGesture = true,
15
+ dismiss,
16
+ enableDoubleTapZoom = true,
17
+ enablePinchZoom = true,
18
+ enableHorizontalSwipe = true,
19
+ enablePanWhenZoomed = true,
26
20
  enableLoop = false,
27
21
  maxZoomScale = 2,
28
22
  itemSpacing = 0,
29
- useSnap = false,
30
- id = 'default'
23
+ enableSnapMode = false,
24
+ id = 'default',
25
+ onDismissStart,
26
+ triggerAnimation
31
27
  }) => {
32
28
  const {
33
29
  width: screenWidth,
34
30
  height: screenHeight
35
31
  } = useWindowDimensions();
36
- const width = useSnap ? customWidth || screenWidth : screenWidth;
32
+ const width = enableSnapMode ? customWidth || screenWidth : screenWidth;
37
33
  const [isZoomed, setIsZoomed] = useState(false);
38
34
  const [isRotated, setIsRotated] = useState(false);
35
+ const [shouldStartTriggerAnimation, setShouldStartTriggerAnimation] = useState(false);
39
36
  const [manager, setManager] = useState(null);
40
37
  const listRef = useRef(null);
41
- const unsubscribeRef = useRef(null);
42
- const onIndexChangeRef = useRef(null);
43
- const lastEmittedIndexRef = useRef(null);
38
+ const triggerRectRef = useRef(null);
39
+ const onAnimationCompleteRef = useRef(triggerAnimation?.onAnimationComplete);
44
40
  const initialTranslateY = useSharedValue(0);
45
41
  const initialTranslateX = useSharedValue(0);
46
42
  const startScale = useSharedValue(1);
@@ -49,7 +45,24 @@ export const useGestureViewer = ({
49
45
  const scale = useSharedValue(1);
50
46
  const backdropOpacity = useSharedValue(1);
51
47
  const rotation = useSharedValue(0);
48
+ const triggerScale = useSharedValue(1);
49
+ const triggerTranslateX = useSharedValue(0);
50
+ const triggerTranslateY = useSharedValue(0);
51
+ const triggerOpacity = useSharedValue(1);
52
52
  const dataLength = data?.length || 0;
53
+ const animationConfig = useMemo(() => ({
54
+ duration: triggerAnimation?.duration ?? 300,
55
+ easing: triggerAnimation?.easing ?? Easing.bezier(0.25, 0.1, 0.25, 1.0),
56
+ reduceMotion: triggerAnimation?.reduceMotion
57
+ }), [triggerAnimation?.duration, triggerAnimation?.easing, triggerAnimation?.reduceMotion]);
58
+ const dismissOptions = useMemo(() => {
59
+ return {
60
+ enabled: dismiss?.enabled ?? true,
61
+ threshold: dismiss?.threshold ?? 80,
62
+ resistance: dismiss?.resistance ?? 2,
63
+ fadeBackdrop: dismiss?.fadeBackdrop ?? true
64
+ };
65
+ }, [dismiss?.enabled, dismiss?.threshold, dismiss?.resistance, dismiss?.fadeBackdrop]);
53
66
  const adjustedInitialIndex = useMemo(() => {
54
67
  if (enableLoop && data.length > 1) {
55
68
  return initialIndex + 1;
@@ -65,59 +78,40 @@ export const useGestureViewer = ({
65
78
  return scrollAction.scrollTo(index, animated);
66
79
  }, [width, itemSpacing]);
67
80
  const emitZoomChange = useCallback((currentScale, prevScale) => {
68
- manager?.emitZoomChange(currentScale, prevScale);
81
+ if (manager) {
82
+ manager.emitZoomChange(currentScale, prevScale);
83
+ }
69
84
  }, [manager]);
70
85
  const emitRotationChange = useCallback((currentRotation, prevRotation) => {
71
- manager?.emitRotationChange(currentRotation, prevRotation);
86
+ if (manager) {
87
+ manager.emitRotationChange(currentRotation, prevRotation);
88
+ }
72
89
  }, [manager]);
90
+ const onAnimationComplete = useCallback(() => {
91
+ onAnimationCompleteRef.current?.();
92
+ }, []);
73
93
  useAnimatedReaction(() => scale.value, (currentScale, previousScale) => {
74
- if (manager && currentScale !== previousScale) {
94
+ if (currentScale !== previousScale) {
75
95
  runOnJS(emitZoomChange)(currentScale, previousScale);
76
96
  }
77
97
  runOnJS(setIsZoomed)(currentScale > 1);
78
98
  });
79
99
  useAnimatedReaction(() => rotation.value, (currentRotation, previousRotation) => {
80
- if (manager && currentRotation !== previousRotation) {
100
+ if (currentRotation !== previousRotation) {
81
101
  runOnJS(emitRotationChange)(currentRotation, previousRotation);
82
102
  }
83
103
  runOnJS(setIsRotated)(currentRotation % 360 !== 0);
84
104
  });
85
105
  useEffect(() => {
86
- onIndexChangeRef.current = onIndexChange ?? null;
87
- });
88
- useEffect(() => {
89
- return () => {
90
- onIndexChangeRef.current = null;
91
- };
92
- }, []);
93
- useEffect(() => {
94
- const handleManagerChange = manager => {
95
- unsubscribeRef.current?.();
96
- unsubscribeRef.current = null;
97
- setManager(manager);
98
- lastEmittedIndexRef.current = null;
99
- if (manager) {
100
- unsubscribeRef.current = manager.subscribe(state => {
101
- if (lastEmittedIndexRef.current !== state.currentIndex) {
102
- lastEmittedIndexRef.current = state.currentIndex;
103
- onIndexChangeRef.current?.(state.currentIndex);
104
- }
105
- });
106
- return;
107
- }
108
- };
109
- const unsubscribeFromRegistry = registry.subscribeToManager(id, handleManagerChange);
110
- return () => {
111
- unsubscribeFromRegistry();
112
- unsubscribeRef.current?.();
113
- };
106
+ const unsubscribe = registry.subscribeToManager(id, setManager);
107
+ return unsubscribe;
114
108
  }, [id]);
115
109
  useEffect(() => {
116
110
  if (!manager) {
117
111
  return;
118
112
  }
119
113
  manager.setDataLength(dataLength);
120
- manager.setEnableSwipeGesture(enableSwipeGesture);
114
+ manager.setEnableHorizontalSwipe(enableHorizontalSwipe);
121
115
  manager.setCurrentIndex(initialIndex);
122
116
  manager.setWidth(width + itemSpacing);
123
117
  manager.setHeight(screenHeight);
@@ -125,7 +119,7 @@ export const useGestureViewer = ({
125
119
  manager.setRotation(rotation);
126
120
  manager.setEnableLoop(enableLoop);
127
121
  manager.notifyStateChange();
128
- }, [dataLength, enableSwipeGesture, initialIndex, manager, width, itemSpacing, maxZoomScale, enableLoop, scale, screenHeight, translateX, translateY, rotation]);
122
+ }, [dataLength, enableHorizontalSwipe, initialIndex, manager, width, itemSpacing, maxZoomScale, enableLoop, scale, screenHeight, translateX, translateY, rotation]);
129
123
  useEffect(() => {
130
124
  if (!manager || !listRef.current) {
131
125
  return;
@@ -149,8 +143,74 @@ export const useGestureViewer = ({
149
143
  runAfterInteractions?.cancel();
150
144
  };
151
145
  }, [adjustedInitialIndex, translateY, backdropOpacity, translateX, scale, startScale, rotation, scrollTo]);
146
+ useEffect(() => {
147
+ onAnimationCompleteRef.current = triggerAnimation?.onAnimationComplete;
148
+ }, [triggerAnimation?.onAnimationComplete]);
149
+ useEffect(() => {
150
+ if (shouldStartTriggerAnimation && triggerRectRef.current) {
151
+ const startX = triggerRectRef.current.x + triggerRectRef.current.width / 2 - screenWidth / 2;
152
+ const startY = triggerRectRef.current.y + triggerRectRef.current.height / 2 - screenHeight / 2;
153
+ const initialScaleFromTrigger = Math.min(triggerRectRef.current.width / screenWidth, triggerRectRef.current.height / screenHeight);
154
+ triggerScale.value = initialScaleFromTrigger;
155
+ triggerTranslateX.value = startX;
156
+ triggerTranslateY.value = startY;
157
+ triggerOpacity.value = 0;
158
+ triggerScale.value = withTiming(1, animationConfig, finished => {
159
+ if (finished) {
160
+ runOnJS(onAnimationComplete)();
161
+ }
162
+ });
163
+ triggerTranslateX.value = withTiming(0, animationConfig);
164
+ triggerTranslateY.value = withTiming(0, animationConfig);
165
+ triggerOpacity.value = withTiming(1, {
166
+ duration: animationConfig.duration / 2,
167
+ easing: animationConfig.easing,
168
+ reduceMotion: animationConfig.reduceMotion
169
+ });
170
+ setShouldStartTriggerAnimation(false);
171
+ }
172
+ }, [shouldStartTriggerAnimation, animationConfig, screenWidth, screenHeight, triggerOpacity, triggerScale, triggerTranslateX, triggerTranslateY, onAnimationComplete]);
173
+ useEffect(() => {
174
+ const node = registry.getTriggerNode(id);
175
+ if (node && typeof node.measure === 'function') {
176
+ node.measure((_x, _y, width, height, pageX, pageY) => {
177
+ triggerRectRef.current = {
178
+ x: pageX,
179
+ y: pageY,
180
+ width,
181
+ height
182
+ };
183
+ triggerOpacity.value = 0;
184
+ setShouldStartTriggerAnimation(true);
185
+ registry.clearTriggerNode(id);
186
+ });
187
+ }
188
+ return () => {
189
+ triggerRectRef.current = null;
190
+ };
191
+ }, [id, triggerOpacity]);
192
+ const handleDismiss = useCallback(() => {
193
+ onDismissStart?.();
194
+ if (triggerRectRef.current) {
195
+ const endX = triggerRectRef.current.x + triggerRectRef.current.width / 2 - screenWidth / 2;
196
+ const endY = triggerRectRef.current.y + triggerRectRef.current.height / 2 - screenHeight / 2;
197
+ const endScale = Math.min(triggerRectRef.current.width / screenWidth, triggerRectRef.current.height / screenHeight);
198
+ triggerScale.value = withTiming(endScale, animationConfig);
199
+ triggerTranslateX.value = withTiming(endX, animationConfig);
200
+ triggerTranslateY.value = withTiming(endY, animationConfig);
201
+ triggerOpacity.value = withTiming(0, animationConfig, finished => {
202
+ if (finished && onDismiss) {
203
+ runOnJS(onDismiss)();
204
+ }
205
+ });
206
+ return;
207
+ }
208
+ if (onDismiss) {
209
+ runOnJS(onDismiss)();
210
+ }
211
+ }, [animationConfig, onDismiss, onDismissStart, screenWidth, screenHeight, triggerTranslateX, triggerScale, triggerTranslateY, triggerOpacity]);
152
212
  const onMomentumScrollEnd = useCallback(event => {
153
- if (!enableSwipeGesture) {
213
+ if (!enableHorizontalSwipe) {
154
214
  return;
155
215
  }
156
216
  const contentOffset = event.nativeEvent.contentOffset;
@@ -167,7 +227,7 @@ export const useGestureViewer = ({
167
227
  if (needsJump && jumpToIndex !== undefined) {
168
228
  scrollTo(jumpToIndex, false);
169
229
  }
170
- const currentIndex = manager?.getState() ?? 0;
230
+ const currentIndex = manager?.getState()?.currentIndex;
171
231
  if (realIndex !== currentIndex && realIndex >= 0 && realIndex < dataLength) {
172
232
  if (manager) {
173
233
  manager.setCurrentIndex(realIndex);
@@ -181,13 +241,14 @@ export const useGestureViewer = ({
181
241
  scale.value = withTiming(1);
182
242
  rotation.value = 0;
183
243
  }
184
- }, [scrollTo, manager, dataLength, width, itemSpacing, enableSwipeGesture, enableLoop, translateX, translateY, scale, initialTranslateX, initialTranslateY, startScale, rotation]);
244
+ }, [scrollTo, manager, dataLength, width, itemSpacing, enableHorizontalSwipe, enableLoop, translateX, translateY, scale, initialTranslateX, initialTranslateY, startScale, rotation]);
185
245
  const dismissGesture = useMemo(() => {
186
- return Gesture.Pan().minDistance(10).averageTouches(true).activeCursor('grabbing').activeOffsetY([-10, 10]).failOffsetX([-10, 10]).enabled(!isZoomed).onUpdate(event => {
187
- translateY.value = event.translationY / resistance;
246
+ const canDismiss = !isZoomed && dismissOptions.enabled;
247
+ return Gesture.Pan().minDistance(10).averageTouches(true).activeCursor('grabbing').activeOffsetY([-10, 10]).failOffsetX([-10, 10]).enabled(canDismiss).onUpdate(event => {
248
+ translateY.value = event.translationY / dismissOptions.resistance;
188
249
  }).onEnd(event => {
189
- if (event.translationY > dismissThreshold && enableDismissGesture && onDismiss) {
190
- runOnJS(onDismiss)();
250
+ if (canDismiss && event.translationY > dismissOptions.threshold) {
251
+ runOnJS(handleDismiss)();
191
252
  return;
192
253
  }
193
254
  translateY.value = withSpring(0, {
@@ -198,9 +259,9 @@ export const useGestureViewer = ({
198
259
  energyThreshold: 6e-9
199
260
  });
200
261
  });
201
- }, [translateY, dismissThreshold, enableDismissGesture, onDismiss, resistance, isZoomed]);
262
+ }, [translateY, dismissOptions, handleDismiss, isZoomed]);
202
263
  const zoomPinchGesture = useMemo(() => {
203
- return Gesture.Pinch().enabled(enableZoomGesture).onBegin(() => {
264
+ return Gesture.Pinch().enabled(enablePinchZoom).onBegin(() => {
204
265
  startScale.value = scale.value;
205
266
  initialTranslateX.value = translateX.value;
206
267
  initialTranslateY.value = translateY.value;
@@ -269,9 +330,9 @@ export const useGestureViewer = ({
269
330
  translateX.value = withTiming(constrainedTranslateX);
270
331
  translateY.value = withTiming(constrainedTranslateY);
271
332
  });
272
- }, [scale, enableZoomGesture, maxZoomScale, translateX, translateY, startScale, initialTranslateX, initialTranslateY, width, screenHeight, constrainTranslation]);
333
+ }, [scale, enablePinchZoom, maxZoomScale, translateX, translateY, startScale, initialTranslateX, initialTranslateY, width, screenHeight, constrainTranslation]);
273
334
  const zoomPanGesture = useMemo(() => {
274
- return Gesture.Pan().enabled(enableZoomPanGesture && isZoomed).activeCursor('grabbing').averageTouches(true).onBegin(() => {
335
+ return Gesture.Pan().enabled(enablePanWhenZoomed && isZoomed).activeCursor('grabbing').averageTouches(true).onBegin(() => {
275
336
  initialTranslateX.value = translateX.value;
276
337
  initialTranslateY.value = translateY.value;
277
338
  }).onUpdate(event => {
@@ -290,9 +351,9 @@ export const useGestureViewer = ({
290
351
  translateY.value = constrainedTranslateY;
291
352
  }
292
353
  });
293
- }, [translateX, translateY, enableZoomPanGesture, isZoomed, scale, initialTranslateX, initialTranslateY, constrainTranslation]);
354
+ }, [translateX, translateY, enablePanWhenZoomed, isZoomed, scale, initialTranslateX, initialTranslateY, constrainTranslation]);
294
355
  const doubleTapGesture = useMemo(() => {
295
- return Gesture.Tap().enabled(enableDoubleTapGesture).numberOfTaps(2).onEnd(event => {
356
+ return Gesture.Tap().enabled(enableDoubleTapZoom).numberOfTaps(2).onEnd(event => {
296
357
  const nextScale = scale.value > 1 ? 1 : maxZoomScale;
297
358
  if (nextScale > 1) {
298
359
  const centerX = event.x - width / 2;
@@ -322,13 +383,20 @@ export const useGestureViewer = ({
322
383
  easing: Easing.bezier(0.25, 0.1, 0.25, 1.0)
323
384
  });
324
385
  });
325
- }, [scale, enableDoubleTapGesture, maxZoomScale, translateX, translateY, width, screenHeight]);
386
+ }, [scale, enableDoubleTapZoom, maxZoomScale, translateX, translateY, width, screenHeight]);
326
387
  const zoomGesture = useMemo(() => {
327
388
  return Gesture.Race(zoomPinchGesture, Gesture.Exclusive(zoomPanGesture, doubleTapGesture));
328
389
  }, [zoomPinchGesture, zoomPanGesture, doubleTapGesture]);
329
390
  const animatedStyle = useAnimatedStyle(() => {
330
391
  return {
392
+ opacity: triggerOpacity.value,
331
393
  transform: [{
394
+ translateX: triggerTranslateX.value
395
+ }, {
396
+ translateY: triggerTranslateY.value
397
+ }, {
398
+ scale: triggerScale.value
399
+ }, {
332
400
  translateY: translateY.value
333
401
  }, {
334
402
  translateX: translateX.value
@@ -340,22 +408,22 @@ export const useGestureViewer = ({
340
408
  };
341
409
  });
342
410
  const backdropStyle = useAnimatedStyle(() => {
343
- if (!animateBackdrop || scale.value !== 1) {
411
+ const baseOpacity = triggerOpacity.value;
412
+ if (!dismissOptions.fadeBackdrop || scale.value !== 1) {
344
413
  return {
345
- opacity: 1
414
+ opacity: baseOpacity
346
415
  };
347
416
  }
348
- const opacity = interpolate(translateY.value, [0, 200], [1, 0], 'clamp');
417
+ const dismissOpacity = interpolate(translateY.value, [0, 200], [1, 0], 'clamp');
349
418
  return {
350
- opacity
419
+ opacity: baseOpacity * dismissOpacity
351
420
  };
352
- }, [animateBackdrop]);
421
+ }, [dismissOptions.fadeBackdrop]);
353
422
  const onScrollBeginDrag = useCallback(() => {
354
423
  manager?.handleScrollBeginDrag();
355
424
  }, [manager]);
356
425
  return {
357
426
  dataLength,
358
- translateY,
359
427
  listRef,
360
428
  isZoomed,
361
429
  isRotated,
@@ -363,6 +431,7 @@ export const useGestureViewer = ({
363
431
  zoomGesture,
364
432
  onMomentumScrollEnd,
365
433
  onScrollBeginDrag,
434
+ handleDismiss,
366
435
  animatedStyle,
367
436
  backdropStyle
368
437
  };
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","InteractionManager","useWindowDimensions","Gesture","Easing","interpolate","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","runOnJS","registry","createBoundsConstraint","createScrollAction","getLoopAdjustedIndex","useGestureViewer","data","initialIndex","onIndexChange","onDismiss","width","customWidth","dismissThreshold","resistance","animateBackdrop","enableDismissGesture","enableSwipeGesture","enableZoomGesture","enableDoubleTapGesture","enableZoomPanGesture","enableLoop","maxZoomScale","itemSpacing","useSnap","id","screenWidth","height","screenHeight","isZoomed","setIsZoomed","isRotated","setIsRotated","manager","setManager","listRef","unsubscribeRef","onIndexChangeRef","lastEmittedIndexRef","initialTranslateY","initialTranslateX","startScale","translateY","translateX","scale","backdropOpacity","rotation","dataLength","length","adjustedInitialIndex","constrainTranslation","scrollTo","index","animated","scrollAction","current","emitZoomChange","currentScale","prevScale","emitRotationChange","currentRotation","prevRotation","value","previousScale","previousRotation","handleManagerChange","subscribe","state","currentIndex","unsubscribeFromRegistry","subscribeToManager","setDataLength","setEnableSwipeGesture","setCurrentIndex","setWidth","setHeight","setZoomSharedValues","setRotation","setEnableLoop","notifyStateChange","setListRef","runAfterInteractions","cancel","onMomentumScrollEnd","event","contentOffset","nativeEvent","scrollIndex","Math","round","x","isLoopHandled","handleMomentumScrollEnd","realIndex","needsJump","jumpToIndex","undefined","getState","dismissGesture","Pan","minDistance","averageTouches","activeCursor","activeOffsetY","failOffsetX","enabled","onUpdate","translationY","onEnd","stiffness","damping","mass","overshootClamping","energyThreshold","zoomPinchGesture","Pinch","onBegin","newScale","deltaScale","centerX","focalX","centerY","focalY","newTranslateX","newTranslateY","constrainedTranslateX","constrainedTranslateY","duration","easing","bezier","zoomPanGesture","translationX","doubleTapGesture","Tap","numberOfTaps","nextScale","y","zoomGesture","Race","Exclusive","animatedStyle","transform","rotate","backdropStyle","opacity","onScrollBeginDrag","handleScrollBeginDrag"],"sourceRoot":"../../src","sources":["useGestureViewer.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","InteractionManager","useWindowDimensions","Gesture","Easing","interpolate","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","runOnJS","registry","createBoundsConstraint","createScrollAction","getLoopAdjustedIndex","useGestureViewer","data","initialIndex","onDismiss","width","customWidth","dismiss","enableDoubleTapZoom","enablePinchZoom","enableHorizontalSwipe","enablePanWhenZoomed","enableLoop","maxZoomScale","itemSpacing","enableSnapMode","id","onDismissStart","triggerAnimation","screenWidth","height","screenHeight","isZoomed","setIsZoomed","isRotated","setIsRotated","shouldStartTriggerAnimation","setShouldStartTriggerAnimation","manager","setManager","listRef","triggerRectRef","onAnimationCompleteRef","onAnimationComplete","initialTranslateY","initialTranslateX","startScale","translateY","translateX","scale","backdropOpacity","rotation","triggerScale","triggerTranslateX","triggerTranslateY","triggerOpacity","dataLength","length","animationConfig","duration","easing","bezier","reduceMotion","dismissOptions","enabled","threshold","resistance","fadeBackdrop","adjustedInitialIndex","constrainTranslation","scrollTo","index","animated","scrollAction","current","emitZoomChange","currentScale","prevScale","emitRotationChange","currentRotation","prevRotation","value","previousScale","previousRotation","unsubscribe","subscribeToManager","setDataLength","setEnableHorizontalSwipe","setCurrentIndex","setWidth","setHeight","setZoomSharedValues","setRotation","setEnableLoop","notifyStateChange","setListRef","runAfterInteractions","cancel","startX","x","startY","y","initialScaleFromTrigger","Math","min","finished","node","getTriggerNode","measure","_x","_y","pageX","pageY","clearTriggerNode","handleDismiss","endX","endY","endScale","onMomentumScrollEnd","event","contentOffset","nativeEvent","scrollIndex","round","isLoopHandled","handleMomentumScrollEnd","realIndex","needsJump","jumpToIndex","undefined","currentIndex","getState","dismissGesture","canDismiss","Pan","minDistance","averageTouches","activeCursor","activeOffsetY","failOffsetX","onUpdate","translationY","onEnd","stiffness","damping","mass","overshootClamping","energyThreshold","zoomPinchGesture","Pinch","onBegin","newScale","deltaScale","centerX","focalX","centerY","focalY","newTranslateX","newTranslateY","constrainedTranslateX","constrainedTranslateY","zoomPanGesture","translationX","doubleTapGesture","Tap","numberOfTaps","nextScale","zoomGesture","Race","Exclusive","animatedStyle","opacity","transform","rotate","backdropStyle","baseOpacity","dismissOpacity","onScrollBeginDrag","handleScrollBeginDrag"],"sourceRoot":"../../src","sources":["useGestureViewer.ts"],"mappings":"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","ignoreList":[]}
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
 
3
- import { useCallback, useMemo, useRef, useSyncExternalStore } from 'react';
3
+ import { useEffect, useMemo, useRef } from 'react';
4
4
  import { registry } from "./GestureViewerRegistry.js";
5
5
  /**
6
6
  * Hook to control the gesture viewer programmatically.
7
7
  *
8
8
  * @param id - Viewer instance identifier (default: 'default')
9
- * @returns Methods and state for controlling the viewer
9
+ * @returns Methods for controlling the viewer
10
10
  *
11
11
  * **Available methods:**
12
12
  * - `goToIndex(index: number)` - Navigate to specific index (0 to totalCount-1)
@@ -15,88 +15,43 @@ import { registry } from "./GestureViewerRegistry.js";
15
15
  * - `zoomIn(multiplier?: number)` - Zoom in (default: 0.25)
16
16
  * - `zoomOut(multiplier?: number)` - Zoom out (default: 0.25)
17
17
  * - `resetZoom(scale?: number)` - Reset zoom level (default: 1.0)
18
- * - `rotate(angle?: 0|90|180|270|360, clockwise?: boolean)` - Rotate content (default: 90° clockwise)
19
- *
20
- * **Available state:**
21
- * - `currentIndex: number` - Current active index (read-only)
22
- * - `totalCount: number` - Total number of items (read-only)
18
+ * - `rotate(angle?: RotationAngle, clockwise?: boolean)` - Rotate content (default: 90° clockwise)
23
19
  *
24
20
  * @example
25
21
  * ```tsx
26
- * const { goToIndex, goToNext, goToPrevious, zoomIn, zoomOut, resetZoom, rotate, currentIndex, totalCount } = useGestureViewerController();
22
+ * const controller = useGestureViewerController();
27
23
  *
28
24
  * // Navigate to specific index
29
- * goToIndex(2);
25
+ * controller.goToIndex(2);
30
26
  *
31
27
  * // Go to next image
32
- * goToNext();
28
+ * controller.goToNext();
33
29
  *
34
30
  * // Zoom in by 25%
35
- * zoomIn();
31
+ * controller.zoomIn();
36
32
  *
37
33
  * // Zoom out by 50%
38
- * zoomOut(0.5);
34
+ * controller.zoomOut(0.5);
39
35
  *
40
36
  * // Reset to original size
41
- * resetZoom();
37
+ * controller.resetZoom();
42
38
  *
43
39
  * // Rotate 90 degrees clockwise
44
- * rotate();
40
+ * controller.rotate();
45
41
  *
46
42
  * // Rotate 180 degrees
47
- * rotate(180);
48
- *
49
- * // Check current state
50
- * console.log(`Image ${currentIndex + 1} of ${totalCount}`);
51
- *
52
- * // Check navigation availability
53
- * const canGoNext = currentIndex < totalCount - 1;
54
- * const canGoPrevious = currentIndex > 0;
43
+ * controller.rotate(180);
55
44
  * ```
56
45
  */
57
46
  export const useGestureViewerController = (id = 'default') => {
58
47
  const managerRef = useRef(null);
59
- const stateRef = useRef({
60
- currentIndex: 0,
61
- totalCount: 0
62
- });
63
- const updateState = useCallback((newState, onStoreChange) => {
64
- if (stateRef.current.currentIndex !== newState.currentIndex || stateRef.current.totalCount !== newState.totalCount) {
65
- stateRef.current = {
66
- currentIndex: newState.currentIndex,
67
- totalCount: newState.totalCount
68
- };
69
- onStoreChange();
70
- }
71
- }, []);
72
- const subscribe = useCallback(onStoreChange => {
73
- let unsubscribeFromManager = null;
74
- const unsubscribeFromRegistry = registry.subscribeToManager(id, newManager => {
75
- unsubscribeFromManager?.();
76
- unsubscribeFromManager = null;
77
- managerRef.current = newManager;
78
- if (newManager) {
79
- unsubscribeFromManager = newManager.subscribe(newState => {
80
- updateState(newState, onStoreChange);
81
- });
82
- updateState(newManager.getState(), onStoreChange);
83
- return;
84
- }
85
- updateState({
86
- currentIndex: 0,
87
- totalCount: 0
88
- }, onStoreChange);
48
+ useEffect(() => {
49
+ const unsubscribe = registry.subscribeToManager(id, manager => {
50
+ managerRef.current = manager;
89
51
  });
90
- return () => {
91
- unsubscribeFromRegistry();
92
- unsubscribeFromManager?.();
93
- };
94
- }, [id, updateState]);
95
- const getSnapshot = useCallback(() => {
96
- return stateRef.current;
97
- }, []);
98
- const state = useSyncExternalStore(subscribe, getSnapshot);
99
- const controller = useMemo(() => ({
52
+ return unsubscribe;
53
+ }, [id]);
54
+ return useMemo(() => ({
100
55
  goToIndex: index => {
101
56
  managerRef.current?.goToIndex(index);
102
57
  },
@@ -119,9 +74,5 @@ export const useGestureViewerController = (id = 'default') => {
119
74
  managerRef.current?.rotate(angle, clockwise);
120
75
  }
121
76
  }), []);
122
- return {
123
- ...controller,
124
- ...state
125
- };
126
77
  };
127
78
  //# sourceMappingURL=useGestureViewerController.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useMemo","useRef","useSyncExternalStore","registry","useGestureViewerController","id","managerRef","stateRef","currentIndex","totalCount","updateState","newState","onStoreChange","current","subscribe","unsubscribeFromManager","unsubscribeFromRegistry","subscribeToManager","newManager","getState","getSnapshot","state","controller","goToIndex","index","goToPrevious","goToNext","zoomIn","multiplier","zoomOut","resetZoom","scale","rotate","angle","clockwise"],"sourceRoot":"../../src","sources":["useGestureViewerController.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useMemo","useRef","registry","useGestureViewerController","id","managerRef","unsubscribe","subscribeToManager","manager","current","goToIndex","index","goToPrevious","goToNext","zoomIn","multiplier","zoomOut","resetZoom","scale","rotate","angle","clockwise"],"sourceRoot":"../../src","sources":["useGestureViewerController.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAElD,SAASC,QAAQ,QAAQ,4BAAyB;AAGlD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,0BAA0B,GAAGA,CAACC,EAAE,GAAG,SAAS,KAA8B;EACrF,MAAMC,UAAU,GAAGJ,MAAM,CAA8B,IAAI,CAAC;EAE5DF,SAAS,CAAC,MAAM;IACd,MAAMO,WAAW,GAAGJ,QAAQ,CAACK,kBAAkB,CAACH,EAAE,EAAGI,OAAO,IAAK;MAC/DH,UAAU,CAACI,OAAO,GAAGD,OAAO;IAC9B,CAAC,CAAC;IAEF,OAAOF,WAAW;EACpB,CAAC,EAAE,CAACF,EAAE,CAAC,CAAC;EAER,OAAOJ,OAAO,CACZ,OAAO;IACLU,SAAS,EAAGC,KAAK,IAAK;MACpBN,UAAU,CAACI,OAAO,EAAEC,SAAS,CAACC,KAAK,CAAC;IACtC,CAAC;IACDC,YAAY,EAAEA,CAAA,KAAM;MAClBP,UAAU,CAACI,OAAO,EAAEG,YAAY,CAAC,CAAC;IACpC,CAAC;IACDC,QAAQ,EAAEA,CAAA,KAAM;MACdR,UAAU,CAACI,OAAO,EAAEI,QAAQ,CAAC,CAAC;IAChC,CAAC;IACDC,MAAM,EAAGC,UAAU,IAAK;MACtBV,UAAU,CAACI,OAAO,EAAEK,MAAM,CAACC,UAAU,CAAC;IACxC,CAAC;IACDC,OAAO,EAAGD,UAAU,IAAK;MACvBV,UAAU,CAACI,OAAO,EAAEO,OAAO,CAACD,UAAU,CAAC;IACzC,CAAC;IACDE,SAAS,EAAGC,KAAK,IAAK;MACpBb,UAAU,CAACI,OAAO,EAAEQ,SAAS,CAACC,KAAK,CAAC;IACtC,CAAC;IACDC,MAAM,EAAEA,CAACC,KAAK,EAAEC,SAAS,KAAK;MAC5BhB,UAAU,CAACI,OAAO,EAAEU,MAAM,CAACC,KAAK,EAAEC,SAAS,CAAC;IAC9C;EACF,CAAC,CAAC,EACF,EACF,CAAC;AACH,CAAC","ignoreList":[]}