react-native-gesture-image-viewer 1.7.2 → 1.8.1
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/lib/module/GestureViewer.js +10 -8
- package/lib/module/GestureViewer.js.map +1 -1
- package/lib/module/useGestureViewer.js +19 -18
- package/lib/module/useGestureViewer.js.map +1 -1
- package/lib/module/utils.js +1 -1
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/src/GestureViewer.d.ts +1 -2
- package/lib/typescript/src/GestureViewer.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +20 -8
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/useGestureViewer.d.ts +2 -2
- package/lib/typescript/src/useGestureViewer.d.ts.map +1 -1
- package/lib/typescript/src/utils.d.ts +3 -3
- package/lib/typescript/src/utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/GestureViewer.tsx +13 -14
- package/src/types.ts +53 -12
- package/src/useGestureViewer.ts +26 -31
- package/src/utils.ts +4 -4
|
@@ -16,6 +16,7 @@ export function GestureViewer({
|
|
|
16
16
|
renderContainer,
|
|
17
17
|
ListComponent,
|
|
18
18
|
width: customWidth,
|
|
19
|
+
height: customHeight,
|
|
19
20
|
listProps,
|
|
20
21
|
backdropStyle: backdropStyleProps,
|
|
21
22
|
containerStyle,
|
|
@@ -31,7 +32,8 @@ export function GestureViewer({
|
|
|
31
32
|
width: screenWidth,
|
|
32
33
|
height: screenHeight
|
|
33
34
|
} = useWindowDimensions();
|
|
34
|
-
const width =
|
|
35
|
+
const width = customWidth || screenWidth;
|
|
36
|
+
const height = customHeight || screenHeight;
|
|
35
37
|
const loopData = useMemo(() => createLoopData(dataRef, enableLoop), [enableLoop]);
|
|
36
38
|
const isScrollView = isScrollViewLike(Component);
|
|
37
39
|
const {
|
|
@@ -49,9 +51,9 @@ export function GestureViewer({
|
|
|
49
51
|
id,
|
|
50
52
|
data,
|
|
51
53
|
width,
|
|
54
|
+
height,
|
|
52
55
|
initialIndex,
|
|
53
56
|
itemSpacing,
|
|
54
|
-
useSnap,
|
|
55
57
|
enableLoop,
|
|
56
58
|
...props
|
|
57
59
|
});
|
|
@@ -68,12 +70,12 @@ export function GestureViewer({
|
|
|
68
70
|
return /*#__PURE__*/_jsx(View, {
|
|
69
71
|
style: [{
|
|
70
72
|
width,
|
|
71
|
-
height
|
|
73
|
+
height,
|
|
72
74
|
marginHorizontal: itemSpacing / 2
|
|
73
75
|
}, styles.item],
|
|
74
76
|
children: renderItemProp(item, index)
|
|
75
77
|
}, isScrollView ? keyExtractor(item, index) : undefined);
|
|
76
|
-
}, [width, itemSpacing, renderItemProp, keyExtractor, isScrollView,
|
|
78
|
+
}, [width, itemSpacing, renderItemProp, keyExtractor, isScrollView, height]);
|
|
77
79
|
const getItemLayout = useCallback((_, index) => ({
|
|
78
80
|
length: width + itemSpacing,
|
|
79
81
|
offset: (width + itemSpacing) * index,
|
|
@@ -112,7 +114,10 @@ export function GestureViewer({
|
|
|
112
114
|
children: /*#__PURE__*/_jsx(GestureDetector, {
|
|
113
115
|
gesture: gesture,
|
|
114
116
|
children: /*#__PURE__*/_jsxs(View, {
|
|
115
|
-
style: [
|
|
117
|
+
style: [{
|
|
118
|
+
height,
|
|
119
|
+
width
|
|
120
|
+
}, containerStyle],
|
|
116
121
|
children: [/*#__PURE__*/_jsx(Animated.View, {
|
|
117
122
|
style: [styles.background, backdropStyleProps, backdropStyle]
|
|
118
123
|
}), /*#__PURE__*/_jsx(Animated.View, {
|
|
@@ -160,9 +165,6 @@ export function GestureViewer({
|
|
|
160
165
|
return renderContainer ? renderContainer(listComponent, control) : listComponent;
|
|
161
166
|
}
|
|
162
167
|
const styles = StyleSheet.create({
|
|
163
|
-
container: {
|
|
164
|
-
flex: 1
|
|
165
|
-
},
|
|
166
168
|
item: {
|
|
167
169
|
justifyContent: 'center',
|
|
168
170
|
alignItems: 'center'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","Platform","StyleSheet","useWindowDimensions","View","Gesture","GestureDetector","GestureHandlerRootView","Animated","registry","useGestureViewer","createLoopData","isFlashListLike","isFlatListLike","isScrollViewLike","WebPagingFixStyle","jsx","_jsx","jsxs","_jsxs","GestureViewer","id","data","renderItem","renderItemProp","renderContainer","ListComponent","width","customWidth","listProps","backdropStyle","backdropStyleProps","containerStyle","initialIndex","itemSpacing","useSnap","enableLoop","props","Component","dataRef","screenWidth","
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","Platform","StyleSheet","useWindowDimensions","View","Gesture","GestureDetector","GestureHandlerRootView","Animated","registry","useGestureViewer","createLoopData","isFlashListLike","isFlatListLike","isScrollViewLike","WebPagingFixStyle","jsx","_jsx","jsxs","_jsxs","GestureViewer","id","data","renderItem","renderItemProp","renderContainer","ListComponent","width","customWidth","height","customHeight","listProps","backdropStyle","backdropStyleProps","containerStyle","initialIndex","itemSpacing","useSnap","enableLoop","props","Component","dataRef","screenWidth","screenHeight","loopData","isScrollView","listRef","isZoomed","isRotated","dismissGesture","zoomGesture","onMomentumScrollEnd","onScrollBeginDrag","handleDismiss","animatedStyle","keyExtractor","item","index","style","marginHorizontal","styles","children","undefined","getItemLayout","_","length","offset","gesture","Race","current","createManager","deleteManager","commonProps","horizontal","scrollEnabled","showsHorizontalScrollIndicator","snapToInterval","snapToAlignment","decelerationRate","pagingEnabled","scrollEventThrottle","removeClippedSubviews","control","dismiss","listComponent","background","content","OS","dataSet","ref","map","initialScrollIndex","estimatedItemSize","windowSize","maxToRenderPerBatch","create","justifyContent","alignItems","flex","position","top","left","right","bottom","backgroundColor"],"sourceRoot":"../../src","sources":["GestureViewer.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,6 +12,7 @@ export const useGestureViewer = ({
|
|
|
12
12
|
onIndexChange,
|
|
13
13
|
onDismiss,
|
|
14
14
|
width: customWidth,
|
|
15
|
+
height: customHeight,
|
|
15
16
|
dismissThreshold = 80,
|
|
16
17
|
resistance = 2,
|
|
17
18
|
animateBackdrop = true,
|
|
@@ -23,7 +24,6 @@ export const useGestureViewer = ({
|
|
|
23
24
|
enableLoop = false,
|
|
24
25
|
maxZoomScale = 2,
|
|
25
26
|
itemSpacing = 0,
|
|
26
|
-
useSnap = false,
|
|
27
27
|
id = 'default',
|
|
28
28
|
onDismissStart,
|
|
29
29
|
triggerAnimation
|
|
@@ -32,7 +32,8 @@ export const useGestureViewer = ({
|
|
|
32
32
|
width: screenWidth,
|
|
33
33
|
height: screenHeight
|
|
34
34
|
} = useWindowDimensions();
|
|
35
|
-
const width =
|
|
35
|
+
const width = customWidth || screenWidth;
|
|
36
|
+
const height = customHeight || screenHeight;
|
|
36
37
|
const [isZoomed, setIsZoomed] = useState(false);
|
|
37
38
|
const [isRotated, setIsRotated] = useState(false);
|
|
38
39
|
const [manager, setManager] = useState(null);
|
|
@@ -69,8 +70,8 @@ export const useGestureViewer = ({
|
|
|
69
70
|
}, [enableLoop, data.length, initialIndex]);
|
|
70
71
|
const constrainTranslation = useMemo(() => createBoundsConstraint({
|
|
71
72
|
width,
|
|
72
|
-
height
|
|
73
|
-
}), [width,
|
|
73
|
+
height
|
|
74
|
+
}), [width, height]);
|
|
74
75
|
const onAnimationComplete = useCallback(() => {
|
|
75
76
|
onAnimationCompleteRef.current?.();
|
|
76
77
|
}, []);
|
|
@@ -109,9 +110,9 @@ export const useGestureViewer = ({
|
|
|
109
110
|
}, [triggerAnimation?.onAnimationComplete]);
|
|
110
111
|
useEffect(() => {
|
|
111
112
|
if (shouldStartTriggerAnimation && triggerRectRef.current) {
|
|
112
|
-
const startX = triggerRectRef.current.x + triggerRectRef.current.width / 2 -
|
|
113
|
-
const startY = triggerRectRef.current.y + triggerRectRef.current.height / 2 -
|
|
114
|
-
const initialScaleFromTrigger = Math.min(triggerRectRef.current.width /
|
|
113
|
+
const startX = triggerRectRef.current.x + triggerRectRef.current.width / 2 - width / 2;
|
|
114
|
+
const startY = triggerRectRef.current.y + triggerRectRef.current.height / 2 - height / 2;
|
|
115
|
+
const initialScaleFromTrigger = Math.min(triggerRectRef.current.width / width, triggerRectRef.current.height / height);
|
|
115
116
|
triggerScale.value = initialScaleFromTrigger;
|
|
116
117
|
triggerTranslateX.value = startX;
|
|
117
118
|
triggerTranslateY.value = startY;
|
|
@@ -130,7 +131,7 @@ export const useGestureViewer = ({
|
|
|
130
131
|
});
|
|
131
132
|
setShouldStartTriggerAnimation(false);
|
|
132
133
|
}
|
|
133
|
-
}, [shouldStartTriggerAnimation, animationConfig,
|
|
134
|
+
}, [shouldStartTriggerAnimation, animationConfig, width, height, triggerOpacity, triggerScale, triggerTranslateX, triggerTranslateY, onAnimationComplete]);
|
|
134
135
|
useEffect(() => {
|
|
135
136
|
const node = registry.getTriggerNode(id);
|
|
136
137
|
if (node && typeof node.measure === 'function') {
|
|
@@ -180,12 +181,12 @@ export const useGestureViewer = ({
|
|
|
180
181
|
manager.setEnableSwipeGesture(enableSwipeGesture);
|
|
181
182
|
manager.setCurrentIndex(initialIndex);
|
|
182
183
|
manager.setWidth(width + itemSpacing);
|
|
183
|
-
manager.setHeight(
|
|
184
|
+
manager.setHeight(height);
|
|
184
185
|
manager.setZoomSharedValues(scale, translateX, translateY, maxZoomScale);
|
|
185
186
|
manager.setRotation(rotation);
|
|
186
187
|
manager.setEnableLoop(enableLoop);
|
|
187
188
|
manager.notifyStateChange();
|
|
188
|
-
}, [dataLength, enableSwipeGesture, initialIndex, manager, width, itemSpacing, maxZoomScale, enableLoop, scale,
|
|
189
|
+
}, [dataLength, enableSwipeGesture, initialIndex, manager, width, itemSpacing, maxZoomScale, enableLoop, scale, height, translateX, translateY, rotation]);
|
|
189
190
|
useEffect(() => {
|
|
190
191
|
if (!manager || !listRef.current) {
|
|
191
192
|
return;
|
|
@@ -212,9 +213,9 @@ export const useGestureViewer = ({
|
|
|
212
213
|
const handleDismiss = useCallback(() => {
|
|
213
214
|
onDismissStart?.();
|
|
214
215
|
if (triggerRectRef.current) {
|
|
215
|
-
const endX = triggerRectRef.current.x + triggerRectRef.current.width / 2 -
|
|
216
|
-
const endY = triggerRectRef.current.y + triggerRectRef.current.height / 2 -
|
|
217
|
-
const endScale = Math.min(triggerRectRef.current.width /
|
|
216
|
+
const endX = triggerRectRef.current.x + triggerRectRef.current.width / 2 - width / 2;
|
|
217
|
+
const endY = triggerRectRef.current.y + triggerRectRef.current.height / 2 - height / 2;
|
|
218
|
+
const endScale = Math.min(triggerRectRef.current.width / width, triggerRectRef.current.height / height);
|
|
218
219
|
triggerScale.value = withTiming(endScale, animationConfig);
|
|
219
220
|
triggerTranslateX.value = withTiming(endX, animationConfig);
|
|
220
221
|
triggerTranslateY.value = withTiming(endY, animationConfig);
|
|
@@ -228,7 +229,7 @@ export const useGestureViewer = ({
|
|
|
228
229
|
if (onDismiss) {
|
|
229
230
|
runOnJS(onDismiss)();
|
|
230
231
|
}
|
|
231
|
-
}, [animationConfig, onDismiss, onDismissStart,
|
|
232
|
+
}, [animationConfig, onDismiss, onDismissStart, width, height, triggerTranslateX, triggerScale, triggerTranslateY, triggerOpacity]);
|
|
232
233
|
const onMomentumScrollEnd = useCallback(event => {
|
|
233
234
|
if (!enableSwipeGesture) {
|
|
234
235
|
return;
|
|
@@ -292,7 +293,7 @@ export const useGestureViewer = ({
|
|
|
292
293
|
}
|
|
293
294
|
const deltaScale = newScale - startScale.value;
|
|
294
295
|
const centerX = event.focalX - width / 2;
|
|
295
|
-
const centerY = event.focalY -
|
|
296
|
+
const centerY = event.focalY - height / 2;
|
|
296
297
|
|
|
297
298
|
// NOTE 새로운 이동값 = 기존 이동값 - (중심점 거리 × 스케일 변화량) / 원래 스케일 (중심점이 화면 중심에서 멀수록, 확대 배율이 클수록 더 많이 이동)
|
|
298
299
|
const newTranslateX = initialTranslateX.value - centerX * deltaScale / startScale.value;
|
|
@@ -347,7 +348,7 @@ export const useGestureViewer = ({
|
|
|
347
348
|
translateX.value = withTiming(constrainedTranslateX);
|
|
348
349
|
translateY.value = withTiming(constrainedTranslateY);
|
|
349
350
|
});
|
|
350
|
-
}, [scale, enableZoomGesture, maxZoomScale, translateX, translateY, startScale, initialTranslateX, initialTranslateY, width,
|
|
351
|
+
}, [scale, enableZoomGesture, maxZoomScale, translateX, translateY, startScale, initialTranslateX, initialTranslateY, width, height, constrainTranslation]);
|
|
351
352
|
const zoomPanGesture = useMemo(() => {
|
|
352
353
|
return Gesture.Pan().enabled(enableZoomPanGesture && isZoomed).activeCursor('grabbing').averageTouches(true).onBegin(() => {
|
|
353
354
|
initialTranslateX.value = translateX.value;
|
|
@@ -374,7 +375,7 @@ export const useGestureViewer = ({
|
|
|
374
375
|
const nextScale = scale.value > 1 ? 1 : maxZoomScale;
|
|
375
376
|
if (nextScale > 1) {
|
|
376
377
|
const centerX = event.x - width / 2;
|
|
377
|
-
const centerY = event.y -
|
|
378
|
+
const centerY = event.y - height / 2;
|
|
378
379
|
|
|
379
380
|
// NOTE 확대로 밀려난 거리만큼 반대로 이동해서 탭 지점을 제자리에 유지
|
|
380
381
|
translateX.value = withTiming(-centerX * (nextScale - 1), {
|
|
@@ -400,7 +401,7 @@ export const useGestureViewer = ({
|
|
|
400
401
|
easing: Easing.bezier(0.25, 0.1, 0.25, 1.0)
|
|
401
402
|
});
|
|
402
403
|
});
|
|
403
|
-
}, [scale, enableDoubleTapGesture, maxZoomScale, translateX, translateY, width,
|
|
404
|
+
}, [scale, enableDoubleTapGesture, maxZoomScale, translateX, translateY, width, height]);
|
|
404
405
|
const zoomGesture = useMemo(() => {
|
|
405
406
|
return Gesture.Race(zoomPinchGesture, Gesture.Exclusive(zoomPanGesture, doubleTapGesture));
|
|
406
407
|
}, [zoomPinchGesture, zoomPanGesture, doubleTapGesture]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","InteractionManager","useWindowDimensions","Gesture","Easing","interpolate","runOnJS","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","registry","createBoundsConstraint","createScrollAction","getLoopAdjustedIndex","useGestureViewer","data","initialIndex","onIndexChange","onDismiss","width","customWidth","dismissThreshold","resistance","animateBackdrop","enableDismissGesture","enableSwipeGesture","enableZoomGesture","enableDoubleTapGesture","enableZoomPanGesture","enableLoop","maxZoomScale","itemSpacing","useSnap","id","onDismissStart","triggerAnimation","screenWidth","height","screenHeight","isZoomed","setIsZoomed","isRotated","setIsRotated","manager","setManager","shouldStartTriggerAnimation","setShouldStartTriggerAnimation","listRef","unsubscribeRef","onIndexChangeRef","lastEmittedIndexRef","triggerRectRef","onAnimationCompleteRef","onAnimationComplete","initialTranslateY","initialTranslateX","startScale","translateY","translateX","scale","backdropOpacity","rotation","triggerScale","triggerTranslateX","triggerTranslateY","triggerOpacity","dataLength","length","animationConfig","duration","easing","bezier","reduceMotion","adjustedInitialIndex","constrainTranslation","current","scrollTo","index","animated","scrollAction","emitZoomChange","currentScale","prevScale","emitRotationChange","currentRotation","prevRotation","value","previousScale","previousRotation","startX","x","startY","y","initialScaleFromTrigger","Math","min","finished","node","getTriggerNode","measure","_x","_y","pageX","pageY","clearTriggerNode","handleManagerChange","subscribe","state","currentIndex","unsubscribeFromRegistry","subscribeToManager","setDataLength","setEnableSwipeGesture","setCurrentIndex","setWidth","setHeight","setZoomSharedValues","setRotation","setEnableLoop","notifyStateChange","setListRef","runAfterInteractions","cancel","handleDismiss","endX","endY","endScale","onMomentumScrollEnd","event","contentOffset","nativeEvent","scrollIndex","round","isLoopHandled","handleMomentumScrollEnd","realIndex","needsJump","jumpToIndex","undefined","getState","dismissGesture","canDismiss","Pan","minDistance","averageTouches","activeCursor","activeOffsetY","failOffsetX","enabled","onUpdate","translationY","onEnd","damping","stiffness","zoomPinchGesture","Pinch","onBegin","newScale","deltaScale","centerX","focalX","centerY","focalY","newTranslateX","newTranslateY","constrainedTranslateX","constrainedTranslateY","zoomPanGesture","translationX","doubleTapGesture","Tap","numberOfTaps","nextScale","zoomGesture","Race","Exclusive","animatedStyle","opacity","transform","rotate","backdropStyle","baseOpacity","dismissOpacity","onScrollBeginDrag","handleScrollBeginDrag"],"sourceRoot":"../../src","sources":["useGestureViewer.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","InteractionManager","useWindowDimensions","Gesture","Easing","interpolate","runOnJS","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","registry","createBoundsConstraint","createScrollAction","getLoopAdjustedIndex","useGestureViewer","data","initialIndex","onIndexChange","onDismiss","width","customWidth","height","customHeight","dismissThreshold","resistance","animateBackdrop","enableDismissGesture","enableSwipeGesture","enableZoomGesture","enableDoubleTapGesture","enableZoomPanGesture","enableLoop","maxZoomScale","itemSpacing","id","onDismissStart","triggerAnimation","screenWidth","screenHeight","isZoomed","setIsZoomed","isRotated","setIsRotated","manager","setManager","shouldStartTriggerAnimation","setShouldStartTriggerAnimation","listRef","unsubscribeRef","onIndexChangeRef","lastEmittedIndexRef","triggerRectRef","onAnimationCompleteRef","onAnimationComplete","initialTranslateY","initialTranslateX","startScale","translateY","translateX","scale","backdropOpacity","rotation","triggerScale","triggerTranslateX","triggerTranslateY","triggerOpacity","dataLength","length","animationConfig","duration","easing","bezier","reduceMotion","adjustedInitialIndex","constrainTranslation","current","scrollTo","index","animated","scrollAction","emitZoomChange","currentScale","prevScale","emitRotationChange","currentRotation","prevRotation","value","previousScale","previousRotation","startX","x","startY","y","initialScaleFromTrigger","Math","min","finished","node","getTriggerNode","measure","_x","_y","pageX","pageY","clearTriggerNode","handleManagerChange","subscribe","state","currentIndex","unsubscribeFromRegistry","subscribeToManager","setDataLength","setEnableSwipeGesture","setCurrentIndex","setWidth","setHeight","setZoomSharedValues","setRotation","setEnableLoop","notifyStateChange","setListRef","runAfterInteractions","cancel","handleDismiss","endX","endY","endScale","onMomentumScrollEnd","event","contentOffset","nativeEvent","scrollIndex","round","isLoopHandled","handleMomentumScrollEnd","realIndex","needsJump","jumpToIndex","undefined","getState","dismissGesture","canDismiss","Pan","minDistance","averageTouches","activeCursor","activeOffsetY","failOffsetX","enabled","onUpdate","translationY","onEnd","damping","stiffness","zoomPinchGesture","Pinch","onBegin","newScale","deltaScale","centerX","focalX","centerY","focalY","newTranslateX","newTranslateY","constrainedTranslateX","constrainedTranslateY","zoomPanGesture","translationX","doubleTapGesture","Tap","numberOfTaps","nextScale","zoomGesture","Race","Exclusive","animatedStyle","opacity","transform","rotate","backdropStyle","baseOpacity","dismissOpacity","onScrollBeginDrag","handleScrollBeginDrag"],"sourceRoot":"../../src","sources":["useGestureViewer.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/utils.js
CHANGED
|
@@ -20,7 +20,7 @@ export const isFlashListLike = component => {
|
|
|
20
20
|
} catch {
|
|
21
21
|
// do nothing
|
|
22
22
|
}
|
|
23
|
-
return component?.name === 'FlashList';
|
|
23
|
+
return component?.displayName === 'FlashList' || component?.name === 'FlashList';
|
|
24
24
|
};
|
|
25
25
|
export const createBoundsConstraint = ({
|
|
26
26
|
width,
|
package/lib/module/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["FlatList","RNFlatList","ScrollView","RNScrollView","GestureFlatList","GestureScrollView","isScrollViewLike","component","isFlatListLike","isFlashListLike","FlashList","require","name","createBoundsConstraint","width","height","scale","translateX","translateY","maxTranslateX","maxTranslateY","Math","max","min","createLoopData","dataRef","enableLoop","data","current","length","lastItem","firstItem","undefined","getLoopAdjustedIndex","scrollIndex","originalDataLength","realIndex","needsJump","jumpToIndex","createScrollAction","listRef","scrollTo","index","animated","scrollToIndex","x"],"sourceRoot":"../../src","sources":["utils.ts"],"mappings":";;AAAA,SAASA,QAAQ,IAAIC,UAAU,EAAEC,UAAU,IAAIC,YAAY,QAAQ,cAAc;AACjF,SAASH,QAAQ,IAAII,eAAe,EAAEF,UAAU,IAAIG,iBAAiB,QAAQ,8BAA8B;AAG3G,OAAO,MAAMC,gBAAgB,GAAIC,
|
|
1
|
+
{"version":3,"names":["FlatList","RNFlatList","ScrollView","RNScrollView","GestureFlatList","GestureScrollView","isScrollViewLike","component","isFlatListLike","isFlashListLike","FlashList","require","displayName","name","createBoundsConstraint","width","height","scale","translateX","translateY","maxTranslateX","maxTranslateY","Math","max","min","createLoopData","dataRef","enableLoop","data","current","length","lastItem","firstItem","undefined","getLoopAdjustedIndex","scrollIndex","originalDataLength","realIndex","needsJump","jumpToIndex","createScrollAction","listRef","scrollTo","index","animated","scrollToIndex","x"],"sourceRoot":"../../src","sources":["utils.ts"],"mappings":";;AAAA,SAASA,QAAQ,IAAIC,UAAU,EAAEC,UAAU,IAAIC,YAAY,QAAQ,cAAc;AACjF,SAASH,QAAQ,IAAII,eAAe,EAAEF,UAAU,IAAIG,iBAAiB,QAAQ,8BAA8B;AAG3G,OAAO,MAAMC,gBAAgB,GAAIC,SAAmC,IAAuC;EACzG,OAAOA,SAAS,KAAKJ,YAAY,IAAII,SAAS,KAAKF,iBAAiB;AACtE,CAAC;AAED,OAAO,MAAMG,cAAc,GAAID,SAAmC,IAA0C;EAC1G,IAAIA,SAAS,KAAKN,UAAU,IAAIM,SAAS,KAAKH,eAAe,IAAIK,eAAe,CAACF,SAAS,CAAC,EAAE;IAC3F,OAAO,IAAI;EACb;EAEA,OAAO,KAAK;AACd,CAAC;AAED,OAAO,MAAME,eAAe,GAAIF,SAAmC,IAAc;EAC/E,IAAI;IACF,MAAMG,SAAS,GAAGC,OAAO,CAAC,qBAAqB,CAAC,EAAED,SAAS;IAE3D,IAAIA,SAAS,IAAIH,SAAS,KAAKG,SAAS,EAAE;MACxC,OAAO,IAAI;IACb;EACF,CAAC,CAAC,MAAM;IACN;EAAA;EAGF,OAAOH,SAAS,EAAEK,WAAW,KAAK,WAAW,IAAIL,SAAS,EAAEM,IAAI,KAAK,WAAW;AAClF,CAAC;AAED,OAAO,MAAMC,sBAAsB,GACjCA,CAAC;EAAEC,KAAK;EAAEC;AAA0C,CAAC,KACrD,CAAC;EAAEC,KAAK;EAAEC,UAAU;EAAEC;AAAsE,CAAC,KAAK;EAChG,SAAS;;EAET,IAAIF,KAAK,IAAI,CAAC,EAAE;IACd,OAAO;MACLC,UAAU;MACVC;IACF,CAAC;EACH;EAEA,MAAMC,aAAa,GAAG,CAACL,KAAK,GAAGE,KAAK,GAAGF,KAAK,IAAI,CAAC;EACjD,MAAMM,aAAa,GAAG,CAACL,MAAM,GAAGC,KAAK,GAAGD,MAAM,IAAI,CAAC;EAEnD,OAAO;IACLE,UAAU,EAAEI,IAAI,CAACC,GAAG,CAAC,CAACH,aAAa,EAAEE,IAAI,CAACE,GAAG,CAACJ,aAAa,EAAEF,UAAU,CAAC,CAAC;IACzEC,UAAU,EAAEG,IAAI,CAACC,GAAG,CAAC,CAACF,aAAa,EAAEC,IAAI,CAACE,GAAG,CAACH,aAAa,EAAEF,UAAU,CAAC;EAC1E,CAAC;AACH,CAAC;AAEH,OAAO,MAAMM,cAAc,GAAGA,CAAIC,OAA6B,EAAEC,UAAmB,KAAU;EAC5F,MAAMC,IAAI,GAAGF,OAAO,CAACG,OAAO;EAE5B,IAAI,CAACF,UAAU,IAAI,CAACC,IAAI,EAAEE,MAAM,IAAIF,IAAI,CAACE,MAAM,IAAI,CAAC,EAAE;IACpD,OAAOF,IAAI;EACb;EAEA,MAAMG,QAAQ,GAAGH,IAAI,CAACA,IAAI,CAACE,MAAM,GAAG,CAAC,CAAC;EACtC,MAAME,SAAS,GAAGJ,IAAI,CAAC,CAAC,CAAC;EAEzB,IAAIG,QAAQ,KAAKE,SAAS,IAAID,SAAS,KAAKC,SAAS,EAAE;IACrD,OAAOL,IAAI;EACb;EAEA,OAAO,CAACG,QAAQ,EAAE,GAAGH,IAAI,EAAEI,SAAS,CAAC;AACvC,CAAC;AAED,OAAO,MAAME,oBAAoB,GAAGA,CAClCC,WAAmB,EACnBC,kBAA0B,EAC1BT,UAAmB,KACiD;EACpE,IAAI,CAACA,UAAU,IAAIS,kBAAkB,IAAI,CAAC,EAAE;IAC1C,OAAO;MAAEC,SAAS,EAAEF,WAAW;MAAEG,SAAS,EAAE;IAAM,CAAC;EACrD;EAEA,IAAIH,WAAW,KAAK,CAAC,EAAE;IACrB,OAAO;MACLE,SAAS,EAAED,kBAAkB,GAAG,CAAC;MACjCE,SAAS,EAAE,IAAI;MACfC,WAAW,EAAEH;IACf,CAAC;EACH,CAAC,MAAM,IAAID,WAAW,KAAKC,kBAAkB,GAAG,CAAC,EAAE;IACjD,OAAO;MACLC,SAAS,EAAE,CAAC;MACZC,SAAS,EAAE,IAAI;MACfC,WAAW,EAAE;IACf,CAAC;EACH;EAEA,OAAO;IAAEF,SAAS,EAAEF,WAAW,GAAG,CAAC;IAAEG,SAAS,EAAE;EAAM,CAAC;AACzD,CAAC;AAED,OAAO,MAAME,kBAAkB,GAAGA,CAACC,OAAY,EAAE1B,KAAa,MAAM;EAClE2B,QAAQ,EAAEA,CAACC,KAAa,EAAEC,QAAiB,KAAK;IAC9C,IAAIH,OAAO,EAAEI,aAAa,EAAE;MAC1BJ,OAAO,CAACI,aAAa,CAAC;QAAEF,KAAK;QAAEC;MAAS,CAAC,CAAC;IAC5C,CAAC,MAAM,IAAIH,OAAO,EAAEC,QAAQ,EAAE;MAC5BD,OAAO,CAACC,QAAQ,CAAC;QAAEI,CAAC,EAAEH,KAAK,GAAG5B,KAAK;QAAE6B;MAAS,CAAC,CAAC;IAClD;EACF;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { type FlatList } from 'react-native';
|
|
2
1
|
import type { GestureViewerProps } from './types';
|
|
3
|
-
export declare function GestureViewer<
|
|
2
|
+
export declare function GestureViewer<ItemT, LC>({ id, data, renderItem: renderItemProp, renderContainer, ListComponent, width: customWidth, height: customHeight, listProps, backdropStyle: backdropStyleProps, containerStyle, initialIndex, itemSpacing, useSnap, enableLoop, ...props }: GestureViewerProps<ItemT, LC>): import("react/jsx-runtime").JSX.Element;
|
|
4
3
|
//# sourceMappingURL=GestureViewer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GestureViewer.d.ts","sourceRoot":"","sources":["../../../src/GestureViewer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GestureViewer.d.ts","sourceRoot":"","sources":["../../../src/GestureViewer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAKlD,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,OAAe,EACf,UAAkB,EAClB,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,2CA8J/B"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
-
import type { FlatList as RNFlatList, ScrollView as RNScrollView, StyleProp, ViewStyle } from 'react-native';
|
|
2
|
+
import type { ListRenderItem, FlatList as RNFlatList, ScrollView as RNScrollView, StyleProp, ViewStyle } from 'react-native';
|
|
3
3
|
import type { FlatList as GHFlatList, ScrollView as GHScrollView } from 'react-native-gesture-handler';
|
|
4
4
|
import type { WithTimingConfig } from 'react-native-reanimated';
|
|
5
|
-
export type FlatListComponent = typeof RNFlatList | typeof GHFlatList
|
|
5
|
+
export type FlatListComponent<ItemT> = typeof RNFlatList<ItemT> | typeof GHFlatList<ItemT>;
|
|
6
6
|
export type ScrollViewComponent = typeof RNScrollView | typeof GHScrollView;
|
|
7
|
-
type
|
|
8
|
-
|
|
7
|
+
export type InstantiateGeneric<ItemT, LC> = LC extends React.ComponentType<infer P> ? P extends Record<string, any> ? {
|
|
8
|
+
[K in keyof P]: K extends 'data' ? ArrayLike<ItemT> | null | undefined : K extends 'renderItem' ? ListRenderItem<ItemT> : K extends 'keyExtractor' ? (item: ItemT, index: number) => string : K extends 'getItemType' ? (item: ItemT, index: number, extraData?: any) => string | number | undefined : K extends 'overrideItemLayout' ? (layout: {
|
|
9
|
+
span?: number;
|
|
10
|
+
size?: number;
|
|
11
|
+
}, item: ItemT, index: number, maxColumns?: number, extraData?: any) => void : P[K];
|
|
12
|
+
} : P : never;
|
|
13
|
+
export type GetComponentProps<ItemT, LC> = LC extends React.ComponentType<any> ? InstantiateGeneric<ItemT, LC> : never;
|
|
14
|
+
type ConditionalListProps<ItemT, LC> = LC extends typeof RNFlatList<ItemT> ? React.ComponentProps<typeof RNFlatList<ItemT>> : LC extends typeof GHFlatList<ItemT> ? React.ComponentProps<typeof GHFlatList<ItemT>> : LC extends typeof RNScrollView ? React.ComponentProps<typeof RNScrollView> : LC extends typeof GHScrollView ? React.ComponentProps<typeof GHScrollView> : GetComponentProps<ItemT, LC>;
|
|
9
15
|
export type TriggerRect = {
|
|
10
16
|
x: number;
|
|
11
17
|
y: number;
|
|
@@ -28,7 +34,7 @@ export interface TriggerAnimationConfig extends WithTimingConfig {
|
|
|
28
34
|
*/
|
|
29
35
|
onAnimationComplete?: () => void;
|
|
30
36
|
}
|
|
31
|
-
export interface GestureViewerProps<
|
|
37
|
+
export interface GestureViewerProps<ItemT, LC> {
|
|
32
38
|
/**
|
|
33
39
|
* When you want to efficiently manage multiple `GestureViewer` instances, you can use the `id` prop to use multiple `GestureViewer` components.
|
|
34
40
|
* @remarks `GestureViewer` automatically removes instances from memory when components are unmounted, so no manual memory management is required.
|
|
@@ -38,7 +44,7 @@ export interface GestureViewerProps<T = any, LC = typeof RNFlatList> {
|
|
|
38
44
|
/**
|
|
39
45
|
* The data to display in the `GestureViewer`.
|
|
40
46
|
*/
|
|
41
|
-
data:
|
|
47
|
+
data: ItemT[];
|
|
42
48
|
/**
|
|
43
49
|
* The index of the item to display in the `GestureViewer` when the component is mounted.
|
|
44
50
|
* @defaultValue 0
|
|
@@ -60,7 +66,7 @@ export interface GestureViewerProps<T = any, LC = typeof RNFlatList> {
|
|
|
60
66
|
/**
|
|
61
67
|
* A callback function that is called to render the item.
|
|
62
68
|
*/
|
|
63
|
-
renderItem: (item:
|
|
69
|
+
renderItem: (item: ItemT, index: number) => React.ReactElement;
|
|
64
70
|
/**
|
|
65
71
|
* A callback function that is called to render the container.
|
|
66
72
|
* @remarks Useful for composing additional UI (e.g., close button, toolbars) around the viewer.
|
|
@@ -83,6 +89,12 @@ export interface GestureViewerProps<T = any, LC = typeof RNFlatList> {
|
|
|
83
89
|
* @defaultValue screen width
|
|
84
90
|
*/
|
|
85
91
|
width?: number;
|
|
92
|
+
/**
|
|
93
|
+
* The height of the `GestureViewer`.
|
|
94
|
+
* @remarks If you don't set this prop, the height of the `GestureViewer` will be the same as the height of the screen.
|
|
95
|
+
* @defaultValue screen height
|
|
96
|
+
*/
|
|
97
|
+
height?: number;
|
|
86
98
|
/**
|
|
87
99
|
* Enables snap scrolling mode.
|
|
88
100
|
*
|
|
@@ -123,7 +135,7 @@ export interface GestureViewerProps<T = any, LC = typeof RNFlatList> {
|
|
|
123
135
|
* The props to pass to the list component.
|
|
124
136
|
* @remarks The `listProps` provides **type inference based on the selected list component**, ensuring accurate autocompletion and type safety in your IDE.
|
|
125
137
|
*/
|
|
126
|
-
listProps?: Partial<ConditionalListProps<LC>>;
|
|
138
|
+
listProps?: Partial<ConditionalListProps<ItemT, LC>>;
|
|
127
139
|
/**
|
|
128
140
|
* The style of the backdrop.
|
|
129
141
|
*/
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type NativeScrollEvent, type NativeSyntheticEvent } from 'react-native';
|
|
2
2
|
import type { GestureViewerProps } from './types';
|
|
3
|
-
type UseGestureViewerProps<
|
|
4
|
-
export declare const useGestureViewer: <
|
|
3
|
+
type UseGestureViewerProps<ItemT, LC> = Omit<GestureViewerProps<ItemT, LC>, 'renderItem' | 'renderContainer' | 'ListComponent' | 'listProps' | 'containerStyle' | 'backdropStyle' | 'useSnap'>;
|
|
4
|
+
export declare const useGestureViewer: <ItemT, LC>({ data, initialIndex, onIndexChange, onDismiss, width: customWidth, height: customHeight, dismissThreshold, resistance, animateBackdrop, enableDismissGesture, enableSwipeGesture, enableZoomGesture, enableDoubleTapGesture, enableZoomPanGesture, enableLoop, maxZoomScale, itemSpacing, id, onDismissStart, triggerAnimation, }: UseGestureViewerProps<ItemT, LC>) => {
|
|
5
5
|
dataLength: number;
|
|
6
6
|
listRef: import("react").RefObject<any>;
|
|
7
7
|
isZoomed: boolean;
|
|
@@ -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;AAG/D,KAAK,qBAAqB,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;AAG/D,KAAK,qBAAqB,CAAC,KAAK,EAAE,EAAE,IAAI,IAAI,CAC1C,kBAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,EAC7B,YAAY,GAAG,iBAAiB,GAAG,eAAe,GAAG,WAAW,GAAG,gBAAgB,GAAG,eAAe,GAAG,SAAS,CAClH,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,EAAE,EAAE,EAAE,oUAqBzC,qBAAqB,CAAC,KAAK,EAAE,EAAE,CAAC;;;;;;;iCAwSvB,oBAAoB,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuSlD,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { FlatListComponent, ScrollViewComponent } from './types';
|
|
2
|
-
export declare const isScrollViewLike: (component: any) => component is ScrollViewComponent;
|
|
3
|
-
export declare const isFlatListLike: (component: any) => component is FlatListComponent
|
|
4
|
-
export declare const isFlashListLike: (component: any) =>
|
|
2
|
+
export declare const isScrollViewLike: (component: React.ComponentType<any>) => component is ScrollViewComponent;
|
|
3
|
+
export declare const isFlatListLike: (component: React.ComponentType<any>) => component is FlatListComponent<any>;
|
|
4
|
+
export declare const isFlashListLike: (component: React.ComponentType<any>) => boolean;
|
|
5
5
|
export declare const createBoundsConstraint: ({ width, height }: {
|
|
6
6
|
width: number;
|
|
7
7
|
height: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEtE,eAAO,MAAM,gBAAgB,GAAI,WAAW,GAAG,KAAG,SAAS,IAAI,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEtE,eAAO,MAAM,gBAAgB,GAAI,WAAW,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,KAAG,SAAS,IAAI,mBAEnF,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,WAAW,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,KAAG,SAAS,IAAI,iBAAiB,CAAC,GAAG,CAMtG,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,WAAW,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,KAAG,OAYrE,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAChC,mBAAmB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,MACpD,mCAAmC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;;;CAiB5F,CAAC;AAEJ,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,SAAS,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,OAAO,KAAG,CAAC,EAevF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,aAAa,MAAM,EACnB,oBAAoB,MAAM,EAC1B,YAAY,OAAO,KAClB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAoB/D,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,SAAS,GAAG,EAAE,OAAO,MAAM;sBAC1C,MAAM,YAAY,OAAO;CAO3C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-gesture-image-viewer",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.1",
|
|
4
4
|
"description": "🖼️ React Native Image Viewer - Reanimated-powered image gestures with full control",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
package/src/GestureViewer.tsx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { Platform, type ScrollViewProps, StyleSheet, useWindowDimensions, View } from 'react-native';
|
|
3
3
|
import { Gesture, GestureDetector, GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
4
4
|
import Animated from 'react-native-reanimated';
|
|
5
5
|
import { registry } from './GestureViewerRegistry';
|
|
@@ -8,13 +8,14 @@ import { useGestureViewer } from './useGestureViewer';
|
|
|
8
8
|
import { createLoopData, isFlashListLike, isFlatListLike, isScrollViewLike } from './utils';
|
|
9
9
|
import WebPagingFixStyle from './WebPagingFixStyle';
|
|
10
10
|
|
|
11
|
-
export function GestureViewer<
|
|
11
|
+
export function GestureViewer<ItemT, LC>({
|
|
12
12
|
id = 'default',
|
|
13
13
|
data,
|
|
14
14
|
renderItem: renderItemProp,
|
|
15
15
|
renderContainer,
|
|
16
16
|
ListComponent,
|
|
17
17
|
width: customWidth,
|
|
18
|
+
height: customHeight,
|
|
18
19
|
listProps,
|
|
19
20
|
backdropStyle: backdropStyleProps,
|
|
20
21
|
containerStyle,
|
|
@@ -23,14 +24,15 @@ export function GestureViewer<T = any, LC = typeof FlatList>({
|
|
|
23
24
|
useSnap = false,
|
|
24
25
|
enableLoop = false,
|
|
25
26
|
...props
|
|
26
|
-
}: GestureViewerProps<
|
|
27
|
+
}: GestureViewerProps<ItemT, LC>) {
|
|
27
28
|
const Component = ListComponent as React.ComponentType<any>;
|
|
28
29
|
|
|
29
30
|
const dataRef = useRef(data);
|
|
30
31
|
|
|
31
32
|
const { width: screenWidth, height: screenHeight } = useWindowDimensions();
|
|
32
33
|
|
|
33
|
-
const width =
|
|
34
|
+
const width = customWidth || screenWidth;
|
|
35
|
+
const height = customHeight || screenHeight;
|
|
34
36
|
|
|
35
37
|
const loopData = useMemo(() => createLoopData(dataRef, enableLoop), [enableLoop]);
|
|
36
38
|
|
|
@@ -51,15 +53,15 @@ export function GestureViewer<T = any, LC = typeof FlatList>({
|
|
|
51
53
|
id,
|
|
52
54
|
data,
|
|
53
55
|
width,
|
|
56
|
+
height,
|
|
54
57
|
initialIndex,
|
|
55
58
|
itemSpacing,
|
|
56
|
-
useSnap,
|
|
57
59
|
enableLoop,
|
|
58
60
|
...props,
|
|
59
61
|
});
|
|
60
62
|
|
|
61
63
|
const keyExtractor = useCallback(
|
|
62
|
-
(item:
|
|
64
|
+
(item: ItemT, index: number) => {
|
|
63
65
|
if (enableLoop) {
|
|
64
66
|
return typeof item === 'string' ? `${item}-${index}` : `item-${index}`;
|
|
65
67
|
}
|
|
@@ -70,14 +72,14 @@ export function GestureViewer<T = any, LC = typeof FlatList>({
|
|
|
70
72
|
);
|
|
71
73
|
|
|
72
74
|
const renderItem = useCallback(
|
|
73
|
-
({ item, index }: { item:
|
|
75
|
+
({ item, index }: { item: ItemT; index: number }) => {
|
|
74
76
|
return (
|
|
75
77
|
<View
|
|
76
78
|
key={isScrollView ? keyExtractor(item, index) : undefined}
|
|
77
79
|
style={[
|
|
78
80
|
{
|
|
79
81
|
width,
|
|
80
|
-
height
|
|
82
|
+
height,
|
|
81
83
|
marginHorizontal: itemSpacing / 2,
|
|
82
84
|
},
|
|
83
85
|
styles.item,
|
|
@@ -87,11 +89,11 @@ export function GestureViewer<T = any, LC = typeof FlatList>({
|
|
|
87
89
|
</View>
|
|
88
90
|
);
|
|
89
91
|
},
|
|
90
|
-
[width, itemSpacing, renderItemProp, keyExtractor, isScrollView,
|
|
92
|
+
[width, itemSpacing, renderItemProp, keyExtractor, isScrollView, height],
|
|
91
93
|
);
|
|
92
94
|
|
|
93
95
|
const getItemLayout = useCallback(
|
|
94
|
-
(_: ArrayLike<
|
|
96
|
+
(_: ArrayLike<ItemT> | null | undefined, index: number) => ({
|
|
95
97
|
length: width + itemSpacing,
|
|
96
98
|
offset: (width + itemSpacing) * index,
|
|
97
99
|
index,
|
|
@@ -141,7 +143,7 @@ export function GestureViewer<T = any, LC = typeof FlatList>({
|
|
|
141
143
|
const listComponent = (
|
|
142
144
|
<GestureHandlerRootView>
|
|
143
145
|
<GestureDetector gesture={gesture}>
|
|
144
|
-
<View style={[
|
|
146
|
+
<View style={[{ height, width }, containerStyle]}>
|
|
145
147
|
<Animated.View style={[styles.background, backdropStyleProps, backdropStyle]} />
|
|
146
148
|
<Animated.View
|
|
147
149
|
style={[styles.content, animatedStyle]}
|
|
@@ -183,9 +185,6 @@ export function GestureViewer<T = any, LC = typeof FlatList>({
|
|
|
183
185
|
}
|
|
184
186
|
|
|
185
187
|
const styles = StyleSheet.create({
|
|
186
|
-
container: {
|
|
187
|
-
flex: 1,
|
|
188
|
-
},
|
|
189
188
|
item: {
|
|
190
189
|
justifyContent: 'center',
|
|
191
190
|
alignItems: 'center',
|
package/src/types.ts
CHANGED
|
@@ -1,18 +1,53 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
-
import type {
|
|
2
|
+
import type {
|
|
3
|
+
ListRenderItem,
|
|
4
|
+
FlatList as RNFlatList,
|
|
5
|
+
ScrollView as RNScrollView,
|
|
6
|
+
StyleProp,
|
|
7
|
+
ViewStyle,
|
|
8
|
+
} from 'react-native';
|
|
3
9
|
import type { FlatList as GHFlatList, ScrollView as GHScrollView } from 'react-native-gesture-handler';
|
|
4
10
|
import type { WithTimingConfig } from 'react-native-reanimated';
|
|
5
11
|
|
|
6
|
-
export type FlatListComponent = typeof RNFlatList | typeof GHFlatList
|
|
12
|
+
export type FlatListComponent<ItemT> = typeof RNFlatList<ItemT> | typeof GHFlatList<ItemT>;
|
|
7
13
|
export type ScrollViewComponent = typeof RNScrollView | typeof GHScrollView;
|
|
8
14
|
|
|
9
|
-
|
|
15
|
+
// Helper type to instantiate generic components with specific type parameter
|
|
16
|
+
export type InstantiateGeneric<ItemT, LC> = LC extends React.ComponentType<infer P>
|
|
17
|
+
? P extends Record<string, any>
|
|
18
|
+
? {
|
|
19
|
+
[K in keyof P]: K extends 'data'
|
|
20
|
+
? ArrayLike<ItemT> | null | undefined
|
|
21
|
+
: K extends 'renderItem'
|
|
22
|
+
? ListRenderItem<ItemT>
|
|
23
|
+
: K extends 'keyExtractor'
|
|
24
|
+
? (item: ItemT, index: number) => string
|
|
25
|
+
: K extends 'getItemType'
|
|
26
|
+
? (item: ItemT, index: number, extraData?: any) => string | number | undefined
|
|
27
|
+
: K extends 'overrideItemLayout'
|
|
28
|
+
? (
|
|
29
|
+
layout: { span?: number; size?: number },
|
|
30
|
+
item: ItemT,
|
|
31
|
+
index: number,
|
|
32
|
+
maxColumns?: number,
|
|
33
|
+
extraData?: any,
|
|
34
|
+
) => void
|
|
35
|
+
: P[K];
|
|
36
|
+
}
|
|
37
|
+
: P
|
|
38
|
+
: never;
|
|
10
39
|
|
|
11
|
-
type
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
40
|
+
export type GetComponentProps<ItemT, LC> = LC extends React.ComponentType<any> ? InstantiateGeneric<ItemT, LC> : never;
|
|
41
|
+
|
|
42
|
+
type ConditionalListProps<ItemT, LC> = LC extends typeof RNFlatList<ItemT>
|
|
43
|
+
? React.ComponentProps<typeof RNFlatList<ItemT>>
|
|
44
|
+
: LC extends typeof GHFlatList<ItemT>
|
|
45
|
+
? React.ComponentProps<typeof GHFlatList<ItemT>>
|
|
46
|
+
: LC extends typeof RNScrollView
|
|
47
|
+
? React.ComponentProps<typeof RNScrollView>
|
|
48
|
+
: LC extends typeof GHScrollView
|
|
49
|
+
? React.ComponentProps<typeof GHScrollView>
|
|
50
|
+
: GetComponentProps<ItemT, LC>;
|
|
16
51
|
|
|
17
52
|
export type TriggerRect = {
|
|
18
53
|
x: number;
|
|
@@ -38,7 +73,7 @@ export interface TriggerAnimationConfig extends WithTimingConfig {
|
|
|
38
73
|
onAnimationComplete?: () => void;
|
|
39
74
|
}
|
|
40
75
|
|
|
41
|
-
export interface GestureViewerProps<
|
|
76
|
+
export interface GestureViewerProps<ItemT, LC> {
|
|
42
77
|
/**
|
|
43
78
|
* When you want to efficiently manage multiple `GestureViewer` instances, you can use the `id` prop to use multiple `GestureViewer` components.
|
|
44
79
|
* @remarks `GestureViewer` automatically removes instances from memory when components are unmounted, so no manual memory management is required.
|
|
@@ -48,7 +83,7 @@ export interface GestureViewerProps<T = any, LC = typeof RNFlatList> {
|
|
|
48
83
|
/**
|
|
49
84
|
* The data to display in the `GestureViewer`.
|
|
50
85
|
*/
|
|
51
|
-
data:
|
|
86
|
+
data: ItemT[];
|
|
52
87
|
/**
|
|
53
88
|
* The index of the item to display in the `GestureViewer` when the component is mounted.
|
|
54
89
|
* @defaultValue 0
|
|
@@ -70,7 +105,7 @@ export interface GestureViewerProps<T = any, LC = typeof RNFlatList> {
|
|
|
70
105
|
/**
|
|
71
106
|
* A callback function that is called to render the item.
|
|
72
107
|
*/
|
|
73
|
-
renderItem: (item:
|
|
108
|
+
renderItem: (item: ItemT, index: number) => React.ReactElement;
|
|
74
109
|
/**
|
|
75
110
|
* A callback function that is called to render the container.
|
|
76
111
|
* @remarks Useful for composing additional UI (e.g., close button, toolbars) around the viewer.
|
|
@@ -91,6 +126,12 @@ export interface GestureViewerProps<T = any, LC = typeof RNFlatList> {
|
|
|
91
126
|
* @defaultValue screen width
|
|
92
127
|
*/
|
|
93
128
|
width?: number;
|
|
129
|
+
/**
|
|
130
|
+
* The height of the `GestureViewer`.
|
|
131
|
+
* @remarks If you don't set this prop, the height of the `GestureViewer` will be the same as the height of the screen.
|
|
132
|
+
* @defaultValue screen height
|
|
133
|
+
*/
|
|
134
|
+
height?: number;
|
|
94
135
|
/**
|
|
95
136
|
* Enables snap scrolling mode.
|
|
96
137
|
*
|
|
@@ -131,7 +172,7 @@ export interface GestureViewerProps<T = any, LC = typeof RNFlatList> {
|
|
|
131
172
|
* The props to pass to the list component.
|
|
132
173
|
* @remarks The `listProps` provides **type inference based on the selected list component**, ensuring accurate autocompletion and type safety in your IDE.
|
|
133
174
|
*/
|
|
134
|
-
listProps?: Partial<ConditionalListProps<LC>>;
|
|
175
|
+
listProps?: Partial<ConditionalListProps<ItemT, LC>>;
|
|
135
176
|
/**
|
|
136
177
|
* The style of the backdrop.
|
|
137
178
|
*/
|
package/src/useGestureViewer.ts
CHANGED
|
@@ -21,17 +21,18 @@ import { registry } from './GestureViewerRegistry';
|
|
|
21
21
|
import type { GestureViewerProps, TriggerRect } from './types';
|
|
22
22
|
import { createBoundsConstraint, createScrollAction, getLoopAdjustedIndex } from './utils';
|
|
23
23
|
|
|
24
|
-
type UseGestureViewerProps<
|
|
25
|
-
GestureViewerProps<
|
|
26
|
-
'renderItem' | 'renderContainer' | 'ListComponent' | 'listProps' | 'containerStyle' | 'backdropStyle'
|
|
24
|
+
type UseGestureViewerProps<ItemT, LC> = Omit<
|
|
25
|
+
GestureViewerProps<ItemT, LC>,
|
|
26
|
+
'renderItem' | 'renderContainer' | 'ListComponent' | 'listProps' | 'containerStyle' | 'backdropStyle' | 'useSnap'
|
|
27
27
|
>;
|
|
28
28
|
|
|
29
|
-
export const useGestureViewer = <
|
|
29
|
+
export const useGestureViewer = <ItemT, LC>({
|
|
30
30
|
data,
|
|
31
31
|
initialIndex = 0,
|
|
32
32
|
onIndexChange,
|
|
33
33
|
onDismiss,
|
|
34
34
|
width: customWidth,
|
|
35
|
+
height: customHeight,
|
|
35
36
|
dismissThreshold = 80,
|
|
36
37
|
resistance = 2,
|
|
37
38
|
animateBackdrop = true,
|
|
@@ -43,13 +44,13 @@ export const useGestureViewer = <T = any>({
|
|
|
43
44
|
enableLoop = false,
|
|
44
45
|
maxZoomScale = 2,
|
|
45
46
|
itemSpacing = 0,
|
|
46
|
-
useSnap = false,
|
|
47
47
|
id = 'default',
|
|
48
48
|
onDismissStart,
|
|
49
49
|
triggerAnimation,
|
|
50
|
-
}: UseGestureViewerProps<
|
|
50
|
+
}: UseGestureViewerProps<ItemT, LC>) => {
|
|
51
51
|
const { width: screenWidth, height: screenHeight } = useWindowDimensions();
|
|
52
|
-
const width =
|
|
52
|
+
const width = customWidth || screenWidth;
|
|
53
|
+
const height = customHeight || screenHeight;
|
|
53
54
|
|
|
54
55
|
const [isZoomed, setIsZoomed] = useState(false);
|
|
55
56
|
const [isRotated, setIsRotated] = useState(false);
|
|
@@ -97,10 +98,7 @@ export const useGestureViewer = <T = any>({
|
|
|
97
98
|
return initialIndex;
|
|
98
99
|
}, [enableLoop, data.length, initialIndex]);
|
|
99
100
|
|
|
100
|
-
const constrainTranslation = useMemo(
|
|
101
|
-
() => createBoundsConstraint({ width, height: screenHeight }),
|
|
102
|
-
[width, screenHeight],
|
|
103
|
-
);
|
|
101
|
+
const constrainTranslation = useMemo(() => createBoundsConstraint({ width, height }), [width, height]);
|
|
104
102
|
|
|
105
103
|
const onAnimationComplete = useCallback(() => {
|
|
106
104
|
onAnimationCompleteRef.current?.();
|
|
@@ -167,11 +165,11 @@ export const useGestureViewer = <T = any>({
|
|
|
167
165
|
|
|
168
166
|
useEffect(() => {
|
|
169
167
|
if (shouldStartTriggerAnimation && triggerRectRef.current) {
|
|
170
|
-
const startX = triggerRectRef.current.x + triggerRectRef.current.width / 2 -
|
|
171
|
-
const startY = triggerRectRef.current.y + triggerRectRef.current.height / 2 -
|
|
168
|
+
const startX = triggerRectRef.current.x + triggerRectRef.current.width / 2 - width / 2;
|
|
169
|
+
const startY = triggerRectRef.current.y + triggerRectRef.current.height / 2 - height / 2;
|
|
172
170
|
const initialScaleFromTrigger = Math.min(
|
|
173
|
-
triggerRectRef.current.width /
|
|
174
|
-
triggerRectRef.current.height /
|
|
171
|
+
triggerRectRef.current.width / width,
|
|
172
|
+
triggerRectRef.current.height / height,
|
|
175
173
|
);
|
|
176
174
|
|
|
177
175
|
triggerScale.value = initialScaleFromTrigger;
|
|
@@ -197,8 +195,8 @@ export const useGestureViewer = <T = any>({
|
|
|
197
195
|
}, [
|
|
198
196
|
shouldStartTriggerAnimation,
|
|
199
197
|
animationConfig,
|
|
200
|
-
|
|
201
|
-
|
|
198
|
+
width,
|
|
199
|
+
height,
|
|
202
200
|
triggerOpacity,
|
|
203
201
|
triggerScale,
|
|
204
202
|
triggerTranslateX,
|
|
@@ -260,7 +258,7 @@ export const useGestureViewer = <T = any>({
|
|
|
260
258
|
manager.setEnableSwipeGesture(enableSwipeGesture);
|
|
261
259
|
manager.setCurrentIndex(initialIndex);
|
|
262
260
|
manager.setWidth(width + itemSpacing);
|
|
263
|
-
manager.setHeight(
|
|
261
|
+
manager.setHeight(height);
|
|
264
262
|
manager.setZoomSharedValues(scale, translateX, translateY, maxZoomScale);
|
|
265
263
|
manager.setRotation(rotation);
|
|
266
264
|
manager.setEnableLoop(enableLoop);
|
|
@@ -275,7 +273,7 @@ export const useGestureViewer = <T = any>({
|
|
|
275
273
|
maxZoomScale,
|
|
276
274
|
enableLoop,
|
|
277
275
|
scale,
|
|
278
|
-
|
|
276
|
+
height,
|
|
279
277
|
translateX,
|
|
280
278
|
translateY,
|
|
281
279
|
rotation,
|
|
@@ -314,12 +312,9 @@ export const useGestureViewer = <T = any>({
|
|
|
314
312
|
onDismissStart?.();
|
|
315
313
|
|
|
316
314
|
if (triggerRectRef.current) {
|
|
317
|
-
const endX = triggerRectRef.current.x + triggerRectRef.current.width / 2 -
|
|
318
|
-
const endY = triggerRectRef.current.y + triggerRectRef.current.height / 2 -
|
|
319
|
-
const endScale = Math.min(
|
|
320
|
-
triggerRectRef.current.width / screenWidth,
|
|
321
|
-
triggerRectRef.current.height / screenHeight,
|
|
322
|
-
);
|
|
315
|
+
const endX = triggerRectRef.current.x + triggerRectRef.current.width / 2 - width / 2;
|
|
316
|
+
const endY = triggerRectRef.current.y + triggerRectRef.current.height / 2 - height / 2;
|
|
317
|
+
const endScale = Math.min(triggerRectRef.current.width / width, triggerRectRef.current.height / height);
|
|
323
318
|
|
|
324
319
|
triggerScale.value = withTiming(endScale, animationConfig);
|
|
325
320
|
triggerTranslateX.value = withTiming(endX, animationConfig);
|
|
@@ -339,8 +334,8 @@ export const useGestureViewer = <T = any>({
|
|
|
339
334
|
animationConfig,
|
|
340
335
|
onDismiss,
|
|
341
336
|
onDismissStart,
|
|
342
|
-
|
|
343
|
-
|
|
337
|
+
width,
|
|
338
|
+
height,
|
|
344
339
|
triggerTranslateX,
|
|
345
340
|
triggerScale,
|
|
346
341
|
triggerTranslateY,
|
|
@@ -450,7 +445,7 @@ export const useGestureViewer = <T = any>({
|
|
|
450
445
|
|
|
451
446
|
const deltaScale = newScale - startScale.value;
|
|
452
447
|
const centerX = event.focalX - width / 2;
|
|
453
|
-
const centerY = event.focalY -
|
|
448
|
+
const centerY = event.focalY - height / 2;
|
|
454
449
|
|
|
455
450
|
// NOTE 새로운 이동값 = 기존 이동값 - (중심점 거리 × 스케일 변화량) / 원래 스케일 (중심점이 화면 중심에서 멀수록, 확대 배율이 클수록 더 많이 이동)
|
|
456
451
|
const newTranslateX = initialTranslateX.value - (centerX * deltaScale) / startScale.value;
|
|
@@ -515,7 +510,7 @@ export const useGestureViewer = <T = any>({
|
|
|
515
510
|
initialTranslateX,
|
|
516
511
|
initialTranslateY,
|
|
517
512
|
width,
|
|
518
|
-
|
|
513
|
+
height,
|
|
519
514
|
constrainTranslation,
|
|
520
515
|
]);
|
|
521
516
|
|
|
@@ -563,7 +558,7 @@ export const useGestureViewer = <T = any>({
|
|
|
563
558
|
|
|
564
559
|
if (nextScale > 1) {
|
|
565
560
|
const centerX = event.x - width / 2;
|
|
566
|
-
const centerY = event.y -
|
|
561
|
+
const centerY = event.y - height / 2;
|
|
567
562
|
|
|
568
563
|
// NOTE 확대로 밀려난 거리만큼 반대로 이동해서 탭 지점을 제자리에 유지
|
|
569
564
|
translateX.value = withTiming(-centerX * (nextScale - 1), {
|
|
@@ -590,7 +585,7 @@ export const useGestureViewer = <T = any>({
|
|
|
590
585
|
easing: Easing.bezier(0.25, 0.1, 0.25, 1.0),
|
|
591
586
|
});
|
|
592
587
|
});
|
|
593
|
-
}, [scale, enableDoubleTapGesture, maxZoomScale, translateX, translateY, width,
|
|
588
|
+
}, [scale, enableDoubleTapGesture, maxZoomScale, translateX, translateY, width, height]);
|
|
594
589
|
|
|
595
590
|
const zoomGesture = useMemo(() => {
|
|
596
591
|
return Gesture.Race(zoomPinchGesture, Gesture.Exclusive(zoomPanGesture, doubleTapGesture));
|
package/src/utils.ts
CHANGED
|
@@ -2,11 +2,11 @@ import { FlatList as RNFlatList, ScrollView as RNScrollView } from 'react-native
|
|
|
2
2
|
import { FlatList as GestureFlatList, ScrollView as GestureScrollView } from 'react-native-gesture-handler';
|
|
3
3
|
import type { FlatListComponent, ScrollViewComponent } from './types';
|
|
4
4
|
|
|
5
|
-
export const isScrollViewLike = (component: any): component is ScrollViewComponent => {
|
|
5
|
+
export const isScrollViewLike = (component: React.ComponentType<any>): component is ScrollViewComponent => {
|
|
6
6
|
return component === RNScrollView || component === GestureScrollView;
|
|
7
7
|
};
|
|
8
8
|
|
|
9
|
-
export const isFlatListLike = (component: any): component is FlatListComponent => {
|
|
9
|
+
export const isFlatListLike = (component: React.ComponentType<any>): component is FlatListComponent<any> => {
|
|
10
10
|
if (component === RNFlatList || component === GestureFlatList || isFlashListLike(component)) {
|
|
11
11
|
return true;
|
|
12
12
|
}
|
|
@@ -14,7 +14,7 @@ export const isFlatListLike = (component: any): component is FlatListComponent =
|
|
|
14
14
|
return false;
|
|
15
15
|
};
|
|
16
16
|
|
|
17
|
-
export const isFlashListLike = (component: any):
|
|
17
|
+
export const isFlashListLike = (component: React.ComponentType<any>): boolean => {
|
|
18
18
|
try {
|
|
19
19
|
const FlashList = require('@shopify/flash-list')?.FlashList;
|
|
20
20
|
|
|
@@ -25,7 +25,7 @@ export const isFlashListLike = (component: any): component is any => {
|
|
|
25
25
|
// do nothing
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
return component?.name === 'FlashList';
|
|
28
|
+
return component?.displayName === 'FlashList' || component?.name === 'FlashList';
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
export const createBoundsConstraint =
|