react-native-gesture-image-viewer 2.3.3 → 2.5.0

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 (51) hide show
  1. package/README.md +19 -5
  2. package/lib/module/GestureViewer.js +39 -15
  3. package/lib/module/GestureViewer.js.map +1 -1
  4. package/lib/module/GestureViewerManager.js +43 -14
  5. package/lib/module/GestureViewerManager.js.map +1 -1
  6. package/lib/module/index.js.map +1 -1
  7. package/lib/module/itemDimensions.js +86 -0
  8. package/lib/module/itemDimensions.js.map +1 -0
  9. package/lib/module/useGestureViewer.js +246 -28
  10. package/lib/module/useGestureViewer.js.map +1 -1
  11. package/lib/module/useGestureViewerPaging.js +17 -5
  12. package/lib/module/useGestureViewerPaging.js.map +1 -1
  13. package/lib/module/useGestureViewerPaging.web.js +31 -7
  14. package/lib/module/useGestureViewerPaging.web.js.map +1 -1
  15. package/lib/module/utils/index.js +43 -10
  16. package/lib/module/utils/index.js.map +1 -1
  17. package/lib/module/utils/tapZoom.js +51 -13
  18. package/lib/module/utils/tapZoom.js.map +1 -1
  19. package/lib/typescript/src/GestureViewer.d.ts.map +1 -1
  20. package/lib/typescript/src/GestureViewerManager.d.ts +16 -3
  21. package/lib/typescript/src/GestureViewerManager.d.ts.map +1 -1
  22. package/lib/typescript/src/index.d.ts +1 -1
  23. package/lib/typescript/src/index.d.ts.map +1 -1
  24. package/lib/typescript/src/itemDimensions.d.ts +26 -0
  25. package/lib/typescript/src/itemDimensions.d.ts.map +1 -0
  26. package/lib/typescript/src/types.d.ts +40 -1
  27. package/lib/typescript/src/types.d.ts.map +1 -1
  28. package/lib/typescript/src/useGestureViewer.d.ts +4 -2
  29. package/lib/typescript/src/useGestureViewer.d.ts.map +1 -1
  30. package/lib/typescript/src/useGestureViewerPaging.d.ts +1 -1
  31. package/lib/typescript/src/useGestureViewerPaging.d.ts.map +1 -1
  32. package/lib/typescript/src/useGestureViewerPaging.types.d.ts +3 -0
  33. package/lib/typescript/src/useGestureViewerPaging.types.d.ts.map +1 -1
  34. package/lib/typescript/src/useGestureViewerPaging.web.d.ts +1 -1
  35. package/lib/typescript/src/useGestureViewerPaging.web.d.ts.map +1 -1
  36. package/lib/typescript/src/utils/index.d.ts +7 -3
  37. package/lib/typescript/src/utils/index.d.ts.map +1 -1
  38. package/lib/typescript/src/utils/tapZoom.d.ts +17 -1
  39. package/lib/typescript/src/utils/tapZoom.d.ts.map +1 -1
  40. package/package.json +1 -1
  41. package/src/GestureViewer.tsx +64 -18
  42. package/src/GestureViewerManager.ts +58 -19
  43. package/src/index.tsx +5 -0
  44. package/src/itemDimensions.ts +162 -0
  45. package/src/types.ts +51 -1
  46. package/src/useGestureViewer.ts +381 -52
  47. package/src/useGestureViewerPaging.ts +21 -7
  48. package/src/useGestureViewerPaging.types.ts +3 -0
  49. package/src/useGestureViewerPaging.web.ts +46 -7
  50. package/src/utils/index.ts +86 -27
  51. package/src/utils/tapZoom.ts +66 -13
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
 
3
- import { useCallback, useEffect, useRef } from 'react';
3
+ import { useCallback, useEffect, useRef, useState } from 'react';
4
4
  import { applyTapZoomAtPoint } from "./utils/tapZoom.js";
5
5
  import { getWebAutoPlayTargetPhysicalIndex, getWebScrollPhysicalIndex, resolveWebScrollFinalState } from "./utils/webScroll.js";
6
6
  export function useGestureViewerPaging({
7
7
  adjustedInitialIndex,
8
8
  autoPlay,
9
9
  autoPlayInterval,
10
+ contentHeight,
11
+ contentWidth,
10
12
  currentIndex,
11
13
  dataLength,
12
14
  enableDoubleTapZoom,
@@ -27,17 +29,20 @@ export function useGestureViewerPaging({
27
29
  translateY,
28
30
  width
29
31
  }) {
32
+ const [activeListIndex, setActiveListIndex] = useState(adjustedInitialIndex);
33
+ const pageStride = width + itemSpacing;
30
34
  const webSingleTapTimerRef = useRef(null);
31
35
  const webScrollRuntimeRef = useRef({
32
36
  actor: 'idle',
33
37
  isAutoplayPausedByUser: false,
34
38
  lastSettledPhysicalIndex: adjustedInitialIndex,
35
- latestOffsetX: adjustedInitialIndex * (width + itemSpacing),
39
+ latestOffsetX: adjustedInitialIndex * pageStride,
36
40
  latestRawPhysicalIndex: adjustedInitialIndex,
37
41
  lastProgrammaticScrollVersion: 0,
38
42
  settleTimer: null,
39
43
  resumeAutoplayTimer: null
40
44
  });
45
+ const previousPagingLayoutRef = useRef(null);
41
46
  const clearWebSingleTapTimer = useCallback(() => {
42
47
  if (webSingleTapTimerRef.current) {
43
48
  clearTimeout(webSingleTapTimerRef.current);
@@ -133,6 +138,7 @@ export function useGestureViewerPaging({
133
138
  runtime.latestOffsetX = settledPhysicalIndex * (width + itemSpacing);
134
139
  runtime.actor = 'idle';
135
140
  manager?.cancelPendingLoopTransition();
141
+ setActiveListIndex(settledPhysicalIndex);
136
142
  syncCurrentIndex(logicalIndex);
137
143
  if (settledByActor === 'user') {
138
144
  scheduleWebAutoplayResume();
@@ -149,15 +155,30 @@ export function useGestureViewerPaging({
149
155
  }, [clearWebSettleTimer, finalizeWebScroll, itemSpacing, width]);
150
156
  useEffect(() => {
151
157
  const runtime = webScrollRuntimeRef.current;
158
+ const previousLayout = previousPagingLayoutRef.current;
159
+ const shouldResetToInitialIndex = previousLayout === null || previousLayout.adjustedInitialIndex !== adjustedInitialIndex || previousLayout.dataLength !== dataLength || previousLayout.manager !== manager;
160
+ const didPageStrideChange = previousLayout !== null && previousLayout.pageStride !== pageStride;
161
+ previousPagingLayoutRef.current = {
162
+ adjustedInitialIndex,
163
+ dataLength,
164
+ manager,
165
+ pageStride
166
+ };
167
+ if (!shouldResetToInitialIndex && !didPageStrideChange) {
168
+ return;
169
+ }
152
170
  runtime.actor = 'idle';
153
171
  runtime.isAutoplayPausedByUser = false;
154
- runtime.lastSettledPhysicalIndex = adjustedInitialIndex;
155
- runtime.latestOffsetX = adjustedInitialIndex * (width + itemSpacing);
156
- runtime.latestRawPhysicalIndex = adjustedInitialIndex;
172
+ if (shouldResetToInitialIndex) {
173
+ runtime.lastSettledPhysicalIndex = adjustedInitialIndex;
174
+ setActiveListIndex(adjustedInitialIndex);
175
+ }
176
+ runtime.latestOffsetX = runtime.lastSettledPhysicalIndex * pageStride;
177
+ runtime.latestRawPhysicalIndex = runtime.lastSettledPhysicalIndex;
157
178
  runtime.lastProgrammaticScrollVersion = manager?.getProgrammaticScrollVersion() ?? 0;
158
179
  clearWebSettleTimer();
159
180
  clearWebAutoplayResumeTimer();
160
- }, [adjustedInitialIndex, clearWebAutoplayResumeTimer, clearWebSettleTimer, itemSpacing, manager, width]);
181
+ }, [adjustedInitialIndex, clearWebAutoplayResumeTimer, clearWebSettleTimer, dataLength, manager, pageStride]);
161
182
  useEffect(() => {
162
183
  return () => {
163
184
  clearWebSingleTapTimer();
@@ -245,6 +266,8 @@ export function useGestureViewerPaging({
245
266
  pauseWebAutoplayWithoutPagingInteraction();
246
267
  scheduleWebAutoplayResume();
247
268
  applyTapZoomAtPoint({
269
+ contentHeight: contentHeight.get(),
270
+ contentWidth: contentWidth.get(),
248
271
  x: resolvedX,
249
272
  y: resolvedY,
250
273
  width,
@@ -264,8 +287,9 @@ export function useGestureViewerPaging({
264
287
  onSingleTap(resolvedX, resolvedY);
265
288
  webSingleTapTimerRef.current = null;
266
289
  }, 250);
267
- }, [clearWebSingleTapTimer, enableDoubleTapZoom, height, maxZoomScale, onSingleTap, pauseWebAutoplayWithoutPagingInteraction, scale, scheduleWebAutoplayResume, translateX, translateY, width]);
290
+ }, [clearWebSingleTapTimer, contentHeight, contentWidth, enableDoubleTapZoom, height, maxZoomScale, onSingleTap, pauseWebAutoplayWithoutPagingInteraction, scale, scheduleWebAutoplayResume, translateX, translateY, width]);
268
291
  return {
292
+ activeListIndex,
269
293
  onMomentumScrollEnd,
270
294
  onScroll,
271
295
  onScrollBeginDrag,
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useRef","applyTapZoomAtPoint","getWebAutoPlayTargetPhysicalIndex","getWebScrollPhysicalIndex","resolveWebScrollFinalState","useGestureViewerPaging","adjustedInitialIndex","autoPlay","autoPlayInterval","currentIndex","dataLength","enableDoubleTapZoom","enableHorizontalSwipe","enableLoop","height","onSingleTap","isRotated","isZoomed","itemSpacing","manager","maxZoomScale","scale","scrollTo","syncCurrentIndex","syncPendingIndex","translateX","translateY","width","webSingleTapTimerRef","webScrollRuntimeRef","actor","isAutoplayPausedByUser","lastSettledPhysicalIndex","latestOffsetX","latestRawPhysicalIndex","lastProgrammaticScrollVersion","settleTimer","resumeAutoplayTimer","clearWebSingleTapTimer","current","clearTimeout","clearWebSettleTimer","runtime","clearWebAutoplayResumeTimer","scheduleWebAutoplayResume","setTimeout","pauseWebAutoplayWithoutPagingInteraction","beginWebUserInteraction","force","beginWebAutoplayScroll","getProgrammaticScrollVersion","syncProgrammaticActorFromManager","nextVersion","finalizeWebScroll","offsetX","source","settledByActor","settledState","pageWidth","logicalIndex","rawPhysicalIndex","settledPhysicalIndex","crossedLoopBoundary","cancelPendingLoopTransition","scheduleWebScrollSettle","intervalMs","Math","max","floor","Number","isFinite","interval","setInterval","targetPhysicalIndex","clearInterval","onScroll","event","nativeEvent","contentOffset","x","pendingState","onMomentumScrollEnd","onScrollBeginDrag","handleScrollBeginDrag","onWebClick","detail","rect","currentTarget","getBoundingClientRect","resolvedX","clientX","left","resolvedY","clientY","top","y"],"sourceRoot":"../../src","sources":["useGestureViewerPaging.web.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","applyTapZoomAtPoint","getWebAutoPlayTargetPhysicalIndex","getWebScrollPhysicalIndex","resolveWebScrollFinalState","useGestureViewerPaging","adjustedInitialIndex","autoPlay","autoPlayInterval","contentHeight","contentWidth","currentIndex","dataLength","enableDoubleTapZoom","enableHorizontalSwipe","enableLoop","height","onSingleTap","isRotated","isZoomed","itemSpacing","manager","maxZoomScale","scale","scrollTo","syncCurrentIndex","syncPendingIndex","translateX","translateY","width","activeListIndex","setActiveListIndex","pageStride","webSingleTapTimerRef","webScrollRuntimeRef","actor","isAutoplayPausedByUser","lastSettledPhysicalIndex","latestOffsetX","latestRawPhysicalIndex","lastProgrammaticScrollVersion","settleTimer","resumeAutoplayTimer","previousPagingLayoutRef","clearWebSingleTapTimer","current","clearTimeout","clearWebSettleTimer","runtime","clearWebAutoplayResumeTimer","scheduleWebAutoplayResume","setTimeout","pauseWebAutoplayWithoutPagingInteraction","beginWebUserInteraction","force","beginWebAutoplayScroll","getProgrammaticScrollVersion","syncProgrammaticActorFromManager","nextVersion","finalizeWebScroll","offsetX","source","settledByActor","settledState","pageWidth","logicalIndex","rawPhysicalIndex","settledPhysicalIndex","crossedLoopBoundary","cancelPendingLoopTransition","scheduleWebScrollSettle","previousLayout","shouldResetToInitialIndex","didPageStrideChange","intervalMs","Math","max","floor","Number","isFinite","interval","setInterval","targetPhysicalIndex","clearInterval","onScroll","event","nativeEvent","contentOffset","x","pendingState","onMomentumScrollEnd","onScrollBeginDrag","handleScrollBeginDrag","onWebClick","detail","rect","currentTarget","getBoundingClientRect","resolvedX","clientX","left","resolvedY","clientY","top","get","y"],"sourceRoot":"../../src","sources":["useGestureViewerPaging.web.ts"],"mappings":"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","ignoreList":[]}
@@ -25,10 +25,41 @@ export const isFlashListLike = component => {
25
25
  export const shouldUseNativeScrollGesture = (platformOS, component) => {
26
26
  return platformOS === 'ios' && component !== GestureScrollView && component !== GestureFlatList;
27
27
  };
28
- export const createBoundsConstraint = ({
28
+ export const clampIndex = (index, dataLength) => {
29
+ if (dataLength <= 0) {
30
+ return 0;
31
+ }
32
+ const candidateIndex = index ?? 0;
33
+ if (!Number.isFinite(candidateIndex)) {
34
+ return 0;
35
+ }
36
+ return Math.min(Math.max(Math.trunc(candidateIndex), 0), dataLength - 1);
37
+ };
38
+ export const resolveGeometrySyncTranslationMode = (previousIndex, nextIndex, scale) => {
39
+ if (previousIndex !== null && previousIndex !== nextIndex) {
40
+ return 'reset';
41
+ }
42
+ return scale > 1 ? 'constrain' : 'none';
43
+ };
44
+ const isValidDimension = value => {
45
+ 'worklet';
46
+
47
+ return Number.isFinite(value) && value > 0;
48
+ };
49
+ const clampTranslation = (value, max) => {
50
+ 'worklet';
51
+
52
+ if (max <= 0) {
53
+ return 0;
54
+ }
55
+ const clamped = Math.max(-max, Math.min(max, value));
56
+ return clamped === 0 ? 0 : clamped;
57
+ };
58
+ export const clampTranslationToBounds = ({
29
59
  width,
30
- height
31
- }) => ({
60
+ height,
61
+ contentWidth,
62
+ contentHeight,
32
63
  scale,
33
64
  translateX,
34
65
  translateY
@@ -41,16 +72,17 @@ export const createBoundsConstraint = ({
41
72
  translateY
42
73
  };
43
74
  }
44
- const maxTranslateX = (width * scale - width) / 2;
45
- const maxTranslateY = (height * scale - height) / 2;
75
+ const baseContentWidth = contentWidth !== undefined && isValidDimension(contentWidth) ? contentWidth : width;
76
+ const baseContentHeight = contentHeight !== undefined && isValidDimension(contentHeight) ? contentHeight : height;
77
+ const maxTranslateX = Math.max(0, (baseContentWidth * scale - width) / 2);
78
+ const maxTranslateY = Math.max(0, (baseContentHeight * scale - height) / 2);
46
79
  return {
47
- translateX: Math.max(-maxTranslateX, Math.min(maxTranslateX, translateX)),
48
- translateY: Math.max(-maxTranslateY, Math.min(maxTranslateY, translateY))
80
+ translateX: clampTranslation(translateX, maxTranslateX),
81
+ translateY: clampTranslation(translateY, maxTranslateY)
49
82
  };
50
83
  };
51
- export const createLoopData = (dataRef, enableLoop) => {
52
- const data = dataRef.current;
53
- if (!enableLoop || !data?.length || data.length <= 1) {
84
+ export const createLoopData = (data, enableLoop) => {
85
+ if (!enableLoop || data.length <= 1) {
54
86
  return data;
55
87
  }
56
88
  const lastItem = data.at(-1);
@@ -60,6 +92,7 @@ export const createLoopData = (dataRef, enableLoop) => {
60
92
  }
61
93
  return [lastItem, ...data, firstItem];
62
94
  };
95
+ export const getLoopPhysicalIndex = (logicalIndex, dataLength, enableLoop) => enableLoop && dataLength > 1 ? logicalIndex + 1 : logicalIndex;
63
96
  export const getLoopAdjustedIndex = (scrollIndex, originalDataLength, enableLoop) => {
64
97
  if (!enableLoop || originalDataLength <= 1) {
65
98
  return {
@@ -1 +1 @@
1
- {"version":3,"names":["FlatList","RNFlatList","ScrollView","RNScrollView","GestureFlatList","GestureScrollView","FlashList","isScrollViewLike","component","isFlatListLike","isFlashListLike","displayName","name","shouldUseNativeScrollGesture","platformOS","createBoundsConstraint","width","height","scale","translateX","translateY","maxTranslateX","maxTranslateY","Math","max","min","createLoopData","dataRef","enableLoop","data","current","length","lastItem","at","firstItem","undefined","getLoopAdjustedIndex","scrollIndex","originalDataLength","needsJump","realIndex","jumpToIndex","createScrollAction","listRef","scrollTo","index","animated","scrollToIndex","x"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["FlatList","RNFlatList","ScrollView","RNScrollView","GestureFlatList","GestureScrollView","FlashList","isScrollViewLike","component","isFlatListLike","isFlashListLike","displayName","name","shouldUseNativeScrollGesture","platformOS","clampIndex","index","dataLength","candidateIndex","Number","isFinite","Math","min","max","trunc","resolveGeometrySyncTranslationMode","previousIndex","nextIndex","scale","isValidDimension","value","clampTranslation","clamped","clampTranslationToBounds","width","height","contentWidth","contentHeight","translateX","translateY","baseContentWidth","undefined","baseContentHeight","maxTranslateX","maxTranslateY","createLoopData","data","enableLoop","length","lastItem","at","firstItem","getLoopPhysicalIndex","logicalIndex","getLoopAdjustedIndex","scrollIndex","originalDataLength","needsJump","realIndex","jumpToIndex","createScrollAction","listRef","scrollTo","animated","scrollToIndex","x"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,49 @@
1
1
  "use strict";
2
2
 
3
3
  import { Easing, withTiming } from 'react-native-reanimated';
4
+ import { clampTranslationToBounds } from "./index.js";
5
+ export const getTapZoomTarget = ({
6
+ x,
7
+ y,
8
+ width,
9
+ height,
10
+ contentWidth,
11
+ contentHeight,
12
+ maxZoomScale,
13
+ scale
14
+ }) => {
15
+ 'worklet';
16
+
17
+ const nextScale = scale > 1 ? 1 : maxZoomScale;
18
+ if (nextScale <= 1) {
19
+ return {
20
+ scale: nextScale,
21
+ translateX: 0,
22
+ translateY: 0
23
+ };
24
+ }
25
+ const centerX = x - width / 2;
26
+ const centerY = y - height / 2;
27
+ return {
28
+ scale: nextScale,
29
+ ...clampTranslationToBounds({
30
+ contentHeight,
31
+ contentWidth,
32
+ height,
33
+ scale: nextScale,
34
+ translateX: -centerX * (nextScale - 1),
35
+ translateY: -centerY * (nextScale - 1),
36
+ width
37
+ })
38
+ };
39
+ };
4
40
  export const applyTapZoomAtPoint = ({
5
41
  x,
6
42
  y,
7
43
  width,
8
44
  height,
45
+ contentWidth,
46
+ contentHeight,
9
47
  maxZoomScale,
10
48
  scale,
11
49
  translateX,
@@ -13,22 +51,22 @@ export const applyTapZoomAtPoint = ({
13
51
  }) => {
14
52
  'worklet';
15
53
 
16
- const nextScale = scale.get() > 1 ? 1 : maxZoomScale;
54
+ const target = getTapZoomTarget({
55
+ contentHeight,
56
+ contentWidth,
57
+ height,
58
+ maxZoomScale,
59
+ scale: scale.get(),
60
+ width,
61
+ x,
62
+ y
63
+ });
17
64
  const timingConfig = {
18
65
  duration: 300,
19
66
  easing: Easing.bezier(0.25, 0.1, 0.25, 1)
20
67
  };
21
- if (nextScale > 1) {
22
- const centerX = x - width / 2;
23
- const centerY = y - height / 2;
24
-
25
- // NOTE 확대로 밀려난 거리만큼 반대로 이동해서 탭 지점을 제자리에 유지
26
- translateX.set(withTiming(-centerX * (nextScale - 1), timingConfig));
27
- translateY.set(withTiming(-centerY * (nextScale - 1), timingConfig));
28
- } else {
29
- translateX.set(withTiming(0, timingConfig));
30
- translateY.set(withTiming(0, timingConfig));
31
- }
32
- scale.set(withTiming(nextScale, timingConfig));
68
+ translateX.set(withTiming(target.translateX, timingConfig));
69
+ translateY.set(withTiming(target.translateY, timingConfig));
70
+ scale.set(withTiming(target.scale, timingConfig));
33
71
  };
34
72
  //# sourceMappingURL=tapZoom.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Easing","withTiming","applyTapZoomAtPoint","x","y","width","height","maxZoomScale","scale","translateX","translateY","nextScale","get","timingConfig","duration","easing","bezier","centerX","centerY","set"],"sourceRoot":"../../../src","sources":["utils/tapZoom.ts"],"mappings":";;AACA,SAASA,MAAM,EAAEC,UAAU,QAAQ,yBAAyB;AAE5D,OAAO,MAAMC,mBAAmB,GAAGA,CAAC;EAClCC,CAAC;EACDC,CAAC;EACDC,KAAK;EACLC,MAAM;EACNC,YAAY;EACZC,KAAK;EACLC,UAAU;EACVC;AAUF,CAAC,KAAK;EACJ,SAAS;;EAET,MAAMC,SAAS,GAAGH,KAAK,CAACI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAGL,YAAY;EACpD,MAAMM,YAAY,GAAG;IACnBC,QAAQ,EAAE,GAAG;IACbC,MAAM,EAAEf,MAAM,CAACgB,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;EAC1C,CAAC;EAED,IAAIL,SAAS,GAAG,CAAC,EAAE;IACjB,MAAMM,OAAO,GAAGd,CAAC,GAAGE,KAAK,GAAG,CAAC;IAC7B,MAAMa,OAAO,GAAGd,CAAC,GAAGE,MAAM,GAAG,CAAC;;IAE9B;IACAG,UAAU,CAACU,GAAG,CAAClB,UAAU,CAAC,CAACgB,OAAO,IAAIN,SAAS,GAAG,CAAC,CAAC,EAAEE,YAAY,CAAC,CAAC;IACpEH,UAAU,CAACS,GAAG,CAAClB,UAAU,CAAC,CAACiB,OAAO,IAAIP,SAAS,GAAG,CAAC,CAAC,EAAEE,YAAY,CAAC,CAAC;EACtE,CAAC,MAAM;IACLJ,UAAU,CAACU,GAAG,CAAClB,UAAU,CAAC,CAAC,EAAEY,YAAY,CAAC,CAAC;IAC3CH,UAAU,CAACS,GAAG,CAAClB,UAAU,CAAC,CAAC,EAAEY,YAAY,CAAC,CAAC;EAC7C;EAEAL,KAAK,CAACW,GAAG,CAAClB,UAAU,CAACU,SAAS,EAAEE,YAAY,CAAC,CAAC;AAChD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Easing","withTiming","clampTranslationToBounds","getTapZoomTarget","x","y","width","height","contentWidth","contentHeight","maxZoomScale","scale","nextScale","translateX","translateY","centerX","centerY","applyTapZoomAtPoint","target","get","timingConfig","duration","easing","bezier","set"],"sourceRoot":"../../../src","sources":["utils/tapZoom.ts"],"mappings":";;AACA,SAASA,MAAM,EAAEC,UAAU,QAAQ,yBAAyB;AAE5D,SAASC,wBAAwB,QAAQ,YAAG;AAE5C,OAAO,MAAMC,gBAAgB,GAAGA,CAAC;EAC/BC,CAAC;EACDC,CAAC;EACDC,KAAK;EACLC,MAAM;EACNC,YAAY;EACZC,aAAa;EACbC,YAAY;EACZC;AAUF,CAAC,KAAK;EACJ,SAAS;;EAET,MAAMC,SAAS,GAAGD,KAAK,GAAG,CAAC,GAAG,CAAC,GAAGD,YAAY;EAE9C,IAAIE,SAAS,IAAI,CAAC,EAAE;IAClB,OAAO;MACLD,KAAK,EAAEC,SAAS;MAChBC,UAAU,EAAE,CAAC;MACbC,UAAU,EAAE;IACd,CAAC;EACH;EAEA,MAAMC,OAAO,GAAGX,CAAC,GAAGE,KAAK,GAAG,CAAC;EAC7B,MAAMU,OAAO,GAAGX,CAAC,GAAGE,MAAM,GAAG,CAAC;EAC9B,OAAO;IACLI,KAAK,EAAEC,SAAS;IAChB,GAAGV,wBAAwB,CAAC;MAC1BO,aAAa;MACbD,YAAY;MACZD,MAAM;MACNI,KAAK,EAAEC,SAAS;MAChBC,UAAU,EAAE,CAACE,OAAO,IAAIH,SAAS,GAAG,CAAC,CAAC;MACtCE,UAAU,EAAE,CAACE,OAAO,IAAIJ,SAAS,GAAG,CAAC,CAAC;MACtCN;IACF,CAAC;EACH,CAAC;AACH,CAAC;AAED,OAAO,MAAMW,mBAAmB,GAAGA,CAAC;EAClCb,CAAC;EACDC,CAAC;EACDC,KAAK;EACLC,MAAM;EACNC,YAAY;EACZC,aAAa;EACbC,YAAY;EACZC,KAAK;EACLE,UAAU;EACVC;AAYF,CAAC,KAAK;EACJ,SAAS;;EAET,MAAMI,MAAM,GAAGf,gBAAgB,CAAC;IAC9BM,aAAa;IACbD,YAAY;IACZD,MAAM;IACNG,YAAY;IACZC,KAAK,EAAEA,KAAK,CAACQ,GAAG,CAAC,CAAC;IAClBb,KAAK;IACLF,CAAC;IACDC;EACF,CAAC,CAAC;EACF,MAAMe,YAAY,GAAG;IACnBC,QAAQ,EAAE,GAAG;IACbC,MAAM,EAAEtB,MAAM,CAACuB,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;EAC1C,CAAC;EAEDV,UAAU,CAACW,GAAG,CAACvB,UAAU,CAACiB,MAAM,CAACL,UAAU,EAAEO,YAAY,CAAC,CAAC;EAC3DN,UAAU,CAACU,GAAG,CAACvB,UAAU,CAACiB,MAAM,CAACJ,UAAU,EAAEM,YAAY,CAAC,CAAC;EAE3DT,KAAK,CAACa,GAAG,CAACvB,UAAU,CAACiB,MAAM,CAACP,KAAK,EAAES,YAAY,CAAC,CAAC;AACnD,CAAC","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;AAWlD,wBAAgB,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,EACvC,EAAc,EACd,IAAI,EACJ,UAAU,EAAE,cAAc,EAC1B,eAAe,EACf,aAAa,EACb,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,YAAY,EACpB,SAAS,EACT,aAAa,EAAE,kBAAkB,EACjC,cAAc,EACd,YAAgB,EAChB,WAAe,EACf,cAAsB,EACtB,UAAkB,EAClB,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,2CAqM/B"}
1
+ {"version":3,"file":"GestureViewer.d.ts","sourceRoot":"","sources":["../../../src/GestureViewer.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAEV,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AAsCjB,wBAAgB,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,EACvC,EAAc,EACd,IAAI,EACJ,UAAU,EAAE,cAAc,EAC1B,eAAe,EACf,aAAa,EACb,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,YAAY,EACpB,SAAS,EACT,aAAa,EAAE,kBAAkB,EACjC,cAAc,EACd,YAAgB,EAChB,WAAe,EACf,cAAsB,EACtB,UAAkB,EAClB,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,2CAoN/B"}
@@ -1,9 +1,18 @@
1
1
  import { type SharedValue } from 'react-native-reanimated';
2
2
  import type { GestureViewerEventCallback, GestureViewerEventData, GestureViewerEventType, GestureViewerState } from './types';
3
+ type ZoomSharedValuesOptions = {
4
+ scale: SharedValue<number>;
5
+ translateX: SharedValue<number>;
6
+ translateY: SharedValue<number>;
7
+ maxZoomScale: number;
8
+ contentWidth?: SharedValue<number>;
9
+ contentHeight?: SharedValue<number>;
10
+ };
3
11
  declare class GestureViewerManager {
4
12
  private currentIndex;
5
13
  private dataLength;
6
- private width;
14
+ private pagingStride;
15
+ private viewportWidth;
7
16
  private height;
8
17
  private maxZoomScale;
9
18
  private enableHorizontalSwipe;
@@ -13,6 +22,8 @@ declare class GestureViewerManager {
13
22
  private rotation;
14
23
  private translateX;
15
24
  private translateY;
25
+ private contentWidth;
26
+ private contentHeight;
16
27
  private resetTransformCallback;
17
28
  private loopCallback;
18
29
  private programmaticScrollVersion;
@@ -28,13 +39,14 @@ declare class GestureViewerManager {
28
39
  getState(): GestureViewerState;
29
40
  getProgrammaticScrollVersion(): number;
30
41
  setEnableLoop(enabled: boolean): void;
31
- setWidth(width: number): void;
42
+ setPagingStride(pagingStride: number): void;
43
+ setViewportWidth(width: number): void;
32
44
  setHeight(height: number): void;
33
45
  setListRef(ref: any): void;
34
46
  setDataLength(length: number): void;
35
47
  setEnableHorizontalSwipe(enabled: boolean): void;
36
48
  setCurrentIndex(index: number): void;
37
- setZoomSharedValues(scale: SharedValue<number>, translateX: SharedValue<number>, translateY: SharedValue<number>, maxZoomScale: number): void;
49
+ setZoomSharedValues({ scale, translateX, translateY, maxZoomScale, contentWidth, contentHeight, }: ZoomSharedValuesOptions): void;
38
50
  setResetTransformCallback(callback: (() => void) | null): void;
39
51
  notifyStateChange(): void;
40
52
  setRotation(rotation: SharedValue<number>): void;
@@ -50,6 +62,7 @@ declare class GestureViewerManager {
50
62
  goToNext: () => void;
51
63
  cleanUp(): void;
52
64
  private updateCurrentIndex;
65
+ private constrainZoomTranslation;
53
66
  }
54
67
  export default GestureViewerManager;
55
68
  //# sourceMappingURL=GestureViewerManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GestureViewerManager.d.ts","sourceRoot":"","sources":["../../../src/GestureViewerManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAc,MAAM,yBAAyB,CAAC;AAEvE,OAAO,KAAK,EACV,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAGjB,cAAM,oBAAoB;IACxB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,qBAAqB,CAAQ;IACrC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAoB;IAEnC,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,sBAAsB,CAA6B;IAE3D,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,yBAAyB,CAAK;IAEtC,OAAO,CAAC,SAAS,CAAkD;IACnE,OAAO,CAAC,cAAc,CAA+D;IAErF,OAAO,CAAC,eAAe;IAMvB,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI;IAQvD,gBAAgB,CAAC,CAAC,SAAS,sBAAsB,EAC/C,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,0BAA0B,CAAC,CAAC,CAAC;IAqBzC,OAAO,CAAC,SAAS;IAWjB,cAAc,GAAI,OAAO,MAAM,EAAE,eAAe,MAAM,GAAG,IAAI,UAE3D;IAEF,kBAAkB,GAAI,UAAU,MAAM,EAAE,kBAAkB,MAAM,GAAG,IAAI,UAErE;IAEF,OAAO,GAAI,MAAM,sBAAsB,CAAC,KAAK,CAAC,UAE5C;IAEF,QAAQ,IAAI,kBAAkB;IAO9B,4BAA4B;IAI5B,aAAa,CAAC,OAAO,EAAE,OAAO;IAI9B,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,SAAS,CAAC,MAAM,EAAE,MAAM;IAIxB,UAAU,CAAC,GAAG,EAAE,GAAG;IAInB,aAAa,CAAC,MAAM,EAAE,MAAM;IAI5B,wBAAwB,CAAC,OAAO,EAAE,OAAO;IAIzC,eAAe,CAAC,KAAK,EAAE,MAAM;IAM7B,mBAAmB,CACjB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAC1B,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAC/B,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAC/B,YAAY,EAAE,MAAM;IAQtB,yBAAyB,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI;IAIvD,iBAAiB;IAIjB,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC;IAIzC,MAAM,GAAI,QAAO,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAQ,EAAE,mBAAgB,UA+B9D;IAEF,MAAM,GAAI,mBAAiB,UA0BzB;IAEF,OAAO,GAAI,mBAAiB,UAgC1B;IAEF,SAAS,GAAI,cAAS,UAcpB;IAEF,SAAS,GAAI,OAAO,MAAM,UAoDxB;IAEF,uBAAuB,GAAI,aAAa,MAAM,aAY5C;IAEF,2BAA2B,aAEzB;IAEF,qBAAqB,aAEnB;IAEF,YAAY,aAEV;IAEF,QAAQ,aAEN;IAEF,OAAO;IAgBP,OAAO,CAAC,kBAAkB,CAGxB;CACH;AAED,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"GestureViewerManager.d.ts","sourceRoot":"","sources":["../../../src/GestureViewerManager.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  export type { GestureTriggerProps } from './GestureTrigger';
2
2
  export { GestureTrigger } from './GestureTrigger';
3
3
  export { GestureViewer } from './GestureViewer';
4
- export type { GestureViewerController, GestureViewerEventCallback, GestureViewerEventData, GestureViewerEventType, GestureViewerProps, GestureViewerState, GestureViewerSingleTapEvent, } from './types';
4
+ export type { GestureViewerController, GestureViewerEventCallback, GestureViewerEventData, GestureViewerEventType, GestureViewerItemDimensions, GestureViewerItemDimensionsResolver, GestureViewerItemKey, GestureViewerItemKeyResolver, GestureViewerProps, GestureViewerRenderItemInfo, GestureViewerState, GestureViewerSingleTapEvent, } from './types';
5
5
  export { useGestureViewerController } from './useGestureViewerController';
6
6
  export { useGestureViewerEvent } from './useGestureViewerEvent';
7
7
  export { useGestureViewerState } from './useGestureViewerState';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EACV,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EACV,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,mCAAmC,EACnC,oBAAoB,EACpB,4BAA4B,EAC5B,kBAAkB,EAClB,2BAA2B,EAC3B,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { GestureViewerItemDimensions, GestureViewerItemDimensionsResolver, GestureViewerItemKey, GestureViewerItemKeyResolver } from './types';
2
+ type ItemDimensionsRegistryEntry<ItemT> = Readonly<{
3
+ item: ItemT;
4
+ itemKey?: GestureViewerItemKey;
5
+ dimensions: GestureViewerItemDimensions;
6
+ }>;
7
+ export type ItemDimensionsRegistry<ItemT> = Map<number, ItemDimensionsRegistryEntry<ItemT>>;
8
+ export declare const isValidItemDimensions: (dimensions: GestureViewerItemDimensions | null | undefined) => dimensions is GestureViewerItemDimensions;
9
+ export declare const pruneItemDimensionsRegistry: <ItemT>(registry: ItemDimensionsRegistry<ItemT>, dataLength: number) => void;
10
+ export declare const resolveItemDimensions: <ItemT>({ registry, data, index, getItemDimensions, getItemKey, }: {
11
+ registry: ItemDimensionsRegistry<ItemT>;
12
+ data: readonly ItemT[];
13
+ index: number;
14
+ getItemDimensions?: GestureViewerItemDimensionsResolver<ItemT>;
15
+ getItemKey?: GestureViewerItemKeyResolver<ItemT>;
16
+ }) => GestureViewerItemDimensions | undefined;
17
+ export declare const registerItemDimensions: <ItemT>({ registry, data, index, item, dimensions, getItemKey, }: {
18
+ registry: ItemDimensionsRegistry<ItemT>;
19
+ data: readonly ItemT[];
20
+ index: number;
21
+ item: ItemT;
22
+ dimensions: GestureViewerItemDimensions;
23
+ getItemKey?: GestureViewerItemKeyResolver<ItemT>;
24
+ }) => boolean;
25
+ export {};
26
+ //# sourceMappingURL=itemDimensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"itemDimensions.d.ts","sourceRoot":"","sources":["../../../src/itemDimensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,mCAAmC,EACnC,oBAAoB,EACpB,4BAA4B,EAC7B,MAAM,SAAS,CAAC;AAEjB,KAAK,2BAA2B,CAAC,KAAK,IAAI,QAAQ,CAAC;IACjD,IAAI,EAAE,KAAK,CAAC;IACZ,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,UAAU,EAAE,2BAA2B,CAAC;CACzC,CAAC,CAAC;AAEH,MAAM,MAAM,sBAAsB,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAAC;AAE5F,eAAO,MAAM,qBAAqB,GAChC,YAAY,2BAA2B,GAAG,IAAI,GAAG,SAAS,KACzD,UAAU,IAAI,2BAShB,CAAC;AA4BF,eAAO,MAAM,2BAA2B,GAAI,KAAK,EAC/C,UAAU,sBAAsB,CAAC,KAAK,CAAC,EACvC,YAAY,MAAM,KACjB,IAMF,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,KAAK,EAAE,2DAM1C;IACD,QAAQ,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,EAAE,SAAS,KAAK,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,mCAAmC,CAAC,KAAK,CAAC,CAAC;IAC/D,UAAU,CAAC,EAAE,4BAA4B,CAAC,KAAK,CAAC,CAAC;CAClD,KAAG,2BAA2B,GAAG,SA0BjC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,KAAK,EAAE,0DAO3C;IACD,QAAQ,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,EAAE,SAAS,KAAK,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,CAAC;IACZ,UAAU,EAAE,2BAA2B,CAAC;IACxC,UAAU,CAAC,EAAE,4BAA4B,CAAC,KAAK,CAAC,CAAC;CAClD,KAAG,OA0CH,CAAC"}
@@ -31,6 +31,31 @@ export type GestureViewerSingleTapEvent<ItemT> = {
31
31
  index: number;
32
32
  item: ItemT;
33
33
  };
34
+ export type GestureViewerItemDimensions = Readonly<{
35
+ /**
36
+ * Natural/source content width. Must be finite and greater than zero.
37
+ */
38
+ width: number;
39
+ /**
40
+ * Natural/source content height. Must be finite and greater than zero.
41
+ */
42
+ height: number;
43
+ }>;
44
+ export type GestureViewerItemDimensionsResolver<ItemT> = (item: ItemT, index: number) => GestureViewerItemDimensions | undefined;
45
+ export type GestureViewerItemKey = string | number;
46
+ export type GestureViewerItemKeyResolver<ItemT> = (item: ItemT, index: number) => GestureViewerItemKey;
47
+ export type GestureViewerRenderItemInfo = {
48
+ /**
49
+ * Whether the rendered item is currently active.
50
+ * @remarks The current item remains active during a page transition. When the transition finishes on another item, that item becomes active.
51
+ */
52
+ readonly isActive: boolean;
53
+ /**
54
+ * Registers natural/source dimensions for the rendered item after they become available.
55
+ * @remarks Call this from an image load/event callback or a passive effect after commit. Do not call it directly while rendering or from descendant layout effects.
56
+ */
57
+ readonly setItemDimensions: (dimensions: GestureViewerItemDimensions) => void;
58
+ };
34
59
  export type GestureViewerDismissDirection = 'down' | 'up' | 'both';
35
60
  export interface TriggerAnimationConfig extends WithTimingConfig {
36
61
  /**
@@ -61,6 +86,7 @@ export interface GestureViewerProps<ItemT, LC> {
61
86
  data: ItemT[];
62
87
  /**
63
88
  * The index of the item to display in the `GestureViewer` when the component is mounted.
89
+ * @remarks The value is normalized to the current data: non-finite or negative values use `0`, values above the available range use the last index, and empty data uses `0`. Updating this prop repositions a mounted viewer.
64
90
  * @defaultValue 0
65
91
  */
66
92
  initialIndex?: number;
@@ -75,8 +101,11 @@ export interface GestureViewerProps<ItemT, LC> {
75
101
  onDismissStart?: () => void;
76
102
  /**
77
103
  * A callback function that is called to render the item.
104
+ * @param item - The item to render.
105
+ * @param index - The list index of the rendered item.
106
+ * @param info - Render state for this list cell.
78
107
  */
79
- renderItem: (item: ItemT, index: number) => React.ReactElement;
108
+ renderItem: (item: ItemT, index: number, info: GestureViewerRenderItemInfo) => React.ReactElement;
80
109
  /**
81
110
  * A callback function that is called when a single tap is confirmed on the viewer content.
82
111
  * @remarks
@@ -85,6 +114,16 @@ export interface GestureViewerProps<ItemT, LC> {
85
114
  * - Prefer this callback over overlaying a pressable in `renderContainer` for fullscreen tap handling.
86
115
  */
87
116
  onSingleTap?: (event: GestureViewerSingleTapEvent<ItemT>) => void;
117
+ /**
118
+ * Returns natural/source dimensions for an item when they are already known.
119
+ * @remarks Return `undefined` while dimensions are unavailable. Invalid dimensions fall back to the viewer cell size.
120
+ */
121
+ getItemDimensions?: GestureViewerItemDimensionsResolver<ItemT>;
122
+ /**
123
+ * Returns a stable key used to retain loaded dimensions when equivalent item objects are recreated at the same index.
124
+ * @remarks Keys must be unique within `data` and change when the rendered content's natural dimensions can change. Do not use the index by itself. This is only needed when object items are recreated and dimensions are reported through `setItemDimensions`.
125
+ */
126
+ getItemKey?: GestureViewerItemKeyResolver<ItemT>;
88
127
  /**
89
128
  * A callback function that is called to render the container.
90
129
  * @remarks Useful for composing additional UI (e.g., close button, toolbars) around the viewer.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import type { GestureViewerProps } from './types';
1
+ import type { GestureViewerItemDimensions, GestureViewerProps } from './types';
2
2
  type UseGestureViewerProps<ItemT, LC> = Omit<GestureViewerProps<ItemT, LC>, 'renderItem' | 'renderContainer' | 'ListComponent' | 'listProps' | 'containerStyle' | 'backdropStyle' | 'enableSnapMode'>;
3
- export declare const useGestureViewer: <ItemT, LC>({ data, initialIndex, onDismiss, onSingleTap, width: customWidth, dismiss, enableDoubleTapZoom, enablePinchZoom, enableHorizontalSwipe, enablePanWhenZoomed, enableLoop, maxZoomScale, itemSpacing, height: customHeight, id, onDismissStart, triggerAnimation, autoPlay, autoPlayInterval, }: UseGestureViewerProps<ItemT, LC>) => {
3
+ export declare const useGestureViewer: <ItemT, LC>({ data, initialIndex, onDismiss, onSingleTap, width: customWidth, dismiss, enableDoubleTapZoom, enablePinchZoom, enableHorizontalSwipe, enablePanWhenZoomed, enableLoop, maxZoomScale, itemSpacing, height: customHeight, id, onDismissStart, triggerAnimation, autoPlay, autoPlayInterval, getItemDimensions, getItemKey, }: UseGestureViewerProps<ItemT, LC>) => {
4
+ activeListIndex: number;
4
5
  animatedStyle: import("react-native-reanimated/lib/typescript/hook/commonTypes").AnimatedStyleHandle<{
5
6
  opacity: number;
6
7
  transform: ({
@@ -40,6 +41,7 @@ export declare const useGestureViewer: <ItemT, LC>({ data, initialIndex, onDismi
40
41
  onMomentumScrollEnd: ((event: import("react-native").NativeSyntheticEvent<import("react-native").NativeScrollEvent>) => void) | undefined;
41
42
  onScroll: ((event: import("react-native").NativeSyntheticEvent<import("react-native").NativeScrollEvent>) => void) | undefined;
42
43
  onScrollBeginDrag: ((event: import("react-native").NativeSyntheticEvent<import("react-native").NativeScrollEvent>) => void) | undefined;
44
+ setItemDimensions: (listIndex: number, item: ItemT, dimensions: GestureViewerItemDimensions) => void;
43
45
  zoomGesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/gestureComposition").ComposedGesture;
44
46
  };
45
47
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"useGestureViewer.d.ts","sourceRoot":"","sources":["../../../src/useGestureViewer.ts"],"names":[],"mappings":"AAiBA,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkyBlC,CAAC"}
1
+ {"version":3,"file":"useGestureViewer.d.ts","sourceRoot":"","sources":["../../../src/useGestureViewer.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,2BAA2B,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAC;AAc5F,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;AAuCF,eAAO,MAAM,gBAAgB,GAAI,KAAK,EAAE,EAAE,EAAE,8TAsBzC,qBAAqB,CAAC,KAAK,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAqJnB,MAAM,QAAQ,KAAK,cAAc,2BAA2B;;CAk6B3E,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import type { UseGestureViewerPagingArgs, UseGestureViewerPagingResult } from './useGestureViewerPaging.types';
2
- export declare function useGestureViewerPaging({ autoPlay, autoPlayInterval, currentIndex, dataLength, enableHorizontalSwipe, enableLoop, isRotated, isZoomed, itemSpacing, manager, scrollTo, syncCurrentIndex, syncPendingIndex, width, }: UseGestureViewerPagingArgs): UseGestureViewerPagingResult;
2
+ export declare function useGestureViewerPaging({ adjustedInitialIndex, autoPlay, autoPlayInterval, currentIndex, dataLength, enableHorizontalSwipe, enableLoop, isRotated, isZoomed, itemSpacing, manager, scrollTo, syncCurrentIndex, syncPendingIndex, width, }: UseGestureViewerPagingArgs): UseGestureViewerPagingResult;
3
3
  //# sourceMappingURL=useGestureViewerPaging.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGestureViewerPaging.d.ts","sourceRoot":"","sources":["../../../src/useGestureViewerPaging.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,0BAA0B,EAC1B,4BAA4B,EAC7B,MAAM,gCAAgC,CAAC;AAGxC,wBAAgB,sBAAsB,CAAC,EACrC,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,QAAQ,EACR,WAAW,EACX,OAAO,EACP,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,GACN,EAAE,0BAA0B,GAAG,4BAA4B,CAuG3D"}
1
+ {"version":3,"file":"useGestureViewerPaging.d.ts","sourceRoot":"","sources":["../../../src/useGestureViewerPaging.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,0BAA0B,EAC1B,4BAA4B,EAC7B,MAAM,gCAAgC,CAAC;AAGxC,wBAAgB,sBAAsB,CAAC,EACrC,oBAAoB,EACpB,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,QAAQ,EACR,WAAW,EACX,OAAO,EACP,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,GACN,EAAE,0BAA0B,GAAG,4BAA4B,CAoH3D"}