react-native-gesture-image-viewer 1.0.0 → 1.1.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.
package/README.md CHANGED
@@ -261,7 +261,6 @@ function App() {
261
261
  <GestureViewer
262
262
  animateBackdrop={false}
263
263
  width={400}
264
- itemSpacing={20}
265
264
  containerStyle={{ /* ... */ }}
266
265
  backdropStyle={{ backgroundColor: 'rgba(0, 0, 0, 0.90)' }}
267
266
  renderContainer={(children) => <View style={{ flex: 1 }}>{children}</View>}
@@ -274,7 +273,6 @@ function App() {
274
273
  |:--:|:-----|:--:|
275
274
  |`animateBackdrop`|By default, the background `opacity` gradually decreases from 1 to 0 during downward swipe gestures. When `false`, this animation is disabled.|`true`|
276
275
  |`width`|The width of content items. Default is window width.|`Dimensions width`|
277
- |`itemSpacing`|Specifies the spacing between list items.|`0`|
278
276
  |`containerStyle`|Allows custom styling of the container that wraps the list component.|`flex: 1`|
279
277
  |`backdropStyle`|Allows customization of the viewer's background style.|`backgroundColor: black; StyleSheet.absoluteFill;`|
280
278
  |`renderContainer`|Allows custom wrapper component around `<GestureViewer />`.||
@@ -332,6 +330,41 @@ function App() {
332
330
  }
333
331
  ```
334
332
 
333
+ #### `useSnap`
334
+ Sets the scroll behavior mode. `false` (default) uses paging mode, `true` uses snap mode.
335
+
336
+ ```tsx
337
+ import { GestureViewer } from 'react-native-gesture-image-viewer';
338
+
339
+ function App() {
340
+ return (
341
+ <GestureViewer
342
+ data={data}
343
+ renderItem={renderItem}
344
+ useSnap={true}
345
+ />
346
+ );
347
+ }
348
+ ```
349
+
350
+ #### `itemSpacing`
351
+ Sets the spacing between items in pixels. Only applied when `useSnap` is `true`.
352
+
353
+ ```tsx
354
+ import { GestureViewer } from 'react-native-gesture-image-viewer';
355
+
356
+ function App() {
357
+ return (
358
+ <GestureViewer
359
+ data={data}
360
+ renderItem={renderItem}
361
+ useSnap={true}
362
+ itemSpacing={16} // 16px spacing between items
363
+ />
364
+ );
365
+ }
366
+ ```
367
+
335
368
  #### `initialIndex` (default: `0`)
336
369
  Sets the initial index value.
337
370
 
@@ -21,13 +21,14 @@ export function GestureViewer({
21
21
  containerStyle,
22
22
  initialIndex = 0,
23
23
  itemSpacing = 0,
24
+ useSnap = false,
24
25
  ...props
25
26
  }) {
26
27
  const Component = ListComponent;
27
28
  const {
28
29
  width: screenWidth
29
30
  } = useWindowDimensions();
30
- const width = customWidth || screenWidth;
31
+ const width = useSnap ? customWidth || screenWidth : screenWidth;
31
32
  const {
32
33
  listRef,
33
34
  isZoomed,
@@ -42,6 +43,7 @@ export function GestureViewer({
42
43
  width,
43
44
  initialIndex,
44
45
  itemSpacing,
46
+ useSnap,
45
47
  ...props
46
48
  });
47
49
  const renderItem = useCallback(({
@@ -50,7 +52,7 @@ export function GestureViewer({
50
52
  }) => {
51
53
  return /*#__PURE__*/_jsx(View, {
52
54
  style: [{
53
- width: width,
55
+ width,
54
56
  height: '100%',
55
57
  justifyContent: 'center',
56
58
  alignItems: 'center',
@@ -77,12 +79,16 @@ export function GestureViewer({
77
79
  scrollEnabled: !isZoomed,
78
80
  showsHorizontalScrollIndicator: false,
79
81
  onMomentumScrollEnd: onMomentumScrollEnd,
80
- snapToInterval: width + itemSpacing,
81
- snapToAlignment: 'center',
82
- decelerationRate: 'fast',
82
+ ...(useSnap ? {
83
+ snapToInterval: width + itemSpacing,
84
+ snapToAlignment: 'center',
85
+ decelerationRate: 'fast'
86
+ } : {
87
+ pagingEnabled: true
88
+ }),
83
89
  scrollEventThrottle: 16,
84
90
  removeClippedSubviews: true
85
- }), [width, itemSpacing, isZoomed, onMomentumScrollEnd]);
91
+ }), [width, itemSpacing, isZoomed, onMomentumScrollEnd, useSnap]);
86
92
  const listComponent = /*#__PURE__*/_jsx(GestureHandlerRootView, {
87
93
  children: /*#__PURE__*/_jsx(GestureDetector, {
88
94
  gesture: gesture,
@@ -111,9 +117,6 @@ export function GestureViewer({
111
117
  data: data,
112
118
  renderItem: renderItem,
113
119
  initialScrollIndex: initialIndex,
114
- style: {
115
- height: '100%'
116
- },
117
120
  keyExtractor: keyExtractor,
118
121
  windowSize: 3,
119
122
  maxToRenderPerBatch: 3,
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useMemo","Platform","StyleSheet","useWindowDimensions","View","Gesture","GestureDetector","GestureHandlerRootView","Animated","registry","useGestureViewer","isFlashListLike","isFlatListLike","isScrollViewLike","WebPagingFixStyle","jsx","_jsx","jsxs","_jsxs","GestureViewer","id","data","renderItem","renderItemProp","renderContainer","ListComponent","width","customWidth","listProps","backdropStyle","backdropStyleProps","containerStyle","initialIndex","itemSpacing","props","Component","screenWidth","listRef","isZoomed","dismissGesture","zoomGesture","onMomentumScrollEnd","animatedStyle","item","index","style","height","justifyContent","alignItems","marginHorizontal","children","getItemLayout","_","length","offset","keyExtractor","gesture","Race","createManager","deleteManager","commonProps","horizontal","scrollEnabled","showsHorizontalScrollIndicator","snapToInterval","snapToAlignment","decelerationRate","scrollEventThrottle","removeClippedSubviews","listComponent","styles","container","background","content","OS","dataSet","ref","map","initialScrollIndex","windowSize","maxToRenderPerBatch","estimatedItemSize","create","flex","position","top","left","right","bottom","backgroundColor"],"sourceRoot":"../../src","sources":["GestureViewer.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","Platform","StyleSheet","useWindowDimensions","View","Gesture","GestureDetector","GestureHandlerRootView","Animated","registry","useGestureViewer","isFlashListLike","isFlatListLike","isScrollViewLike","WebPagingFixStyle","jsx","_jsx","jsxs","_jsxs","GestureViewer","id","data","renderItem","renderItemProp","renderContainer","ListComponent","width","customWidth","listProps","backdropStyle","backdropStyleProps","containerStyle","initialIndex","itemSpacing","useSnap","props","Component","screenWidth","listRef","isZoomed","dismissGesture","zoomGesture","onMomentumScrollEnd","animatedStyle","item","index","style","height","justifyContent","alignItems","marginHorizontal","children","getItemLayout","_","length","offset","keyExtractor","gesture","Race","createManager","deleteManager","commonProps","horizontal","scrollEnabled","showsHorizontalScrollIndicator","snapToInterval","snapToAlignment","decelerationRate","pagingEnabled","scrollEventThrottle","removeClippedSubviews","listComponent","styles","container","background","content","OS","dataSet","ref","map","initialScrollIndex","windowSize","maxToRenderPerBatch","estimatedItemSize","create","flex","position","top","left","right","bottom","backgroundColor"],"sourceRoot":"../../src","sources":["GestureViewer.tsx"],"mappings":"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","ignoreList":[]}
@@ -23,13 +23,14 @@ export const useGestureViewer = ({
23
23
  enableZoomPanGesture = true,
24
24
  maxZoomScale = 2,
25
25
  itemSpacing = 0,
26
+ useSnap = false,
26
27
  id = 'default'
27
28
  }) => {
28
29
  const {
29
30
  width: screenWidth,
30
31
  height: screenHeight
31
32
  } = useWindowDimensions();
32
- const width = customWidth || screenWidth;
33
+ const width = useSnap ? customWidth || screenWidth : screenWidth;
33
34
  const [isZoomed, setIsZoomed] = useState(false);
34
35
  const [currentIndex, setCurrentIndex] = useState(initialIndex);
35
36
  const [manager, setManager] = useState(null);
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","InteractionManager","useWindowDimensions","Gesture","Easing","interpolate","runOnJS","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","registry","useGestureViewer","data","initialIndex","onIndexChange","onDismiss","width","customWidth","dismissThreshold","resistance","animateBackdrop","enableDismissGesture","enableSwipeGesture","enableZoomGesture","enableDoubleTapGesture","enableZoomPanGesture","maxZoomScale","itemSpacing","id","screenWidth","height","screenHeight","isZoomed","setIsZoomed","currentIndex","setCurrentIndex","manager","setManager","unsubscribeRef","initialTranslateY","initialTranslateX","startScale","translateY","translateX","scale","backdropOpacity","listRef","dataLength","length","value","currentScale","handleManagerChange","current","getState","subscribe","state","unsubscribeFromRegistry","subscribeToManager","setDataLength","setEnableSwipeGesture","setWidth","notifyStateChange","setListRef","runAfterInteractions","scrollToIndex","index","animated","scrollTo","x","cancel","onMomentumScrollEnd","event","contentOffset","nativeEvent","newIndex","Math","round","dismissGesture","Pan","minDistance","averageTouches","activeOffsetY","failOffsetX","enabled","onUpdate","translationY","onEnd","damping","stiffness","zoomPinchGesture","Pinch","onBegin","duration","easing","bezier","zoomPanGesture","maxTranslateX","maxTranslateY","max","min","translationX","doubleTapGesture","Tap","numberOfTaps","nextScale","zoomGesture","Simultaneous","animatedStyle","transform","backdropStyle","opacity"],"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","runOnJS","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","registry","useGestureViewer","data","initialIndex","onIndexChange","onDismiss","width","customWidth","dismissThreshold","resistance","animateBackdrop","enableDismissGesture","enableSwipeGesture","enableZoomGesture","enableDoubleTapGesture","enableZoomPanGesture","maxZoomScale","itemSpacing","useSnap","id","screenWidth","height","screenHeight","isZoomed","setIsZoomed","currentIndex","setCurrentIndex","manager","setManager","unsubscribeRef","initialTranslateY","initialTranslateX","startScale","translateY","translateX","scale","backdropOpacity","listRef","dataLength","length","value","currentScale","handleManagerChange","current","getState","subscribe","state","unsubscribeFromRegistry","subscribeToManager","setDataLength","setEnableSwipeGesture","setWidth","notifyStateChange","setListRef","runAfterInteractions","scrollToIndex","index","animated","scrollTo","x","cancel","onMomentumScrollEnd","event","contentOffset","nativeEvent","newIndex","Math","round","dismissGesture","Pan","minDistance","averageTouches","activeOffsetY","failOffsetX","enabled","onUpdate","translationY","onEnd","damping","stiffness","zoomPinchGesture","Pinch","onBegin","duration","easing","bezier","zoomPanGesture","maxTranslateX","maxTranslateY","max","min","translationX","doubleTapGesture","Tap","numberOfTaps","nextScale","zoomGesture","Simultaneous","animatedStyle","transform","backdropStyle","opacity"],"sourceRoot":"../../src","sources":["useGestureViewer.ts"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  import { type FlatList } from 'react-native';
2
2
  import type { GestureViewerProps } from './types';
3
- export declare function GestureViewer<T = any, LC = typeof FlatList>({ id, data, renderItem: renderItemProp, renderContainer, ListComponent, width: customWidth, listProps, backdropStyle: backdropStyleProps, containerStyle, initialIndex, itemSpacing, ...props }: GestureViewerProps<T, LC>): import("react/jsx-runtime").JSX.Element;
3
+ export declare function GestureViewer<T = any, LC = typeof FlatList>({ id, data, renderItem: renderItemProp, renderContainer, ListComponent, width: customWidth, listProps, backdropStyle: backdropStyleProps, containerStyle, initialIndex, itemSpacing, useSnap, ...props }: GestureViewerProps<T, LC>): import("react/jsx-runtime").JSX.Element;
4
4
  //# sourceMappingURL=GestureViewer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GestureViewer.d.ts","sourceRoot":"","sources":["../../../src/GestureViewer.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAyE,MAAM,cAAc,CAAC;AAIpH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAKlD,wBAAgB,aAAa,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,OAAO,QAAQ,EAAE,EAC3D,EAAc,EACd,IAAI,EACJ,UAAU,EAAE,cAAc,EAC1B,eAAe,EACf,aAAa,EACb,KAAK,EAAE,WAAW,EAClB,SAAS,EACT,aAAa,EAAE,kBAAkB,EACjC,cAAc,EACd,YAAgB,EAChB,WAAe,EACf,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,2CAyH3B"}
1
+ {"version":3,"file":"GestureViewer.d.ts","sourceRoot":"","sources":["../../../src/GestureViewer.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAyE,MAAM,cAAc,CAAC;AAIpH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAKlD,wBAAgB,aAAa,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,OAAO,QAAQ,EAAE,EAC3D,EAAc,EACd,IAAI,EACJ,UAAU,EAAE,cAAc,EAC1B,eAAe,EACf,aAAa,EACb,KAAK,EAAE,WAAW,EAClB,SAAS,EACT,aAAa,EAAE,kBAAkB,EACjC,cAAc,EACd,YAAgB,EAChB,WAAe,EACf,OAAe,EACf,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,2CA+H3B"}
@@ -6,27 +6,130 @@ export type ScrollViewComponent = typeof RNScrollView | typeof GHScrollView;
6
6
  type GetComponentProps<T> = T extends React.ComponentType<infer P> ? P : never;
7
7
  type ConditionalListProps<LC> = LC extends FlatListComponent ? React.ComponentProps<LC> : LC extends ScrollViewComponent ? React.ComponentProps<LC> : GetComponentProps<LC>;
8
8
  export interface GestureViewerProps<T = any, LC = typeof RNFlatList> {
9
+ /**
10
+ * When you want to efficiently manage multiple `GestureViewer` instances, you can use the `id` prop to use multiple `GestureViewer` components.
11
+ * @remark `GestureViewer` automatically removes instances from memory when components are unmounted, so no manual memory management is required.
12
+ * @default 'default'
13
+ */
9
14
  id?: string;
15
+ /**
16
+ * The data to display in the `GestureViewer`.
17
+ */
10
18
  data: T[];
19
+ /**
20
+ * The index of the item to display in the `GestureViewer` when the component is mounted.
21
+ * @default 0
22
+ */
11
23
  initialIndex?: number;
24
+ /**
25
+ * A callback function that is called when the index of the item changes.
26
+ */
12
27
  onIndexChange?: (index: number) => void;
28
+ /**
29
+ * A callback function that is called when the `GestureViewer` is dismissed.
30
+ */
13
31
  onDismiss?: () => void;
32
+ /**
33
+ * A callback function that is called to render the item.
34
+ */
14
35
  renderItem: (item: T, index: number) => React.ReactElement;
36
+ /**
37
+ * A callback function that is called to render the container.
38
+ */
15
39
  renderContainer?: (children: React.ReactElement) => React.ReactElement;
40
+ /**
41
+ * Support for any list component like `ScrollView`, `FlatList`, `FlashList` through the `ListComponent` prop.
42
+ */
16
43
  ListComponent: LC;
44
+ /**
45
+ * The width of the `GestureViewer`.
46
+ * @remark If you don't set this prop, the width of the `GestureViewer` will be the same as the width of the screen.
47
+ * @default screen width
48
+ */
17
49
  width?: number;
50
+ /**
51
+ * Enables snap scrolling mode.
52
+ *
53
+ * @remark
54
+ * **`false` (default)**: Paging mode (`pagingEnabled: true`)
55
+ * - Scrolls by full screen size increments
56
+ *
57
+ * **`true`**: Snap mode (`snapToInterval` auto-calculated)
58
+ * - `snapToInterval` is automatically calculated based on `width` and `itemSpacing` values
59
+ * - Use this option when you need item spacing
60
+ * @default false
61
+ *
62
+ */
63
+ useSnap?: boolean;
64
+ /**
65
+ * `dismissThreshold` controls when `onDismiss` is called by applying a threshold value during vertical gestures.
66
+ * @default 80
67
+ */
18
68
  dismissThreshold?: number;
69
+ /**
70
+ * Calls `onDismiss` function when swiping down.
71
+ * @remark Useful for closing modals with downward swipe gestures.
72
+ * @default true
73
+ */
19
74
  enableDismissGesture?: boolean;
75
+ /**
76
+ * Controls left/right swipe gestures.
77
+ * @remark When `false`, horizontal gestures are disabled.
78
+ * @default true
79
+ */
20
80
  enableSwipeGesture?: boolean;
81
+ /**
82
+ * `resistance` controls the range of vertical movement by applying resistance during vertical gestures.
83
+ * @default 2
84
+ */
21
85
  resistance?: number;
86
+ /**
87
+ * The props to pass to the list component.
88
+ * @remark The `listProps` provides **type inference based on the selected list component**, ensuring accurate autocompletion and type safety in your IDE.
89
+ */
22
90
  listProps?: Partial<ConditionalListProps<LC>>;
91
+ /**
92
+ * The style of the backdrop.
93
+ */
23
94
  backdropStyle?: StyleProp<ViewStyle>;
95
+ /**
96
+ * The style of the container.
97
+ */
24
98
  containerStyle?: StyleProp<ViewStyle>;
99
+ /**
100
+ * By default, the background `opacity` gradually decreases from 1 to 0 during downward swipe gestures.
101
+ * @remark When `false`, this animation is disabled.
102
+ * @default true
103
+ */
25
104
  animateBackdrop?: boolean;
105
+ /**
106
+ * Only works when zoom is active, allows moving item position when zoomed.
107
+ * @remark When `false`, gesture movement is disabled during zoom.
108
+ * @default true
109
+ */
26
110
  enableZoomPanGesture?: boolean;
111
+ /**
112
+ * Controls two-finger pinch gestures.
113
+ * @remark When `false`, two-finger zoom gestures are disabled.
114
+ * @default true
115
+ */
27
116
  enableZoomGesture?: boolean;
117
+ /**
118
+ * Controls double-tap zoom gestures.
119
+ * @remark When `false`, double-tap zoom gestures are disabled.
120
+ * @default true
121
+ */
28
122
  enableDoubleTapGesture?: boolean;
123
+ /**
124
+ * The maximum zoom scale.
125
+ * @default 2
126
+ */
29
127
  maxZoomScale?: number;
128
+ /**
129
+ * The spacing between items in pixels.
130
+ * @remark Only applied when `useSnap` is `true`.
131
+ * @default 0
132
+ */
30
133
  itemSpacing?: number;
31
134
  }
32
135
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,IAAI,UAAU,EAAE,UAAU,IAAI,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC7G,OAAO,KAAK,EAAE,QAAQ,IAAI,UAAU,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEvG,MAAM,MAAM,iBAAiB,GAAG,OAAO,UAAU,GAAG,OAAO,UAAU,CAAC;AACtE,MAAM,MAAM,mBAAmB,GAAG,OAAO,YAAY,GAAG,OAAO,YAAY,CAAC;AAE5E,KAAK,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE/E,KAAK,oBAAoB,CAAC,EAAE,IAAI,EAAE,SAAS,iBAAiB,GACxD,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,GACxB,EAAE,SAAS,mBAAmB,GAC5B,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,GACxB,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAE5B,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,OAAO,UAAU;IACjE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,YAAY,CAAC;IAC3D,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,CAAC;IACvE,aAAa,EAAE,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAG1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,aAAa,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,IAAI,UAAU,EAAE,UAAU,IAAI,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC7G,OAAO,KAAK,EAAE,QAAQ,IAAI,UAAU,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEvG,MAAM,MAAM,iBAAiB,GAAG,OAAO,UAAU,GAAG,OAAO,UAAU,CAAC;AACtE,MAAM,MAAM,mBAAmB,GAAG,OAAO,YAAY,GAAG,OAAO,YAAY,CAAC;AAE5E,KAAK,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE/E,KAAK,oBAAoB,CAAC,EAAE,IAAI,EAAE,SAAS,iBAAiB,GACxD,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,GACxB,EAAE,SAAS,mBAAmB,GAC5B,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,GACxB,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAE5B,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,OAAO,UAAU;IACjE;;;;OAIG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,IAAI,EAAE,CAAC,EAAE,CAAC;IACV;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;OAEG;IACH,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,YAAY,CAAC;IAC3D;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,CAAC;IACvE;;OAEG;IACH,aAAa,EAAE,EAAE,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAG1B;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C;;OAEG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC;;OAEG;IACH,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -1,7 +1,7 @@
1
1
  import { type NativeScrollEvent, type NativeSyntheticEvent } from 'react-native';
2
2
  import type { GestureViewerProps } from './types';
3
3
  type UseGestureViewerProps<T = any> = Omit<GestureViewerProps<T>, 'renderItem' | 'renderContainer' | 'ListComponent' | 'listProps' | 'containerStyle' | 'backdropStyle'>;
4
- export declare const useGestureViewer: <T = any>({ data, initialIndex, onIndexChange, onDismiss, width: customWidth, dismissThreshold, resistance, animateBackdrop, enableDismissGesture, enableSwipeGesture, enableZoomGesture, enableDoubleTapGesture, enableZoomPanGesture, maxZoomScale, itemSpacing, id, }: UseGestureViewerProps<T>) => {
4
+ export declare const useGestureViewer: <T = any>({ data, initialIndex, onIndexChange, onDismiss, width: customWidth, dismissThreshold, resistance, animateBackdrop, enableDismissGesture, enableSwipeGesture, enableZoomGesture, enableDoubleTapGesture, enableZoomPanGesture, maxZoomScale, itemSpacing, useSnap, id, }: UseGestureViewerProps<T>) => {
5
5
  currentIndex: number;
6
6
  dataLength: number;
7
7
  translateY: import("react-native-reanimated").SharedValue<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"useGestureViewer.d.ts","sourceRoot":"","sources":["../../../src/useGestureViewer.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAE1B,MAAM,cAAc,CAAC;AActB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,KAAK,qBAAqB,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CACxC,kBAAkB,CAAC,CAAC,CAAC,EACrB,YAAY,GAAG,iBAAiB,GAAG,eAAe,GAAG,WAAW,GAAG,gBAAgB,GAAG,eAAe,CACtG,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,CAAC,GAAG,GAAG,EAAE,gQAmBvC,qBAAqB,CAAC,CAAC,CAAC;;;;;;;;iCAgHf,oBAAoB,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;CA2LlD,CAAC"}
1
+ {"version":3,"file":"useGestureViewer.d.ts","sourceRoot":"","sources":["../../../src/useGestureViewer.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAE1B,MAAM,cAAc,CAAC;AActB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,KAAK,qBAAqB,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CACxC,kBAAkB,CAAC,CAAC,CAAC,EACrB,YAAY,GAAG,iBAAiB,GAAG,eAAe,GAAG,WAAW,GAAG,gBAAgB,GAAG,eAAe,CACtG,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,CAAC,GAAG,GAAG,EAAE,yQAoBvC,qBAAqB,CAAC,CAAC,CAAC;;;;;;;;iCAgHf,oBAAoB,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;CA2LlD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-gesture-image-viewer",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "🖼️ A highly customizable and easy-to-use React Native image viewer with gesture support and external controls",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",