react-native-gesture-image-viewer 2.0.0-beta.4 → 2.0.0-beta.6
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 +32 -15
- package/lib/module/GestureTrigger.js +83 -0
- package/lib/module/GestureTrigger.js.map +1 -0
- package/lib/module/GestureViewer.js +9 -3
- package/lib/module/GestureViewer.js.map +1 -1
- package/lib/module/GestureViewerRegistry.js +11 -0
- package/lib/module/GestureViewerRegistry.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/useGestureViewer.js +102 -10
- package/lib/module/useGestureViewer.js.map +1 -1
- package/lib/typescript/src/GestureTrigger.d.ts +55 -0
- package/lib/typescript/src/GestureTrigger.d.ts.map +1 -0
- package/lib/typescript/src/GestureViewer.d.ts.map +1 -1
- package/lib/typescript/src/GestureViewerRegistry.d.ts +5 -0
- package/lib/typescript/src/GestureViewerRegistry.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +67 -12
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/useGestureViewer.d.ts +9 -8
- package/lib/typescript/src/useGestureViewer.d.ts.map +1 -1
- package/package.json +14 -5
- package/src/GestureTrigger.tsx +90 -0
- package/src/GestureViewer.tsx +8 -2
- package/src/GestureViewerRegistry.ts +16 -0
- package/src/index.tsx +2 -0
- package/src/types.ts +67 -12
- package/src/useGestureViewer.ts +141 -10
package/README.md
CHANGED
|
@@ -45,9 +45,10 @@ Full documentation is available at: <https://react-native-gesture-image-viewer.p
|
|
|
45
45
|
|
|
46
46
|
```tsx
|
|
47
47
|
import { useCallback, useState } from 'react';
|
|
48
|
-
import { ScrollView, Image, Modal, View, Text, Button } from 'react-native';
|
|
48
|
+
import { ScrollView, Image, Modal, View, Text, Button, Pressable } from 'react-native';
|
|
49
49
|
import {
|
|
50
50
|
GestureViewer,
|
|
51
|
+
GestureTrigger,
|
|
51
52
|
useGestureViewerController,
|
|
52
53
|
useGestureViewerEvent,
|
|
53
54
|
useGestureViewerState,
|
|
@@ -56,11 +57,17 @@ import {
|
|
|
56
57
|
function App() {
|
|
57
58
|
const images = [...];
|
|
58
59
|
const [visible, setVisible] = useState(false);
|
|
60
|
+
const [selectedIndex, setSelectedIndex] = useState(0);
|
|
59
61
|
|
|
60
62
|
const { goToIndex, goToPrevious, goToNext } = useGestureViewerController();
|
|
61
63
|
|
|
62
64
|
const { currentIndex, totalCount } = useGestureViewerState();
|
|
63
65
|
|
|
66
|
+
const openModal = (index: number) => {
|
|
67
|
+
setSelectedIndex(index);
|
|
68
|
+
setVisible(true);
|
|
69
|
+
};
|
|
70
|
+
|
|
64
71
|
const renderImage = useCallback((imageUrl: string) => {
|
|
65
72
|
return <Image source={{ uri: imageUrl }} style={{ width: '100%', height: '100%' }} resizeMode="contain" />;
|
|
66
73
|
}, []);
|
|
@@ -70,20 +77,30 @@ function App() {
|
|
|
70
77
|
});
|
|
71
78
|
|
|
72
79
|
return (
|
|
73
|
-
<
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
<
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
80
|
+
<View>
|
|
81
|
+
{images.map((uri, index) => (
|
|
82
|
+
<GestureTrigger key={uri} onPress={() => openModal(index)}>
|
|
83
|
+
<Pressable>
|
|
84
|
+
<Image source={{ uri }} />
|
|
85
|
+
</Pressable>
|
|
86
|
+
</GestureTrigger>
|
|
87
|
+
))}
|
|
88
|
+
<Modal transparent visible={visible}>
|
|
89
|
+
<GestureViewer
|
|
90
|
+
data={images}
|
|
91
|
+
initialIndex={selectedIndex}
|
|
92
|
+
renderItem={renderImage}
|
|
93
|
+
ListComponent={ScrollView}
|
|
94
|
+
onDismiss={() => setVisible(false)}
|
|
95
|
+
/>
|
|
96
|
+
<View>
|
|
97
|
+
<Button title="Prev" onPress={goToPrevious} />
|
|
98
|
+
<Button title="Jump to index 2" onPress={() => goToIndex(2)} />
|
|
99
|
+
<Button title="Next" onPress={goToNext} />
|
|
100
|
+
<Text>{`${currentIndex + 1} / ${totalCount}`}</Text>
|
|
101
|
+
</View>
|
|
102
|
+
</Modal>
|
|
103
|
+
</View>
|
|
87
104
|
);
|
|
88
105
|
}
|
|
89
106
|
```
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Children, cloneElement, isValidElement, useMemo, useRef } from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { registry } from "./GestureViewerRegistry.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Minimal contract for a pressable child's props.
|
|
9
|
+
* The child must optionally accept an `onPress` handler.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Props for `GestureTrigger`.
|
|
14
|
+
*
|
|
15
|
+
* @typeParam T - The child's props type. Must include an optional `onPress` handler.
|
|
16
|
+
*
|
|
17
|
+
* @property id - Optional identifier to associate this trigger with a `GestureViewer`.
|
|
18
|
+
* @property children - A single React element whose props include `onPress` (e.g., `Pressable`, `Touchable*`).
|
|
19
|
+
* @property onPress - Optional handler invoked after the child's own `onPress`.
|
|
20
|
+
*/
|
|
21
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
22
|
+
/**
|
|
23
|
+
* Wraps a pressable child element and registers its native view as a trigger for `GestureViewer`.
|
|
24
|
+
*
|
|
25
|
+
* @remarks
|
|
26
|
+
* Behavior on press:
|
|
27
|
+
* - Registers the child's native node to the internal registry under the given `id`.
|
|
28
|
+
* - Invokes the child's own `onPress` first (if provided).
|
|
29
|
+
* - Invokes the `onPress` passed to `GestureTrigger` next (if provided).
|
|
30
|
+
*
|
|
31
|
+
* Type parameters:
|
|
32
|
+
* - `T` — The child's props type. Must include an optional `onPress` handler, ensuring the child is pressable.
|
|
33
|
+
*
|
|
34
|
+
* Props:
|
|
35
|
+
* - `id` — Optional identifier to associate this trigger with a `GestureViewer`. Defaults to `"default"`.
|
|
36
|
+
* - `children` — A single React element whose props include `onPress` (e.g., `Pressable`, `Touchable*`, custom button).
|
|
37
|
+
* - `onPress` — Optional handler invoked after the child's `onPress`. Receives the same arguments as the child's handler.
|
|
38
|
+
*
|
|
39
|
+
* Notes:
|
|
40
|
+
* - If neither the child nor this component provides `onPress`, a dev warning is logged and nothing happens on press.
|
|
41
|
+
* - Only a single child is allowed; wrap lists using `React.Children.map` when needed.
|
|
42
|
+
*
|
|
43
|
+
* Example:
|
|
44
|
+
* ```tsx
|
|
45
|
+
* <GestureTrigger id="gallery" onPress={() => openModal(index)}>
|
|
46
|
+
* <Pressable style={styles.thumb}>
|
|
47
|
+
* <Image source={{ uri }} style={styles.thumbImage} />
|
|
48
|
+
* </Pressable>
|
|
49
|
+
* </GestureTrigger>
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export function GestureTrigger({
|
|
53
|
+
id = 'default',
|
|
54
|
+
children,
|
|
55
|
+
onPress
|
|
56
|
+
}) {
|
|
57
|
+
const ref = useRef(null);
|
|
58
|
+
const wrapped = useMemo(() => {
|
|
59
|
+
const child = Children.only(children);
|
|
60
|
+
if (! /*#__PURE__*/isValidElement(child)) {
|
|
61
|
+
return children;
|
|
62
|
+
}
|
|
63
|
+
const originalOnPress = child.props?.onPress;
|
|
64
|
+
const handlePress = (...args) => {
|
|
65
|
+
registry.setTriggerNode(id, ref.current);
|
|
66
|
+
originalOnPress?.(...args);
|
|
67
|
+
onPress?.(...args);
|
|
68
|
+
if (__DEV__ && !originalOnPress && !onPress) {
|
|
69
|
+
console.warn('[GestureTrigger] No onPress found on child or props. Nothing will happen on press.');
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
return /*#__PURE__*/cloneElement(child, {
|
|
73
|
+
...child.props,
|
|
74
|
+
onPress: handlePress
|
|
75
|
+
});
|
|
76
|
+
}, [id, onPress, children]);
|
|
77
|
+
return /*#__PURE__*/_jsx(View, {
|
|
78
|
+
ref: ref,
|
|
79
|
+
collapsable: false,
|
|
80
|
+
children: wrapped
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=GestureTrigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Children","cloneElement","isValidElement","useMemo","useRef","View","registry","jsx","_jsx","GestureTrigger","id","children","onPress","ref","wrapped","child","only","originalOnPress","props","handlePress","args","setTriggerNode","current","__DEV__","console","warn","collapsable"],"sourceRoot":"../../src","sources":["GestureTrigger.tsx"],"mappings":";;AACA,SAASA,QAAQ,EAAEC,YAAY,EAAEC,cAAc,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAC/E,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,QAAQ,QAAQ,4BAAyB;;AAElD;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,SAAAC,GAAA,IAAAC,IAAA;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAwB;EAAEC,EAAE,GAAG,SAAS;EAAEC,QAAQ;EAAEC;AAAgC,CAAC,EAAE;EACnH,MAAMC,GAAG,GAAGT,MAAM,CAAO,IAAI,CAAC;EAE9B,MAAMU,OAAO,GAAGX,OAAO,CAAC,MAAM;IAC5B,MAAMY,KAAK,GAAGf,QAAQ,CAACgB,IAAI,CAACL,QAAQ,CAAC;IAErC,IAAI,eAACT,cAAc,CAACa,KAAK,CAAC,EAAE;MAC1B,OAAOJ,QAAQ;IACjB;IAEA,MAAMM,eAAe,GAAGF,KAAK,CAACG,KAAK,EAAEN,OAAO;IAE5C,MAAMO,WAAW,GAAGA,CAAC,GAAGC,IAAe,KAAK;MAC1Cd,QAAQ,CAACe,cAAc,CAACX,EAAE,EAAEG,GAAG,CAACS,OAAO,CAAC;MACxCL,eAAe,GAAG,GAAGG,IAAI,CAAC;MAC1BR,OAAO,GAAG,GAAGQ,IAAI,CAAC;MAElB,IAAIG,OAAO,IAAI,CAACN,eAAe,IAAI,CAACL,OAAO,EAAE;QAC3CY,OAAO,CAACC,IAAI,CAAC,oFAAoF,CAAC;MACpG;IACF,CAAC;IAED,oBAAOxB,YAAY,CAACc,KAAK,EAAE;MACzB,GAAGA,KAAK,CAACG,KAAK;MACdN,OAAO,EAAEO;IACX,CAAC,CAAC;EACJ,CAAC,EAAE,CAACT,EAAE,EAAEE,OAAO,EAAED,QAAQ,CAAC,CAAC;EAE3B,oBACEH,IAAA,CAACH,IAAI;IAACQ,GAAG,EAAEA,GAAI;IAACa,WAAW,EAAE,KAAM;IAAAf,QAAA,EAChCG;EAAO,CACJ,CAAC;AAEX","ignoreList":[]}
|
|
@@ -27,7 +27,6 @@ export function GestureViewer({
|
|
|
27
27
|
}) {
|
|
28
28
|
const Component = ListComponent;
|
|
29
29
|
const dataRef = useRef(data);
|
|
30
|
-
dataRef.current = data;
|
|
31
30
|
const {
|
|
32
31
|
width: screenWidth
|
|
33
32
|
} = useWindowDimensions();
|
|
@@ -43,7 +42,8 @@ export function GestureViewer({
|
|
|
43
42
|
onMomentumScrollEnd,
|
|
44
43
|
onScrollBeginDrag,
|
|
45
44
|
animatedStyle,
|
|
46
|
-
backdropStyle
|
|
45
|
+
backdropStyle,
|
|
46
|
+
handleDismiss
|
|
47
47
|
} = useGestureViewer({
|
|
48
48
|
id,
|
|
49
49
|
data,
|
|
@@ -83,6 +83,9 @@ export function GestureViewer({
|
|
|
83
83
|
const gesture = useMemo(() => {
|
|
84
84
|
return Gesture.Race(dismissGesture, zoomGesture);
|
|
85
85
|
}, [zoomGesture, dismissGesture]);
|
|
86
|
+
useEffect(() => {
|
|
87
|
+
dataRef.current = data;
|
|
88
|
+
}, [data]);
|
|
86
89
|
useEffect(() => {
|
|
87
90
|
registry.createManager(id);
|
|
88
91
|
return () => registry.deleteManager(id);
|
|
@@ -103,6 +106,9 @@ export function GestureViewer({
|
|
|
103
106
|
scrollEventThrottle: 16,
|
|
104
107
|
removeClippedSubviews: true
|
|
105
108
|
}), [width, itemSpacing, isZoomed, isRotated, onMomentumScrollEnd, onScrollBeginDrag, enableSnapMode]);
|
|
109
|
+
const control = useMemo(() => ({
|
|
110
|
+
dismiss: handleDismiss
|
|
111
|
+
}), [handleDismiss]);
|
|
106
112
|
const listComponent = /*#__PURE__*/_jsx(GestureHandlerRootView, {
|
|
107
113
|
children: /*#__PURE__*/_jsx(GestureDetector, {
|
|
108
114
|
gesture: gesture,
|
|
@@ -151,7 +157,7 @@ export function GestureViewer({
|
|
|
151
157
|
})
|
|
152
158
|
})
|
|
153
159
|
});
|
|
154
|
-
return renderContainer ? renderContainer(listComponent) : listComponent;
|
|
160
|
+
return renderContainer ? renderContainer(listComponent, control) : listComponent;
|
|
155
161
|
}
|
|
156
162
|
const styles = StyleSheet.create({
|
|
157
163
|
container: {
|
|
@@ -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","enableSnapMode","enableLoop","props","Component","dataRef","
|
|
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","enableSnapMode","enableLoop","props","Component","dataRef","screenWidth","loopData","isScrollView","listRef","isZoomed","isRotated","dismissGesture","zoomGesture","onMomentumScrollEnd","onScrollBeginDrag","animatedStyle","handleDismiss","keyExtractor","item","index","style","height","justifyContent","alignItems","marginHorizontal","children","undefined","getItemLayout","_","length","offset","gesture","Race","current","createManager","deleteManager","commonProps","horizontal","scrollEnabled","showsHorizontalScrollIndicator","snapToInterval","snapToAlignment","decelerationRate","pagingEnabled","scrollEventThrottle","removeClippedSubviews","control","dismiss","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":[]}
|
|
@@ -4,6 +4,7 @@ import GestureViewerManager from "./GestureViewerManager.js";
|
|
|
4
4
|
class GestureViewerRegistry {
|
|
5
5
|
managers = new Map();
|
|
6
6
|
subscribers = new Map();
|
|
7
|
+
triggers = new Map();
|
|
7
8
|
subscribeToManager(id, callback) {
|
|
8
9
|
if (!this.subscribers.has(id)) {
|
|
9
10
|
this.subscribers.set(id, new Set());
|
|
@@ -37,6 +38,7 @@ class GestureViewerRegistry {
|
|
|
37
38
|
manager.cleanUp();
|
|
38
39
|
this.managers.delete(id);
|
|
39
40
|
this.notifySubscribers(id, null);
|
|
41
|
+
this.triggers.delete(id);
|
|
40
42
|
}
|
|
41
43
|
}
|
|
42
44
|
notifySubscribers(id, manager) {
|
|
@@ -45,6 +47,15 @@ class GestureViewerRegistry {
|
|
|
45
47
|
[...listeners].forEach(callback => callback(manager));
|
|
46
48
|
}
|
|
47
49
|
}
|
|
50
|
+
setTriggerNode(id, node) {
|
|
51
|
+
this.triggers.set(id, node);
|
|
52
|
+
}
|
|
53
|
+
getTriggerNode(id) {
|
|
54
|
+
return this.triggers.get(id) ?? null;
|
|
55
|
+
}
|
|
56
|
+
clearTriggerNode(id) {
|
|
57
|
+
this.triggers.delete(id);
|
|
58
|
+
}
|
|
48
59
|
}
|
|
49
60
|
export const registry = new GestureViewerRegistry();
|
|
50
61
|
//# sourceMappingURL=GestureViewerRegistry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GestureViewerManager","GestureViewerRegistry","managers","Map","subscribers","subscribeToManager","id","callback","has","set","Set","get","add","manager","delete","size","createManager","notifySubscribers","getManager","deleteManager","cleanUp","listeners","forEach","registry"],"sourceRoot":"../../src","sources":["GestureViewerRegistry.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["GestureViewerManager","GestureViewerRegistry","managers","Map","subscribers","triggers","subscribeToManager","id","callback","has","set","Set","get","add","manager","delete","size","createManager","notifySubscribers","getManager","deleteManager","cleanUp","listeners","forEach","setTriggerNode","node","getTriggerNode","clearTriggerNode","registry"],"sourceRoot":"../../src","sources":["GestureViewerRegistry.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
export { GestureTrigger } from "./GestureTrigger.js";
|
|
3
4
|
export { GestureViewer } from "./GestureViewer.js";
|
|
4
5
|
export { useGestureViewerController } from "./useGestureViewerController.js";
|
|
5
6
|
export { useGestureViewerEvent } from "./useGestureViewerEvent.js";
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GestureViewer","useGestureViewerController","useGestureViewerEvent","useGestureViewerState"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["GestureTrigger","GestureViewer","useGestureViewerController","useGestureViewerEvent","useGestureViewerState"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AACA,SAASA,cAAc,QAAQ,qBAAkB;AACjD,SAASC,aAAa,QAAQ,oBAAiB;AAS/C,SAASC,0BAA0B,QAAQ,iCAA8B;AACzE,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SAASC,qBAAqB,QAAQ,4BAAyB","ignoreList":[]}
|
|
@@ -21,7 +21,9 @@ export const useGestureViewer = ({
|
|
|
21
21
|
maxZoomScale = 2,
|
|
22
22
|
itemSpacing = 0,
|
|
23
23
|
enableSnapMode = false,
|
|
24
|
-
id = 'default'
|
|
24
|
+
id = 'default',
|
|
25
|
+
onDismissStart,
|
|
26
|
+
triggerAnimation
|
|
25
27
|
}) => {
|
|
26
28
|
const {
|
|
27
29
|
width: screenWidth,
|
|
@@ -30,8 +32,11 @@ export const useGestureViewer = ({
|
|
|
30
32
|
const width = enableSnapMode ? customWidth || screenWidth : screenWidth;
|
|
31
33
|
const [isZoomed, setIsZoomed] = useState(false);
|
|
32
34
|
const [isRotated, setIsRotated] = useState(false);
|
|
35
|
+
const [shouldStartTriggerAnimation, setShouldStartTriggerAnimation] = useState(false);
|
|
33
36
|
const [manager, setManager] = useState(null);
|
|
34
37
|
const listRef = useRef(null);
|
|
38
|
+
const triggerRectRef = useRef(null);
|
|
39
|
+
const onAnimationCompleteRef = useRef(triggerAnimation?.onAnimationComplete);
|
|
35
40
|
const initialTranslateY = useSharedValue(0);
|
|
36
41
|
const initialTranslateX = useSharedValue(0);
|
|
37
42
|
const startScale = useSharedValue(1);
|
|
@@ -40,7 +45,16 @@ export const useGestureViewer = ({
|
|
|
40
45
|
const scale = useSharedValue(1);
|
|
41
46
|
const backdropOpacity = useSharedValue(1);
|
|
42
47
|
const rotation = useSharedValue(0);
|
|
48
|
+
const triggerScale = useSharedValue(1);
|
|
49
|
+
const triggerTranslateX = useSharedValue(0);
|
|
50
|
+
const triggerTranslateY = useSharedValue(0);
|
|
51
|
+
const triggerOpacity = useSharedValue(1);
|
|
43
52
|
const dataLength = data?.length || 0;
|
|
53
|
+
const animationConfig = useMemo(() => ({
|
|
54
|
+
duration: triggerAnimation?.duration ?? 300,
|
|
55
|
+
easing: triggerAnimation?.easing ?? Easing.bezier(0.25, 0.1, 0.25, 1.0),
|
|
56
|
+
reduceMotion: triggerAnimation?.reduceMotion
|
|
57
|
+
}), [triggerAnimation?.duration, triggerAnimation?.easing, triggerAnimation?.reduceMotion]);
|
|
44
58
|
const dismissOptions = useMemo(() => {
|
|
45
59
|
return {
|
|
46
60
|
enabled: dismiss?.enabled ?? true,
|
|
@@ -73,6 +87,9 @@ export const useGestureViewer = ({
|
|
|
73
87
|
manager.emitRotationChange(currentRotation, prevRotation);
|
|
74
88
|
}
|
|
75
89
|
}, [manager]);
|
|
90
|
+
const onAnimationComplete = useCallback(() => {
|
|
91
|
+
onAnimationCompleteRef.current?.();
|
|
92
|
+
}, []);
|
|
76
93
|
useAnimatedReaction(() => scale.value, (currentScale, previousScale) => {
|
|
77
94
|
if (currentScale !== previousScale) {
|
|
78
95
|
runOnJS(emitZoomChange)(currentScale, previousScale);
|
|
@@ -126,6 +143,72 @@ export const useGestureViewer = ({
|
|
|
126
143
|
runAfterInteractions?.cancel();
|
|
127
144
|
};
|
|
128
145
|
}, [adjustedInitialIndex, translateY, backdropOpacity, translateX, scale, startScale, rotation, scrollTo]);
|
|
146
|
+
useEffect(() => {
|
|
147
|
+
onAnimationCompleteRef.current = triggerAnimation?.onAnimationComplete;
|
|
148
|
+
}, [triggerAnimation?.onAnimationComplete]);
|
|
149
|
+
useEffect(() => {
|
|
150
|
+
if (shouldStartTriggerAnimation && triggerRectRef.current) {
|
|
151
|
+
const startX = triggerRectRef.current.x + triggerRectRef.current.width / 2 - screenWidth / 2;
|
|
152
|
+
const startY = triggerRectRef.current.y + triggerRectRef.current.height / 2 - screenHeight / 2;
|
|
153
|
+
const initialScaleFromTrigger = Math.min(triggerRectRef.current.width / screenWidth, triggerRectRef.current.height / screenHeight);
|
|
154
|
+
triggerScale.value = initialScaleFromTrigger;
|
|
155
|
+
triggerTranslateX.value = startX;
|
|
156
|
+
triggerTranslateY.value = startY;
|
|
157
|
+
triggerOpacity.value = 0;
|
|
158
|
+
triggerScale.value = withTiming(1, animationConfig, finished => {
|
|
159
|
+
if (finished) {
|
|
160
|
+
runOnJS(onAnimationComplete)();
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
triggerTranslateX.value = withTiming(0, animationConfig);
|
|
164
|
+
triggerTranslateY.value = withTiming(0, animationConfig);
|
|
165
|
+
triggerOpacity.value = withTiming(1, {
|
|
166
|
+
duration: animationConfig.duration / 2,
|
|
167
|
+
easing: animationConfig.easing,
|
|
168
|
+
reduceMotion: animationConfig.reduceMotion
|
|
169
|
+
});
|
|
170
|
+
setShouldStartTriggerAnimation(false);
|
|
171
|
+
}
|
|
172
|
+
}, [shouldStartTriggerAnimation, animationConfig, screenWidth, screenHeight, triggerOpacity, triggerScale, triggerTranslateX, triggerTranslateY, onAnimationComplete]);
|
|
173
|
+
useEffect(() => {
|
|
174
|
+
const node = registry.getTriggerNode(id);
|
|
175
|
+
if (node && typeof node.measure === 'function') {
|
|
176
|
+
node.measure((_x, _y, width, height, pageX, pageY) => {
|
|
177
|
+
triggerRectRef.current = {
|
|
178
|
+
x: pageX,
|
|
179
|
+
y: pageY,
|
|
180
|
+
width,
|
|
181
|
+
height
|
|
182
|
+
};
|
|
183
|
+
triggerOpacity.value = 0;
|
|
184
|
+
setShouldStartTriggerAnimation(true);
|
|
185
|
+
registry.clearTriggerNode(id);
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
return () => {
|
|
189
|
+
triggerRectRef.current = null;
|
|
190
|
+
};
|
|
191
|
+
}, [id, triggerOpacity]);
|
|
192
|
+
const handleDismiss = useCallback(() => {
|
|
193
|
+
onDismissStart?.();
|
|
194
|
+
if (triggerRectRef.current) {
|
|
195
|
+
const endX = triggerRectRef.current.x + triggerRectRef.current.width / 2 - screenWidth / 2;
|
|
196
|
+
const endY = triggerRectRef.current.y + triggerRectRef.current.height / 2 - screenHeight / 2;
|
|
197
|
+
const endScale = Math.min(triggerRectRef.current.width / screenWidth, triggerRectRef.current.height / screenHeight);
|
|
198
|
+
triggerScale.value = withTiming(endScale, animationConfig);
|
|
199
|
+
triggerTranslateX.value = withTiming(endX, animationConfig);
|
|
200
|
+
triggerTranslateY.value = withTiming(endY, animationConfig);
|
|
201
|
+
triggerOpacity.value = withTiming(0, animationConfig, finished => {
|
|
202
|
+
if (finished && onDismiss) {
|
|
203
|
+
runOnJS(onDismiss)();
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
if (onDismiss) {
|
|
209
|
+
runOnJS(onDismiss)();
|
|
210
|
+
}
|
|
211
|
+
}, [animationConfig, onDismiss, onDismissStart, screenWidth, screenHeight, triggerTranslateX, triggerScale, triggerTranslateY, triggerOpacity]);
|
|
129
212
|
const onMomentumScrollEnd = useCallback(event => {
|
|
130
213
|
if (!enableHorizontalSwipe) {
|
|
131
214
|
return;
|
|
@@ -144,7 +227,7 @@ export const useGestureViewer = ({
|
|
|
144
227
|
if (needsJump && jumpToIndex !== undefined) {
|
|
145
228
|
scrollTo(jumpToIndex, false);
|
|
146
229
|
}
|
|
147
|
-
const currentIndex = manager?.getState()
|
|
230
|
+
const currentIndex = manager?.getState()?.currentIndex;
|
|
148
231
|
if (realIndex !== currentIndex && realIndex >= 0 && realIndex < dataLength) {
|
|
149
232
|
if (manager) {
|
|
150
233
|
manager.setCurrentIndex(realIndex);
|
|
@@ -160,11 +243,12 @@ export const useGestureViewer = ({
|
|
|
160
243
|
}
|
|
161
244
|
}, [scrollTo, manager, dataLength, width, itemSpacing, enableHorizontalSwipe, enableLoop, translateX, translateY, scale, initialTranslateX, initialTranslateY, startScale, rotation]);
|
|
162
245
|
const dismissGesture = useMemo(() => {
|
|
163
|
-
|
|
246
|
+
const canDismiss = !isZoomed && dismissOptions.enabled;
|
|
247
|
+
return Gesture.Pan().minDistance(10).averageTouches(true).activeCursor('grabbing').activeOffsetY([-10, 10]).failOffsetX([-10, 10]).enabled(canDismiss).onUpdate(event => {
|
|
164
248
|
translateY.value = event.translationY / dismissOptions.resistance;
|
|
165
249
|
}).onEnd(event => {
|
|
166
|
-
if (event.translationY > dismissOptions.threshold
|
|
167
|
-
runOnJS(
|
|
250
|
+
if (canDismiss && event.translationY > dismissOptions.threshold) {
|
|
251
|
+
runOnJS(handleDismiss)();
|
|
168
252
|
return;
|
|
169
253
|
}
|
|
170
254
|
translateY.value = withSpring(0, {
|
|
@@ -175,7 +259,7 @@ export const useGestureViewer = ({
|
|
|
175
259
|
energyThreshold: 6e-9
|
|
176
260
|
});
|
|
177
261
|
});
|
|
178
|
-
}, [translateY, dismissOptions
|
|
262
|
+
}, [translateY, dismissOptions, handleDismiss, isZoomed]);
|
|
179
263
|
const zoomPinchGesture = useMemo(() => {
|
|
180
264
|
return Gesture.Pinch().enabled(enablePinchZoom).onBegin(() => {
|
|
181
265
|
startScale.value = scale.value;
|
|
@@ -305,7 +389,14 @@ export const useGestureViewer = ({
|
|
|
305
389
|
}, [zoomPinchGesture, zoomPanGesture, doubleTapGesture]);
|
|
306
390
|
const animatedStyle = useAnimatedStyle(() => {
|
|
307
391
|
return {
|
|
392
|
+
opacity: triggerOpacity.value,
|
|
308
393
|
transform: [{
|
|
394
|
+
translateX: triggerTranslateX.value
|
|
395
|
+
}, {
|
|
396
|
+
translateY: triggerTranslateY.value
|
|
397
|
+
}, {
|
|
398
|
+
scale: triggerScale.value
|
|
399
|
+
}, {
|
|
309
400
|
translateY: translateY.value
|
|
310
401
|
}, {
|
|
311
402
|
translateX: translateX.value
|
|
@@ -317,14 +408,15 @@ export const useGestureViewer = ({
|
|
|
317
408
|
};
|
|
318
409
|
});
|
|
319
410
|
const backdropStyle = useAnimatedStyle(() => {
|
|
411
|
+
const baseOpacity = triggerOpacity.value;
|
|
320
412
|
if (!dismissOptions.fadeBackdrop || scale.value !== 1) {
|
|
321
413
|
return {
|
|
322
|
-
opacity:
|
|
414
|
+
opacity: baseOpacity
|
|
323
415
|
};
|
|
324
416
|
}
|
|
325
|
-
const
|
|
417
|
+
const dismissOpacity = interpolate(translateY.value, [0, 200], [1, 0], 'clamp');
|
|
326
418
|
return {
|
|
327
|
-
opacity
|
|
419
|
+
opacity: baseOpacity * dismissOpacity
|
|
328
420
|
};
|
|
329
421
|
}, [dismissOptions.fadeBackdrop]);
|
|
330
422
|
const onScrollBeginDrag = useCallback(() => {
|
|
@@ -332,7 +424,6 @@ export const useGestureViewer = ({
|
|
|
332
424
|
}, [manager]);
|
|
333
425
|
return {
|
|
334
426
|
dataLength,
|
|
335
|
-
translateY,
|
|
336
427
|
listRef,
|
|
337
428
|
isZoomed,
|
|
338
429
|
isRotated,
|
|
@@ -340,6 +431,7 @@ export const useGestureViewer = ({
|
|
|
340
431
|
zoomGesture,
|
|
341
432
|
onMomentumScrollEnd,
|
|
342
433
|
onScrollBeginDrag,
|
|
434
|
+
handleDismiss,
|
|
343
435
|
animatedStyle,
|
|
344
436
|
backdropStyle
|
|
345
437
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","InteractionManager","useWindowDimensions","Gesture","Easing","interpolate","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","runOnJS","registry","createBoundsConstraint","createScrollAction","getLoopAdjustedIndex","useGestureViewer","data","initialIndex","onDismiss","width","customWidth","dismiss","enableDoubleTapZoom","enablePinchZoom","enableHorizontalSwipe","enablePanWhenZoomed","enableLoop","maxZoomScale","itemSpacing","enableSnapMode","id","screenWidth","height","screenHeight","isZoomed","setIsZoomed","isRotated","setIsRotated","manager","setManager","listRef","initialTranslateY","initialTranslateX","startScale","translateY","translateX","scale","backdropOpacity","rotation","dataLength","length","dismissOptions","enabled","threshold","resistance","fadeBackdrop","adjustedInitialIndex","constrainTranslation","scrollTo","index","animated","scrollAction","current","emitZoomChange","currentScale","prevScale","emitRotationChange","currentRotation","prevRotation","value","previousScale","previousRotation","unsubscribe","subscribeToManager","setDataLength","setEnableHorizontalSwipe","setCurrentIndex","setWidth","setHeight","setZoomSharedValues","setRotation","setEnableLoop","notifyStateChange","setListRef","runAfterInteractions","cancel","onMomentumScrollEnd","event","contentOffset","nativeEvent","scrollIndex","Math","round","x","isLoopHandled","handleMomentumScrollEnd","realIndex","needsJump","jumpToIndex","undefined","currentIndex","getState","dismissGesture","Pan","minDistance","averageTouches","activeCursor","activeOffsetY","failOffsetX","onUpdate","translationY","onEnd","stiffness","damping","mass","overshootClamping","energyThreshold","zoomPinchGesture","Pinch","onBegin","newScale","deltaScale","centerX","focalX","centerY","focalY","newTranslateX","newTranslateY","constrainedTranslateX","constrainedTranslateY","duration","easing","bezier","zoomPanGesture","translationX","doubleTapGesture","Tap","numberOfTaps","nextScale","y","zoomGesture","Race","Exclusive","animatedStyle","transform","rotate","backdropStyle","opacity","onScrollBeginDrag","handleScrollBeginDrag"],"sourceRoot":"../../src","sources":["useGestureViewer.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","InteractionManager","useWindowDimensions","Gesture","Easing","interpolate","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","runOnJS","registry","createBoundsConstraint","createScrollAction","getLoopAdjustedIndex","useGestureViewer","data","initialIndex","onDismiss","width","customWidth","dismiss","enableDoubleTapZoom","enablePinchZoom","enableHorizontalSwipe","enablePanWhenZoomed","enableLoop","maxZoomScale","itemSpacing","enableSnapMode","id","onDismissStart","triggerAnimation","screenWidth","height","screenHeight","isZoomed","setIsZoomed","isRotated","setIsRotated","shouldStartTriggerAnimation","setShouldStartTriggerAnimation","manager","setManager","listRef","triggerRectRef","onAnimationCompleteRef","onAnimationComplete","initialTranslateY","initialTranslateX","startScale","translateY","translateX","scale","backdropOpacity","rotation","triggerScale","triggerTranslateX","triggerTranslateY","triggerOpacity","dataLength","length","animationConfig","duration","easing","bezier","reduceMotion","dismissOptions","enabled","threshold","resistance","fadeBackdrop","adjustedInitialIndex","constrainTranslation","scrollTo","index","animated","scrollAction","current","emitZoomChange","currentScale","prevScale","emitRotationChange","currentRotation","prevRotation","value","previousScale","previousRotation","unsubscribe","subscribeToManager","setDataLength","setEnableHorizontalSwipe","setCurrentIndex","setWidth","setHeight","setZoomSharedValues","setRotation","setEnableLoop","notifyStateChange","setListRef","runAfterInteractions","cancel","startX","x","startY","y","initialScaleFromTrigger","Math","min","finished","node","getTriggerNode","measure","_x","_y","pageX","pageY","clearTriggerNode","handleDismiss","endX","endY","endScale","onMomentumScrollEnd","event","contentOffset","nativeEvent","scrollIndex","round","isLoopHandled","handleMomentumScrollEnd","realIndex","needsJump","jumpToIndex","undefined","currentIndex","getState","dismissGesture","canDismiss","Pan","minDistance","averageTouches","activeCursor","activeOffsetY","failOffsetX","onUpdate","translationY","onEnd","stiffness","damping","mass","overshootClamping","energyThreshold","zoomPinchGesture","Pinch","onBegin","newScale","deltaScale","centerX","focalX","centerY","focalY","newTranslateX","newTranslateY","constrainedTranslateX","constrainedTranslateY","zoomPanGesture","translationX","doubleTapGesture","Tap","numberOfTaps","nextScale","zoomGesture","Race","Exclusive","animatedStyle","opacity","transform","rotate","backdropStyle","baseOpacity","dismissOpacity","onScrollBeginDrag","handleScrollBeginDrag"],"sourceRoot":"../../src","sources":["useGestureViewer.ts"],"mappings":"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","ignoreList":[]}
|