react-native-gesture-image-viewer 2.4.0 → 3.0.0-beta.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 (133) hide show
  1. package/README.md +5 -3
  2. package/lib/module/GestureViewer.js +88 -146
  3. package/lib/module/GestureViewer.js.map +1 -1
  4. package/lib/module/GestureViewerManager.js +49 -105
  5. package/lib/module/GestureViewerManager.js.map +1 -1
  6. package/lib/module/gestureViewerAnimation.js +18 -0
  7. package/lib/module/gestureViewerAnimation.js.map +1 -0
  8. package/lib/module/gestureViewerPaging.js +66 -0
  9. package/lib/module/gestureViewerPaging.js.map +1 -0
  10. package/lib/module/gestureViewerRenderWindow.js +29 -0
  11. package/lib/module/gestureViewerRenderWindow.js.map +1 -0
  12. package/lib/module/getWebContentProps.js +6 -0
  13. package/lib/module/getWebContentProps.js.map +1 -0
  14. package/lib/module/getWebContentProps.web.js +8 -0
  15. package/lib/module/getWebContentProps.web.js.map +1 -0
  16. package/lib/module/platformTapGestures.js +4 -0
  17. package/lib/module/platformTapGestures.js.map +1 -0
  18. package/lib/module/platformTapGestures.web.js +4 -0
  19. package/lib/module/platformTapGestures.web.js.map +1 -0
  20. package/lib/module/renderWindow.js +160 -0
  21. package/lib/module/renderWindow.js.map +1 -0
  22. package/lib/module/useGestureViewer.js +386 -206
  23. package/lib/module/useGestureViewer.js.map +1 -1
  24. package/lib/module/useGestureViewerController.js +3 -3
  25. package/lib/module/useGestureViewerController.js.map +1 -1
  26. package/lib/module/useGestureViewerManagerBridge.js +85 -0
  27. package/lib/module/useGestureViewerManagerBridge.js.map +1 -0
  28. package/lib/module/useGestureViewerPaging.js +147 -79
  29. package/lib/module/useGestureViewerPaging.js.map +1 -1
  30. package/lib/module/useWebClickHandler.js +7 -0
  31. package/lib/module/useWebClickHandler.js.map +1 -0
  32. package/lib/module/useWebClickHandler.web.js +85 -0
  33. package/lib/module/useWebClickHandler.web.js.map +1 -0
  34. package/lib/module/useWebSingleTapTimer.js +12 -0
  35. package/lib/module/useWebSingleTapTimer.js.map +1 -0
  36. package/lib/module/useWebSingleTapTimer.web.js +25 -0
  37. package/lib/module/useWebSingleTapTimer.web.js.map +1 -0
  38. package/lib/module/utils/index.js +0 -77
  39. package/lib/module/utils/index.js.map +1 -1
  40. package/lib/module/utils/tapZoom.js +4 -3
  41. package/lib/module/utils/tapZoom.js.map +1 -1
  42. package/lib/typescript/src/GestureViewer.d.ts +1 -1
  43. package/lib/typescript/src/GestureViewer.d.ts.map +1 -1
  44. package/lib/typescript/src/GestureViewerManager.d.ts +20 -20
  45. package/lib/typescript/src/GestureViewerManager.d.ts.map +1 -1
  46. package/lib/typescript/src/gestureViewerAnimation.d.ts +15 -0
  47. package/lib/typescript/src/gestureViewerAnimation.d.ts.map +1 -0
  48. package/lib/typescript/src/gestureViewerPaging.d.ts +13 -0
  49. package/lib/typescript/src/gestureViewerPaging.d.ts.map +1 -0
  50. package/lib/typescript/src/gestureViewerRenderWindow.d.ts +15 -0
  51. package/lib/typescript/src/gestureViewerRenderWindow.d.ts.map +1 -0
  52. package/lib/typescript/src/getWebContentProps.d.ts +3 -0
  53. package/lib/typescript/src/getWebContentProps.d.ts.map +1 -0
  54. package/lib/typescript/src/getWebContentProps.web.d.ts +5 -0
  55. package/lib/typescript/src/getWebContentProps.web.d.ts.map +1 -0
  56. package/lib/typescript/src/platformTapGestures.d.ts +2 -0
  57. package/lib/typescript/src/platformTapGestures.d.ts.map +1 -0
  58. package/lib/typescript/src/platformTapGestures.web.d.ts +2 -0
  59. package/lib/typescript/src/platformTapGestures.web.d.ts.map +1 -0
  60. package/lib/typescript/src/renderWindow.d.ts +44 -0
  61. package/lib/typescript/src/renderWindow.d.ts.map +1 -0
  62. package/lib/typescript/src/types.d.ts +36 -53
  63. package/lib/typescript/src/types.d.ts.map +1 -1
  64. package/lib/typescript/src/useGestureViewer.d.ts +9 -9
  65. package/lib/typescript/src/useGestureViewer.d.ts.map +1 -1
  66. package/lib/typescript/src/useGestureViewerController.d.ts +1 -1
  67. package/lib/typescript/src/useGestureViewerManagerBridge.d.ts +28 -0
  68. package/lib/typescript/src/useGestureViewerManagerBridge.d.ts.map +1 -0
  69. package/lib/typescript/src/useGestureViewerPaging.d.ts +31 -2
  70. package/lib/typescript/src/useGestureViewerPaging.d.ts.map +1 -1
  71. package/lib/typescript/src/useWebClickHandler.d.ts +35 -0
  72. package/lib/typescript/src/useWebClickHandler.d.ts.map +1 -0
  73. package/lib/typescript/src/useWebClickHandler.web.d.ts +36 -0
  74. package/lib/typescript/src/useWebClickHandler.web.d.ts.map +1 -0
  75. package/lib/typescript/src/useWebSingleTapTimer.d.ts +6 -0
  76. package/lib/typescript/src/useWebSingleTapTimer.d.ts.map +1 -0
  77. package/lib/typescript/src/useWebSingleTapTimer.web.d.ts +6 -0
  78. package/lib/typescript/src/useWebSingleTapTimer.web.d.ts.map +1 -0
  79. package/lib/typescript/src/utils/index.d.ts +0 -20
  80. package/lib/typescript/src/utils/index.d.ts.map +1 -1
  81. package/lib/typescript/src/utils/tapZoom.d.ts.map +1 -1
  82. package/package.json +1 -1
  83. package/src/GestureViewer.tsx +104 -206
  84. package/src/GestureViewerManager.ts +77 -122
  85. package/src/gestureViewerAnimation.ts +18 -0
  86. package/src/gestureViewerPaging.ts +116 -0
  87. package/src/gestureViewerRenderWindow.ts +56 -0
  88. package/src/getWebContentProps.ts +5 -0
  89. package/src/getWebContentProps.web.ts +5 -0
  90. package/src/platformTapGestures.ts +1 -0
  91. package/src/platformTapGestures.web.ts +1 -0
  92. package/src/renderWindow.ts +253 -0
  93. package/src/types.ts +34 -100
  94. package/src/useGestureViewer.ts +557 -271
  95. package/src/useGestureViewerController.ts +3 -3
  96. package/src/useGestureViewerManagerBridge.ts +118 -0
  97. package/src/useGestureViewerPaging.ts +277 -114
  98. package/src/useWebClickHandler.ts +44 -0
  99. package/src/useWebClickHandler.web.ts +146 -0
  100. package/src/useWebSingleTapTimer.ts +10 -0
  101. package/src/useWebSingleTapTimer.web.ts +30 -0
  102. package/src/utils/index.ts +0 -102
  103. package/src/utils/tapZoom.ts +4 -3
  104. package/lib/module/WebPagingFixStyle.js +0 -25
  105. package/lib/module/WebPagingFixStyle.js.map +0 -1
  106. package/lib/module/scheduleInitialScroll.js +0 -21
  107. package/lib/module/scheduleInitialScroll.js.map +0 -1
  108. package/lib/module/useGestureViewerPaging.types.js +0 -4
  109. package/lib/module/useGestureViewerPaging.types.js.map +0 -1
  110. package/lib/module/useGestureViewerPaging.web.js +0 -291
  111. package/lib/module/useGestureViewerPaging.web.js.map +0 -1
  112. package/lib/module/utils/FlashList.js +0 -9
  113. package/lib/module/utils/FlashList.js.map +0 -1
  114. package/lib/module/utils/webScroll.js +0 -70
  115. package/lib/module/utils/webScroll.js.map +0 -1
  116. package/lib/typescript/src/WebPagingFixStyle.d.ts +0 -6
  117. package/lib/typescript/src/WebPagingFixStyle.d.ts.map +0 -1
  118. package/lib/typescript/src/scheduleInitialScroll.d.ts +0 -3
  119. package/lib/typescript/src/scheduleInitialScroll.d.ts.map +0 -1
  120. package/lib/typescript/src/useGestureViewerPaging.types.d.ts +0 -42
  121. package/lib/typescript/src/useGestureViewerPaging.types.d.ts.map +0 -1
  122. package/lib/typescript/src/useGestureViewerPaging.web.d.ts +0 -3
  123. package/lib/typescript/src/useGestureViewerPaging.web.d.ts.map +0 -1
  124. package/lib/typescript/src/utils/FlashList.d.ts +0 -2
  125. package/lib/typescript/src/utils/FlashList.d.ts.map +0 -1
  126. package/lib/typescript/src/utils/webScroll.d.ts +0 -18
  127. package/lib/typescript/src/utils/webScroll.d.ts.map +0 -1
  128. package/src/WebPagingFixStyle.tsx +0 -25
  129. package/src/scheduleInitialScroll.ts +0 -36
  130. package/src/useGestureViewerPaging.types.ts +0 -42
  131. package/src/useGestureViewerPaging.web.ts +0 -453
  132. package/src/utils/FlashList.ts +0 -7
  133. package/src/utils/webScroll.ts +0 -96
package/README.md CHANGED
@@ -23,7 +23,7 @@ Existing libraries often have limited customization options or performance issue
23
23
  - 🎨 **Full Customization** - Total control over components, styles, and gesture behavior
24
24
  - 🎛️ **External Control API** - Trigger actions programmatically from buttons or other UI components
25
25
  - 🧩 **Multi-Instance Management** - Manage multiple viewers independently using unique IDs
26
- - 🧬 **Flexible Integration** - Use with Modal, [React Native Modal](https://www.npmjs.com/package/react-native-modal), ScrollView, FlatList, [FlashList](https://www.npmjs.com/package/@shopify/flash-list), [Expo Image](https://www.npmjs.com/package/expo-image), [FastImage](https://github.com/DylanVann/react-native-fast-image), and more
26
+ - 🧬 **Flexible Integration** - Use with Modal, [React Native Modal](https://www.npmjs.com/package/react-native-modal), [Expo Image](https://www.npmjs.com/package/expo-image), [FastImage](https://github.com/DylanVann/react-native-fast-image), videos, and custom content
27
27
  - 🧠 **Full TypeScript Support** - Great developer experience with type inference and safety
28
28
  - 🌐 **Cross-Platform** - Runs on iOS, Android, and Web with Expo Go and New Architecture compatibility
29
29
  - 🪄 **Easy-to-Use API** - Simple and intuitive API that requires minimal setup
@@ -34,6 +34,8 @@ Existing libraries often have limited customization options or performance issue
34
34
 
35
35
  Full documentation is available at: <https://react-native-gesture-image-viewer.pages.dev>
36
36
 
37
+ > v3 is currently in beta. Install it with `react-native-gesture-image-viewer@beta` and use the [v3 beta docs](https://react-native-gesture-image-viewer.pages.dev/3.x-beta/). The docs root still points to the stable v2 documentation.
38
+
37
39
  ### Examples & Demo
38
40
 
39
41
  - [📁 Example Project](/example/) - Real implementation code with various use cases
@@ -50,7 +52,7 @@ Full documentation is available at: <https://react-native-gesture-image-viewer.p
50
52
 
51
53
  ```tsx
52
54
  import { useCallback, useState } from 'react';
53
- import { ScrollView, Image, Modal, View, Text, Button, Pressable } from 'react-native';
55
+ import { Image, Modal, View, Text, Button, Pressable } from 'react-native';
54
56
  import {
55
57
  GestureViewer,
56
58
  GestureTrigger,
@@ -95,7 +97,7 @@ function App() {
95
97
  data={images}
96
98
  initialIndex={selectedIndex}
97
99
  renderItem={renderImage}
98
- ListComponent={ScrollView}
100
+ pageSpacing={16}
99
101
  onDismiss={() => setVisible(false)}
100
102
  />
101
103
  <View>
@@ -1,212 +1,154 @@
1
1
  "use strict";
2
2
 
3
- import { useCallback, useEffect, useMemo, useRef } from 'react';
4
- import { Platform, StyleSheet, useWindowDimensions, View } from 'react-native';
3
+ import { useEffect, useMemo } from 'react';
4
+ import { StyleSheet, useWindowDimensions, View } from 'react-native';
5
5
  import { Gesture, GestureDetector, GestureHandlerRootView } from 'react-native-gesture-handler';
6
- import Animated from 'react-native-reanimated';
6
+ import Animated, { useAnimatedStyle } from 'react-native-reanimated';
7
7
  import { registry } from "./GestureViewerRegistry.js";
8
+ import { getWebContentProps } from './getWebContentProps';
8
9
  import { useGestureViewer } from "./useGestureViewer.js";
9
- import { createLoopData, isFlashListLike, isFlatListLike, isScrollViewLike, shouldUseNativeScrollGesture } from "./utils/index.js";
10
- import WebPagingFixStyle from "./WebPagingFixStyle.js";
11
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ function RenderWindowSlotView({
12
+ animatedStyle,
13
+ height,
14
+ isActive,
15
+ pageStride,
16
+ renderItem,
17
+ slot,
18
+ visualPage,
19
+ width
20
+ }) {
21
+ const slotAnimatedStyle = useAnimatedStyle(() => ({
22
+ transform: [{
23
+ translateX: (slot.virtualIndex - visualPage.get()) * pageStride
24
+ }]
25
+ }));
26
+ return /*#__PURE__*/_jsx(Animated.View, {
27
+ style: [styles.slot, {
28
+ height,
29
+ width
30
+ }, slotAnimatedStyle],
31
+ children: /*#__PURE__*/_jsx(Animated.View, {
32
+ style: [styles.page, isActive && animatedStyle],
33
+ children: /*#__PURE__*/_jsx(View, {
34
+ style: [styles.item, {
35
+ height,
36
+ width
37
+ }],
38
+ children: renderItem(slot.item, slot.logicalIndex, {
39
+ isActive
40
+ })
41
+ })
42
+ })
43
+ });
44
+ }
12
45
  export function GestureViewer({
13
46
  id = 'default',
14
47
  data,
15
- renderItem: renderItemProp,
48
+ renderItem,
16
49
  renderContainer,
17
- ListComponent,
18
50
  width: customWidth,
19
51
  height: customHeight,
20
- listProps,
21
52
  backdropStyle: backdropStyleProps,
22
53
  containerStyle,
23
54
  initialIndex = 0,
24
- itemSpacing = 0,
25
- enableSnapMode = false,
55
+ pageSpacing = 0,
56
+ windowSize = 3,
26
57
  enableLoop = false,
27
58
  ...props
28
59
  }) {
29
- const Component = ListComponent;
30
- const dataRef = useRef(data);
31
60
  const {
32
61
  width: screenWidth,
33
62
  height: screenHeight
34
63
  } = useWindowDimensions();
35
64
  const width = customWidth || screenWidth;
36
65
  const height = customHeight || screenHeight;
37
- const loopData = useMemo(() => createLoopData(dataRef, enableLoop), [enableLoop]);
38
- const isScrollView = isScrollViewLike(Component);
39
- const isFlashList = isFlashListLike(Component);
40
66
  const {
41
- activeListIndex,
42
- listRef,
43
- isZoomed,
44
- isRotated,
45
- isPinching,
46
- dismissGesture,
47
- zoomGesture,
48
- nativeScrollGesture,
49
- onWebClick,
50
- onMomentumScrollEnd,
51
- onScroll,
52
- onScrollBeginDrag,
53
67
  animatedStyle,
54
68
  backdropStyle,
55
- handleDismiss
69
+ centerVirtualIndex,
70
+ dismissGesture,
71
+ handleDismiss,
72
+ horizontalPagingGesture,
73
+ onWebClick,
74
+ pageStride,
75
+ renderWindowSlots,
76
+ visualPage,
77
+ zoomGesture
56
78
  } = useGestureViewer({
57
79
  id,
58
80
  data,
59
81
  width,
60
82
  height,
61
83
  initialIndex,
62
- itemSpacing,
84
+ pageSpacing,
85
+ windowSize,
63
86
  enableLoop,
64
87
  ...props
65
88
  });
66
- const keyExtractor = useCallback((item, index) => {
67
- if (enableLoop) {
68
- return typeof item === 'string' ? `${item}-${index}` : `item-${index}`;
69
- }
70
- return typeof item === 'string' ? item : `image-${index}`;
71
- }, [enableLoop]);
72
- const renderItem = useCallback(({
73
- item,
74
- index,
75
- target
76
- }) => {
77
- const isFlashListCell = !isFlashList || target === undefined || target === 'Cell';
78
- return /*#__PURE__*/_jsx(View, {
79
- style: [{
80
- width,
81
- height,
82
- marginHorizontal: itemSpacing / 2
83
- }, styles.item],
84
- children: renderItemProp(item, index, {
85
- isActive: index === activeListIndex && isFlashListCell
86
- })
87
- }, isScrollView ? keyExtractor(item, index) : undefined);
88
- }, [activeListIndex, width, itemSpacing, renderItemProp, keyExtractor, isScrollView, isFlashList, height]);
89
- const getItemLayout = useCallback((_, index) => ({
90
- length: width + itemSpacing,
91
- offset: (width + itemSpacing) * index,
92
- index
93
- }), [width, itemSpacing]);
94
89
  const gesture = useMemo(() => {
95
- return Gesture.Race(dismissGesture, zoomGesture);
96
- }, [zoomGesture, dismissGesture]);
97
- useEffect(() => {
98
- dataRef.current = data;
99
- }, [data]);
90
+ return Gesture.Race(dismissGesture, horizontalPagingGesture, zoomGesture);
91
+ }, [dismissGesture, horizontalPagingGesture, zoomGesture]);
100
92
  useEffect(() => {
101
93
  registry.createManager(id);
102
94
  return () => registry.deleteManager(id);
103
95
  }, [id]);
104
- const commonProps = useMemo(() => ({
105
- horizontal: true,
106
- scrollEnabled: !isZoomed && !isRotated && !isPinching,
107
- showsHorizontalScrollIndicator: false,
108
- onMomentumScrollEnd,
109
- onScroll,
110
- onScrollBeginDrag,
111
- ...(enableSnapMode ? {
112
- snapToInterval: width + itemSpacing,
113
- snapToAlignment: 'center',
114
- decelerationRate: 'fast'
115
- } : {
116
- pagingEnabled: true
117
- }),
118
- scrollEventThrottle: 16,
119
- removeClippedSubviews: true
120
- }), [width, itemSpacing, isZoomed, isRotated, isPinching, onMomentumScrollEnd, onScroll, onScrollBeginDrag, enableSnapMode]);
121
96
  const control = useMemo(() => ({
122
97
  dismiss: handleDismiss
123
98
  }), [handleDismiss]);
124
- const shouldWrapScrollableWithNativeGesture = shouldUseNativeScrollGesture(Platform.OS, Component);
125
- const maybeWrapWithNativeScrollGesture = useCallback(children => {
126
- if (!shouldWrapScrollableWithNativeGesture) {
127
- return children;
128
- }
129
- return /*#__PURE__*/_jsx(GestureDetector, {
130
- gesture: nativeScrollGesture,
131
- children: children
132
- });
133
- }, [nativeScrollGesture, shouldWrapScrollableWithNativeGesture]);
134
- const listComponent = /*#__PURE__*/_jsx(GestureHandlerRootView, {
99
+ const webContentProps = getWebContentProps(onWebClick);
100
+ const viewer = /*#__PURE__*/_jsx(GestureHandlerRootView, {
135
101
  children: /*#__PURE__*/_jsx(GestureDetector, {
136
102
  gesture: gesture,
137
103
  children: /*#__PURE__*/_jsxs(View, {
138
- style: [{
139
- width,
140
- height
104
+ style: [styles.container, {
105
+ height,
106
+ width
141
107
  }, containerStyle],
142
108
  children: [/*#__PURE__*/_jsx(Animated.View, {
143
109
  style: [styles.background, backdropStyleProps, backdropStyle]
144
110
  }), /*#__PURE__*/_jsx(Animated.View, {
145
- style: [styles.content, animatedStyle],
146
- ...(Platform.OS === 'web' && {
147
- onClick: onWebClick
148
- }),
149
- ...(Platform.OS === 'web' && isFlashList && {
150
- dataSet: {
151
- 'flash-list-paging-enabled-fix': true
152
- }
153
- }),
154
- children: isScrollView ? maybeWrapWithNativeScrollGesture(/*#__PURE__*/_jsx(Component, {
155
- ref: listRef,
156
- ...commonProps,
157
- ...listProps,
158
- children: loopData.map((item, index) => renderItem({
159
- item,
160
- index
161
- }))
162
- })) : isFlatListLike(Component) && maybeWrapWithNativeScrollGesture(/*#__PURE__*/_jsx(Component, {
163
- ref: listRef,
164
- ...commonProps,
165
- data: loopData,
111
+ style: styles.content,
112
+ ...webContentProps,
113
+ children: renderWindowSlots.map(slot => /*#__PURE__*/_jsx(RenderWindowSlotView, {
114
+ animatedStyle: animatedStyle,
115
+ height: height,
116
+ isActive: slot.virtualIndex === centerVirtualIndex,
117
+ pageStride: pageStride,
166
118
  renderItem: renderItem,
167
- initialScrollIndex: enableLoop && data.length > 1 ? initialIndex + 1 : initialIndex,
168
- keyExtractor: keyExtractor,
169
- ...(isFlashList ?
170
- // NOTE - Deprecated estimatedItemSize for FlashList V2 (https://shopify.github.io/flash-list/docs/v2-changes#deprecated)
171
- {
172
- estimatedItemSize: width + itemSpacing
173
- } : {
174
- windowSize: 3,
175
- maxToRenderPerBatch: 3,
176
- getItemLayout
177
- }),
178
- ...(Platform.OS === 'web' && isFlatListLike(Component) && {
179
- dataSet: {
180
- 'flat-list-paging-enabled-fix': true
181
- }
182
- }),
183
- ...listProps
184
- }))
185
- }), /*#__PURE__*/_jsx(WebPagingFixStyle, {
186
- Component: Component
119
+ slot: slot,
120
+ visualPage: visualPage,
121
+ width: width
122
+ }, slot.slotKey))
187
123
  })]
188
124
  })
189
125
  })
190
126
  });
191
- return renderContainer ? renderContainer(listComponent, control) : listComponent;
127
+ return renderContainer ? renderContainer(viewer, control) : viewer;
192
128
  }
193
129
  const styles = StyleSheet.create({
130
+ background: {
131
+ ...StyleSheet.absoluteFill,
132
+ backgroundColor: '#000'
133
+ },
134
+ container: {
135
+ overflow: 'hidden'
136
+ },
194
137
  content: {
195
- flex: 1,
196
- width: '100%',
197
- height: '100%'
138
+ ...StyleSheet.absoluteFill,
139
+ overflow: 'hidden'
198
140
  },
199
141
  item: {
200
- justifyContent: 'center',
201
- alignItems: 'center'
142
+ alignItems: 'center',
143
+ justifyContent: 'center'
202
144
  },
203
- background: {
204
- position: 'absolute',
205
- top: 0,
145
+ page: {
146
+ flex: 1
147
+ },
148
+ slot: {
206
149
  left: 0,
207
- right: 0,
208
- bottom: 0,
209
- backgroundColor: 'black'
150
+ position: 'absolute',
151
+ top: 0
210
152
  }
211
153
  });
212
154
  //# sourceMappingURL=GestureViewer.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useMemo","useRef","Platform","StyleSheet","useWindowDimensions","View","Gesture","GestureDetector","GestureHandlerRootView","Animated","registry","useGestureViewer","createLoopData","isFlashListLike","isFlatListLike","isScrollViewLike","shouldUseNativeScrollGesture","WebPagingFixStyle","jsx","_jsx","jsxs","_jsxs","GestureViewer","id","data","renderItem","renderItemProp","renderContainer","ListComponent","width","customWidth","height","customHeight","listProps","backdropStyle","backdropStyleProps","containerStyle","initialIndex","itemSpacing","enableSnapMode","enableLoop","props","Component","dataRef","screenWidth","screenHeight","loopData","isScrollView","isFlashList","activeListIndex","listRef","isZoomed","isRotated","isPinching","dismissGesture","zoomGesture","nativeScrollGesture","onWebClick","onMomentumScrollEnd","onScroll","onScrollBeginDrag","animatedStyle","handleDismiss","keyExtractor","item","index","target","isFlashListCell","undefined","style","marginHorizontal","styles","children","isActive","getItemLayout","_","length","offset","gesture","Race","current","createManager","deleteManager","commonProps","horizontal","scrollEnabled","showsHorizontalScrollIndicator","snapToInterval","snapToAlignment","decelerationRate","pagingEnabled","scrollEventThrottle","removeClippedSubviews","control","dismiss","shouldWrapScrollableWithNativeGesture","OS","maybeWrapWithNativeScrollGesture","listComponent","background","content","onClick","dataSet","ref","map","initialScrollIndex","estimatedItemSize","windowSize","maxToRenderPerBatch","create","flex","justifyContent","alignItems","position","top","left","right","bottom","backgroundColor"],"sourceRoot":"../../src","sources":["GestureViewer.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useMemo","StyleSheet","useWindowDimensions","View","Gesture","GestureDetector","GestureHandlerRootView","Animated","useAnimatedStyle","registry","getWebContentProps","useGestureViewer","jsx","_jsx","jsxs","_jsxs","RenderWindowSlotView","animatedStyle","height","isActive","pageStride","renderItem","slot","visualPage","width","slotAnimatedStyle","transform","translateX","virtualIndex","get","style","styles","children","page","item","logicalIndex","GestureViewer","id","data","renderContainer","customWidth","customHeight","backdropStyle","backdropStyleProps","containerStyle","initialIndex","pageSpacing","windowSize","enableLoop","props","screenWidth","screenHeight","centerVirtualIndex","dismissGesture","handleDismiss","horizontalPagingGesture","onWebClick","renderWindowSlots","zoomGesture","gesture","Race","createManager","deleteManager","control","dismiss","webContentProps","viewer","container","background","content","map","slotKey","create","absoluteFill","backgroundColor","overflow","alignItems","justifyContent","flex","left","position","top"],"sourceRoot":"../../src","sources":["GestureViewer.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,25 +1,24 @@
1
1
  "use strict";
2
2
 
3
3
  import { withTiming } from 'react-native-reanimated';
4
- import { createBoundsConstraint, createScrollAction } from "./utils/index.js";
4
+ import { createBoundsConstraint } from "./utils/index.js";
5
+ const DEFAULT_STATE_READER = () => ({
6
+ currentIndex: 0,
7
+ totalCount: 0
8
+ });
5
9
  class GestureViewerManager {
6
- currentIndex = 0;
7
- dataLength = 0;
8
10
  width = 0;
9
11
  height = 0;
10
12
  maxZoomScale = 2;
11
- enableHorizontalSwipe = true;
12
- enableLoop = false;
13
- listRef = null;
13
+ navigationAdapter = null;
14
+ stateReader = DEFAULT_STATE_READER;
14
15
  scale = null;
15
16
  rotation = null;
16
17
  translateX = null;
17
18
  translateY = null;
18
- resetTransformCallback = null;
19
- loopCallback = null;
20
- programmaticScrollVersion = 0;
21
19
  listeners = new Set();
22
20
  eventListeners = new Map();
21
+ eventListenerPresenceSubscribers = new Set();
23
22
  notifyListeners() {
24
23
  const state = this.getState();
25
24
  this.listeners.forEach(listener => listener(state));
@@ -35,6 +34,7 @@ class GestureViewerManager {
35
34
  this.eventListeners.set(eventType, new Set());
36
35
  }
37
36
  this.eventListeners.get(eventType)?.add(callback);
37
+ this.notifyEventListenerPresence(eventType);
38
38
  return () => {
39
39
  const listeners = this.eventListeners.get(eventType);
40
40
  if (listeners) {
@@ -43,8 +43,29 @@ class GestureViewerManager {
43
43
  this.eventListeners.delete(eventType);
44
44
  }
45
45
  }
46
+ this.notifyEventListenerPresence(eventType);
46
47
  };
47
48
  }
49
+ subscribeToEventListenerPresence(callback) {
50
+ this.eventListenerPresenceSubscribers.add(callback);
51
+ this.notifyEventListenerPresenceSubscriber(callback, 'zoomChange');
52
+ this.notifyEventListenerPresenceSubscriber(callback, 'rotationChange');
53
+ this.notifyEventListenerPresenceSubscriber(callback, 'tap');
54
+ return () => {
55
+ this.eventListenerPresenceSubscribers.delete(callback);
56
+ };
57
+ }
58
+ hasEventListeners(eventType) {
59
+ return (this.eventListeners.get(eventType)?.size ?? 0) > 0;
60
+ }
61
+ notifyEventListenerPresence(eventType) {
62
+ this.eventListenerPresenceSubscribers.forEach(callback => {
63
+ this.notifyEventListenerPresenceSubscriber(callback, eventType);
64
+ });
65
+ }
66
+ notifyEventListenerPresenceSubscriber(callback, eventType) {
67
+ callback(eventType, this.hasEventListeners(eventType));
68
+ }
48
69
  emitEvent(eventType, data) {
49
70
  const listeners = this.eventListeners.get(eventType);
50
71
  if (listeners) {
@@ -67,16 +88,7 @@ class GestureViewerManager {
67
88
  this.emitEvent('tap', data);
68
89
  };
69
90
  getState() {
70
- return {
71
- currentIndex: this.currentIndex,
72
- totalCount: this.dataLength
73
- };
74
- }
75
- getProgrammaticScrollVersion() {
76
- return this.programmaticScrollVersion;
77
- }
78
- setEnableLoop(enabled) {
79
- this.enableLoop = enabled;
91
+ return this.stateReader();
80
92
  }
81
93
  setWidth(width) {
82
94
  this.width = width;
@@ -84,19 +96,11 @@ class GestureViewerManager {
84
96
  setHeight(height) {
85
97
  this.height = height;
86
98
  }
87
- setListRef(ref) {
88
- this.listRef = ref;
89
- }
90
- setDataLength(length) {
91
- this.dataLength = length;
92
- }
93
- setEnableHorizontalSwipe(enabled) {
94
- this.enableHorizontalSwipe = enabled;
99
+ setNavigationAdapter(adapter) {
100
+ this.navigationAdapter = adapter;
95
101
  }
96
- setCurrentIndex(index) {
97
- if (index !== this.currentIndex) {
98
- this.currentIndex = index;
99
- }
102
+ setStateReader(reader) {
103
+ this.stateReader = reader ?? DEFAULT_STATE_READER;
100
104
  }
101
105
  setZoomSharedValues(scale, translateX, translateY, maxZoomScale) {
102
106
  this.scale = scale;
@@ -104,9 +108,6 @@ class GestureViewerManager {
104
108
  this.translateY = translateY;
105
109
  this.maxZoomScale = maxZoomScale;
106
110
  }
107
- setResetTransformCallback(callback) {
108
- this.resetTransformCallback = callback;
109
- }
110
111
  notifyStateChange() {
111
112
  this.notifyListeners();
112
113
  }
@@ -184,93 +185,36 @@ class GestureViewerManager {
184
185
  this.translateX.set(withTiming(0));
185
186
  this.translateY.set(withTiming(0));
186
187
  };
187
- goToIndex = index => {
188
- if (!this.enableHorizontalSwipe || !this.listRef) {
189
- return;
190
- }
191
- this.cancelPendingLoopTransition();
192
- const {
193
- scrollTo
194
- } = createScrollAction(this.listRef, this.width);
195
- if (this.enableLoop && this.dataLength > 1) {
196
- if (index < 0) {
197
- this.loopCallback = () => {
198
- scrollTo(this.dataLength, false);
199
- this.updateCurrentIndex(this.dataLength - 1);
200
- this.cancelPendingLoopTransition();
201
- };
202
- this.resetTransformCallback?.();
203
- this.programmaticScrollVersion += 1;
204
- scrollTo(0, true);
205
- return;
206
- }
207
- if (index >= this.dataLength) {
208
- this.loopCallback = () => {
209
- scrollTo(1, false);
210
- this.updateCurrentIndex(0);
211
- this.cancelPendingLoopTransition();
212
- };
213
- this.resetTransformCallback?.();
214
- this.programmaticScrollVersion += 1;
215
- scrollTo(this.dataLength + 1, true);
216
- return;
217
- }
218
- this.resetTransformCallback?.();
219
- this.programmaticScrollVersion += 1;
220
- scrollTo(index + 1, true);
221
- this.updateCurrentIndex(index);
222
- return;
223
- }
224
- if (index < 0 || index >= this.dataLength) {
188
+ goToIndex = (index, options) => {
189
+ if (!this.navigationAdapter) {
225
190
  return;
226
191
  }
227
- this.resetTransformCallback?.();
228
- this.programmaticScrollVersion += 1;
229
- scrollTo(index, true);
230
- this.updateCurrentIndex(index);
231
- };
232
- handleMomentumScrollEnd = scrollIndex => {
233
- if (!this.loopCallback) {
234
- return false;
235
- }
236
- if (scrollIndex === 0 || scrollIndex === this.dataLength + 1) {
237
- this.loopCallback();
238
- return true;
239
- }
240
- this.cancelPendingLoopTransition();
241
- return true;
242
- };
243
- cancelPendingLoopTransition = () => {
244
- this.loopCallback = null;
245
- };
246
- handleScrollBeginDrag = () => {
247
- this.cancelPendingLoopTransition();
192
+ this.navigationAdapter.goToIndex(index, options);
248
193
  };
249
194
  goToPrevious = () => {
250
- this.goToIndex(this.currentIndex - 1);
195
+ if (!this.navigationAdapter) {
196
+ return;
197
+ }
198
+ this.navigationAdapter.goToPrevious();
251
199
  };
252
200
  goToNext = () => {
253
- this.goToIndex(this.currentIndex + 1);
201
+ if (!this.navigationAdapter) {
202
+ return;
203
+ }
204
+ this.navigationAdapter.goToNext();
254
205
  };
255
206
  cleanUp() {
256
- this.cancelPendingLoopTransition();
257
207
  this.listeners.clear();
258
- this.listRef = null;
259
- this.enableHorizontalSwipe = true;
260
- this.currentIndex = 0;
261
- this.dataLength = 0;
208
+ this.navigationAdapter = null;
209
+ this.stateReader = DEFAULT_STATE_READER;
262
210
  this.maxZoomScale = 2;
263
211
  this.scale = null;
264
212
  this.translateX = null;
265
213
  this.translateY = null;
266
214
  this.rotation = null;
267
- this.resetTransformCallback = null;
268
215
  this.eventListeners.clear();
216
+ this.eventListenerPresenceSubscribers.clear();
269
217
  }
270
- updateCurrentIndex = targetIndex => {
271
- this.currentIndex = targetIndex;
272
- this.notifyListeners();
273
- };
274
218
  }
275
219
  export default GestureViewerManager;
276
220
  //# sourceMappingURL=GestureViewerManager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["withTiming","createBoundsConstraint","createScrollAction","GestureViewerManager","currentIndex","dataLength","width","height","maxZoomScale","enableHorizontalSwipe","enableLoop","listRef","scale","rotation","translateX","translateY","resetTransformCallback","loopCallback","programmaticScrollVersion","listeners","Set","eventListeners","Map","notifyListeners","state","getState","forEach","listener","subscribe","add","delete","addEventListener","eventType","callback","has","set","get","size","emitEvent","data","emitZoomChange","previousScale","emitRotationChange","previousRotation","emitTap","totalCount","getProgrammaticScrollVersion","setEnableLoop","enabled","setWidth","setHeight","setListRef","ref","setDataLength","length","setEnableHorizontalSwipe","setCurrentIndex","index","setZoomSharedValues","setResetTransformCallback","notifyStateChange","setRotation","rotate","angle","clockwise","MAX_ANGLE","currentRotation","undefined","nextAngle","Math","floor","zoomIn","multiplier","nextScale","min","zoomOut","max","resetZoom","goToIndex","cancelPendingLoopTransition","scrollTo","updateCurrentIndex","handleMomentumScrollEnd","scrollIndex","handleScrollBeginDrag","goToPrevious","goToNext","cleanUp","clear","targetIndex"],"sourceRoot":"../../src","sources":["GestureViewerManager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["withTiming","createBoundsConstraint","DEFAULT_STATE_READER","currentIndex","totalCount","GestureViewerManager","width","height","maxZoomScale","navigationAdapter","stateReader","scale","rotation","translateX","translateY","listeners","Set","eventListeners","Map","eventListenerPresenceSubscribers","notifyListeners","state","getState","forEach","listener","subscribe","add","delete","addEventListener","eventType","callback","has","set","get","notifyEventListenerPresence","size","subscribeToEventListenerPresence","notifyEventListenerPresenceSubscriber","hasEventListeners","emitEvent","data","emitZoomChange","previousScale","emitRotationChange","previousRotation","emitTap","setWidth","setHeight","setNavigationAdapter","adapter","setStateReader","reader","setZoomSharedValues","notifyStateChange","setRotation","rotate","angle","clockwise","MAX_ANGLE","currentRotation","undefined","nextAngle","Math","floor","zoomIn","multiplier","nextScale","min","zoomOut","max","resetZoom","goToIndex","index","options","goToPrevious","goToNext","cleanUp","clear"],"sourceRoot":"../../src","sources":["GestureViewerManager.ts"],"mappings":"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","ignoreList":[]}