react-native-gesture-image-viewer 2.4.0 → 2.5.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/README.md +19 -5
- package/lib/module/GestureViewer.js +31 -13
- package/lib/module/GestureViewer.js.map +1 -1
- package/lib/module/GestureViewerManager.js +43 -14
- package/lib/module/GestureViewerManager.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/itemDimensions.js +86 -0
- package/lib/module/itemDimensions.js.map +1 -0
- package/lib/module/useGestureViewer.js +270 -40
- package/lib/module/useGestureViewer.js.map +1 -1
- package/lib/module/useGestureViewerPaging.js +1 -3
- package/lib/module/useGestureViewerPaging.js.map +1 -1
- package/lib/module/useGestureViewerPaging.web.js +26 -18
- package/lib/module/useGestureViewerPaging.web.js.map +1 -1
- package/lib/module/utils/index.js +43 -10
- package/lib/module/utils/index.js.map +1 -1
- package/lib/module/utils/tapZoom.js +51 -13
- package/lib/module/utils/tapZoom.js.map +1 -1
- package/lib/typescript/src/GestureViewer.d.ts.map +1 -1
- package/lib/typescript/src/GestureViewerManager.d.ts +16 -3
- package/lib/typescript/src/GestureViewerManager.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/itemDimensions.d.ts +26 -0
- package/lib/typescript/src/itemDimensions.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +29 -0
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/useGestureViewer.d.ts +3 -2
- package/lib/typescript/src/useGestureViewer.d.ts.map +1 -1
- package/lib/typescript/src/useGestureViewerPaging.d.ts.map +1 -1
- package/lib/typescript/src/useGestureViewerPaging.types.d.ts +2 -0
- package/lib/typescript/src/useGestureViewerPaging.types.d.ts.map +1 -1
- package/lib/typescript/src/useGestureViewerPaging.web.d.ts +1 -1
- package/lib/typescript/src/useGestureViewerPaging.web.d.ts.map +1 -1
- package/lib/typescript/src/utils/index.d.ts +7 -3
- package/lib/typescript/src/utils/index.d.ts.map +1 -1
- package/lib/typescript/src/utils/tapZoom.d.ts +17 -1
- package/lib/typescript/src/utils/tapZoom.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/GestureViewer.tsx +47 -16
- package/src/GestureViewerManager.ts +58 -19
- package/src/index.tsx +4 -0
- package/src/itemDimensions.ts +162 -0
- package/src/types.ts +39 -0
- package/src/useGestureViewer.ts +376 -47
- package/src/useGestureViewerPaging.ts +1 -3
- package/src/useGestureViewerPaging.types.ts +2 -0
- package/src/useGestureViewerPaging.web.ts +41 -21
- package/src/utils/index.ts +86 -27
- package/src/utils/tapZoom.ts +66 -13
package/README.md
CHANGED
|
@@ -59,8 +59,13 @@ import {
|
|
|
59
59
|
useGestureViewerState,
|
|
60
60
|
} from 'react-native-gesture-image-viewer';
|
|
61
61
|
|
|
62
|
+
const images = [
|
|
63
|
+
'https://picsum.photos/400/200',
|
|
64
|
+
'https://picsum.photos/200/400',
|
|
65
|
+
'https://picsum.photos/300/300',
|
|
66
|
+
];
|
|
67
|
+
|
|
62
68
|
function App() {
|
|
63
|
-
const images = [...];
|
|
64
69
|
const [visible, setVisible] = useState(false);
|
|
65
70
|
const [selectedIndex, setSelectedIndex] = useState(0);
|
|
66
71
|
|
|
@@ -74,7 +79,13 @@ function App() {
|
|
|
74
79
|
};
|
|
75
80
|
|
|
76
81
|
const renderImage = useCallback((imageUrl: string) => {
|
|
77
|
-
return
|
|
82
|
+
return (
|
|
83
|
+
<Image
|
|
84
|
+
source={{ uri: imageUrl }}
|
|
85
|
+
style={{ width: '100%', height: '100%' }}
|
|
86
|
+
resizeMode="contain"
|
|
87
|
+
/>
|
|
88
|
+
);
|
|
78
89
|
}, []);
|
|
79
90
|
|
|
80
91
|
useGestureViewerEvent('zoomChange', (data) => {
|
|
@@ -83,10 +94,10 @@ function App() {
|
|
|
83
94
|
|
|
84
95
|
return (
|
|
85
96
|
<View>
|
|
86
|
-
{images.map((
|
|
87
|
-
<GestureTrigger key={
|
|
97
|
+
{images.map((imageUrl, index) => (
|
|
98
|
+
<GestureTrigger key={imageUrl} onPress={() => openModal(index)}>
|
|
88
99
|
<Pressable>
|
|
89
|
-
<Image source={{ uri }} />
|
|
100
|
+
<Image source={{ uri: imageUrl }} />
|
|
90
101
|
</Pressable>
|
|
91
102
|
</GestureTrigger>
|
|
92
103
|
))}
|
|
@@ -110,6 +121,9 @@ function App() {
|
|
|
110
121
|
}
|
|
111
122
|
```
|
|
112
123
|
|
|
124
|
+
For accurate pan bounds with `contain`-fitted content, see the
|
|
125
|
+
[Content Dimensions guide](https://react-native-gesture-image-viewer.pages.dev/guide/usage/custom-components#content-dimensions).
|
|
126
|
+
|
|
113
127
|
## Contributing
|
|
114
128
|
|
|
115
129
|
For details on how to contribute to the project and set up the development environment, please refer to the [Contributing Guide](CONTRIBUTING.md).
|
|
@@ -1,14 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { useCallback, useEffect, useMemo
|
|
3
|
+
import { useCallback, useEffect, useMemo } from 'react';
|
|
4
4
|
import { Platform, StyleSheet, useWindowDimensions, View } from 'react-native';
|
|
5
5
|
import { Gesture, GestureDetector, GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
6
6
|
import Animated from 'react-native-reanimated';
|
|
7
7
|
import { registry } from "./GestureViewerRegistry.js";
|
|
8
8
|
import { useGestureViewer } from "./useGestureViewer.js";
|
|
9
|
-
import { createLoopData, isFlashListLike, isFlatListLike, isScrollViewLike, shouldUseNativeScrollGesture } from "./utils/index.js";
|
|
9
|
+
import { clampIndex, createLoopData, getLoopPhysicalIndex, isFlashListLike, isFlatListLike, isScrollViewLike, shouldUseNativeScrollGesture } from "./utils/index.js";
|
|
10
10
|
import WebPagingFixStyle from "./WebPagingFixStyle.js";
|
|
11
11
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
|
+
function GestureViewerItemCell({
|
|
13
|
+
item,
|
|
14
|
+
index,
|
|
15
|
+
isActive,
|
|
16
|
+
renderItem,
|
|
17
|
+
setItemDimensions
|
|
18
|
+
}) {
|
|
19
|
+
const registerItemDimensions = dimensions => {
|
|
20
|
+
setItemDimensions(index, item, dimensions);
|
|
21
|
+
};
|
|
22
|
+
return renderItem(item, index, {
|
|
23
|
+
isActive,
|
|
24
|
+
setItemDimensions: registerItemDimensions
|
|
25
|
+
});
|
|
26
|
+
}
|
|
12
27
|
export function GestureViewer({
|
|
13
28
|
id = 'default',
|
|
14
29
|
data,
|
|
@@ -27,14 +42,15 @@ export function GestureViewer({
|
|
|
27
42
|
...props
|
|
28
43
|
}) {
|
|
29
44
|
const Component = ListComponent;
|
|
30
|
-
const dataRef = useRef(data);
|
|
31
45
|
const {
|
|
32
46
|
width: screenWidth,
|
|
33
47
|
height: screenHeight
|
|
34
48
|
} = useWindowDimensions();
|
|
35
49
|
const width = customWidth || screenWidth;
|
|
36
50
|
const height = customHeight || screenHeight;
|
|
37
|
-
const
|
|
51
|
+
const normalizedInitialIndex = clampIndex(initialIndex, data.length);
|
|
52
|
+
const initialListIndex = getLoopPhysicalIndex(normalizedInitialIndex, data.length, enableLoop);
|
|
53
|
+
const loopData = useMemo(() => createLoopData(data, enableLoop), [data, enableLoop]);
|
|
38
54
|
const isScrollView = isScrollViewLike(Component);
|
|
39
55
|
const isFlashList = isFlashListLike(Component);
|
|
40
56
|
const {
|
|
@@ -52,13 +68,14 @@ export function GestureViewer({
|
|
|
52
68
|
onScrollBeginDrag,
|
|
53
69
|
animatedStyle,
|
|
54
70
|
backdropStyle,
|
|
55
|
-
handleDismiss
|
|
71
|
+
handleDismiss,
|
|
72
|
+
setItemDimensions
|
|
56
73
|
} = useGestureViewer({
|
|
57
74
|
id,
|
|
58
75
|
data,
|
|
59
76
|
width,
|
|
60
77
|
height,
|
|
61
|
-
initialIndex,
|
|
78
|
+
initialIndex: normalizedInitialIndex,
|
|
62
79
|
itemSpacing,
|
|
63
80
|
enableLoop,
|
|
64
81
|
...props
|
|
@@ -81,11 +98,15 @@ export function GestureViewer({
|
|
|
81
98
|
height,
|
|
82
99
|
marginHorizontal: itemSpacing / 2
|
|
83
100
|
}, styles.item],
|
|
84
|
-
children:
|
|
85
|
-
|
|
101
|
+
children: /*#__PURE__*/_jsx(GestureViewerItemCell, {
|
|
102
|
+
index: index,
|
|
103
|
+
isActive: index === activeListIndex && isFlashListCell,
|
|
104
|
+
item: item,
|
|
105
|
+
renderItem: renderItemProp,
|
|
106
|
+
setItemDimensions: setItemDimensions
|
|
86
107
|
})
|
|
87
108
|
}, isScrollView ? keyExtractor(item, index) : undefined);
|
|
88
|
-
}, [activeListIndex, width, itemSpacing, renderItemProp, keyExtractor, isScrollView, isFlashList, height]);
|
|
109
|
+
}, [activeListIndex, width, itemSpacing, renderItemProp, keyExtractor, isScrollView, isFlashList, height, setItemDimensions]);
|
|
89
110
|
const getItemLayout = useCallback((_, index) => ({
|
|
90
111
|
length: width + itemSpacing,
|
|
91
112
|
offset: (width + itemSpacing) * index,
|
|
@@ -94,9 +115,6 @@ export function GestureViewer({
|
|
|
94
115
|
const gesture = useMemo(() => {
|
|
95
116
|
return Gesture.Race(dismissGesture, zoomGesture);
|
|
96
117
|
}, [zoomGesture, dismissGesture]);
|
|
97
|
-
useEffect(() => {
|
|
98
|
-
dataRef.current = data;
|
|
99
|
-
}, [data]);
|
|
100
118
|
useEffect(() => {
|
|
101
119
|
registry.createManager(id);
|
|
102
120
|
return () => registry.deleteManager(id);
|
|
@@ -164,7 +182,7 @@ export function GestureViewer({
|
|
|
164
182
|
...commonProps,
|
|
165
183
|
data: loopData,
|
|
166
184
|
renderItem: renderItem,
|
|
167
|
-
initialScrollIndex:
|
|
185
|
+
initialScrollIndex: initialListIndex,
|
|
168
186
|
keyExtractor: keyExtractor,
|
|
169
187
|
...(isFlashList ?
|
|
170
188
|
// NOTE - Deprecated estimatedItemSize for FlashList V2 (https://shopify.github.io/flash-list/docs/v2-changes#deprecated)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useMemo","
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useMemo","Platform","StyleSheet","useWindowDimensions","View","Gesture","GestureDetector","GestureHandlerRootView","Animated","registry","useGestureViewer","clampIndex","createLoopData","getLoopPhysicalIndex","isFlashListLike","isFlatListLike","isScrollViewLike","shouldUseNativeScrollGesture","WebPagingFixStyle","jsx","_jsx","jsxs","_jsxs","GestureViewerItemCell","item","index","isActive","renderItem","setItemDimensions","registerItemDimensions","dimensions","GestureViewer","id","data","renderItemProp","renderContainer","ListComponent","width","customWidth","height","customHeight","listProps","backdropStyle","backdropStyleProps","containerStyle","initialIndex","itemSpacing","enableSnapMode","enableLoop","props","Component","screenWidth","screenHeight","normalizedInitialIndex","length","initialListIndex","loopData","isScrollView","isFlashList","activeListIndex","listRef","isZoomed","isRotated","isPinching","dismissGesture","zoomGesture","nativeScrollGesture","onWebClick","onMomentumScrollEnd","onScroll","onScrollBeginDrag","animatedStyle","handleDismiss","keyExtractor","target","isFlashListCell","undefined","style","marginHorizontal","styles","children","getItemLayout","_","offset","gesture","Race","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,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { withTiming } from 'react-native-reanimated';
|
|
4
|
-
import {
|
|
4
|
+
import { clampTranslationToBounds, createScrollAction } from "./utils/index.js";
|
|
5
5
|
class GestureViewerManager {
|
|
6
6
|
currentIndex = 0;
|
|
7
7
|
dataLength = 0;
|
|
8
|
-
|
|
8
|
+
pagingStride = 0;
|
|
9
|
+
viewportWidth = 0;
|
|
9
10
|
height = 0;
|
|
10
11
|
maxZoomScale = 2;
|
|
11
12
|
enableHorizontalSwipe = true;
|
|
@@ -15,6 +16,8 @@ class GestureViewerManager {
|
|
|
15
16
|
rotation = null;
|
|
16
17
|
translateX = null;
|
|
17
18
|
translateY = null;
|
|
19
|
+
contentWidth = null;
|
|
20
|
+
contentHeight = null;
|
|
18
21
|
resetTransformCallback = null;
|
|
19
22
|
loopCallback = null;
|
|
20
23
|
programmaticScrollVersion = 0;
|
|
@@ -78,8 +81,11 @@ class GestureViewerManager {
|
|
|
78
81
|
setEnableLoop(enabled) {
|
|
79
82
|
this.enableLoop = enabled;
|
|
80
83
|
}
|
|
81
|
-
|
|
82
|
-
this.
|
|
84
|
+
setPagingStride(pagingStride) {
|
|
85
|
+
this.pagingStride = pagingStride;
|
|
86
|
+
}
|
|
87
|
+
setViewportWidth(width) {
|
|
88
|
+
this.viewportWidth = width;
|
|
83
89
|
}
|
|
84
90
|
setHeight(height) {
|
|
85
91
|
this.height = height;
|
|
@@ -98,11 +104,20 @@ class GestureViewerManager {
|
|
|
98
104
|
this.currentIndex = index;
|
|
99
105
|
}
|
|
100
106
|
}
|
|
101
|
-
setZoomSharedValues(
|
|
107
|
+
setZoomSharedValues({
|
|
108
|
+
scale,
|
|
109
|
+
translateX,
|
|
110
|
+
translateY,
|
|
111
|
+
maxZoomScale,
|
|
112
|
+
contentWidth,
|
|
113
|
+
contentHeight
|
|
114
|
+
}) {
|
|
102
115
|
this.scale = scale;
|
|
103
116
|
this.translateX = translateX;
|
|
104
117
|
this.translateY = translateY;
|
|
105
118
|
this.maxZoomScale = maxZoomScale;
|
|
119
|
+
this.contentWidth = contentWidth ?? null;
|
|
120
|
+
this.contentHeight = contentHeight ?? null;
|
|
106
121
|
}
|
|
107
122
|
setResetTransformCallback(callback) {
|
|
108
123
|
this.resetTransformCallback = callback;
|
|
@@ -140,10 +155,7 @@ class GestureViewerManager {
|
|
|
140
155
|
const {
|
|
141
156
|
translateX,
|
|
142
157
|
translateY
|
|
143
|
-
} =
|
|
144
|
-
width: this.width,
|
|
145
|
-
height: this.height
|
|
146
|
-
})({
|
|
158
|
+
} = this.constrainZoomTranslation({
|
|
147
159
|
translateX: this.translateX.get(),
|
|
148
160
|
translateY: this.translateY.get(),
|
|
149
161
|
scale: nextScale
|
|
@@ -165,10 +177,7 @@ class GestureViewerManager {
|
|
|
165
177
|
const {
|
|
166
178
|
translateX,
|
|
167
179
|
translateY
|
|
168
|
-
} =
|
|
169
|
-
width: this.width,
|
|
170
|
-
height: this.height
|
|
171
|
-
})({
|
|
180
|
+
} = this.constrainZoomTranslation({
|
|
172
181
|
translateX: this.translateX.get(),
|
|
173
182
|
translateY: this.translateY.get(),
|
|
174
183
|
scale: nextScale
|
|
@@ -191,7 +200,7 @@ class GestureViewerManager {
|
|
|
191
200
|
this.cancelPendingLoopTransition();
|
|
192
201
|
const {
|
|
193
202
|
scrollTo
|
|
194
|
-
} = createScrollAction(this.listRef, this.
|
|
203
|
+
} = createScrollAction(this.listRef, this.pagingStride || this.viewportWidth);
|
|
195
204
|
if (this.enableLoop && this.dataLength > 1) {
|
|
196
205
|
if (index < 0) {
|
|
197
206
|
this.loopCallback = () => {
|
|
@@ -260,9 +269,14 @@ class GestureViewerManager {
|
|
|
260
269
|
this.currentIndex = 0;
|
|
261
270
|
this.dataLength = 0;
|
|
262
271
|
this.maxZoomScale = 2;
|
|
272
|
+
this.pagingStride = 0;
|
|
273
|
+
this.viewportWidth = 0;
|
|
274
|
+
this.height = 0;
|
|
263
275
|
this.scale = null;
|
|
264
276
|
this.translateX = null;
|
|
265
277
|
this.translateY = null;
|
|
278
|
+
this.contentWidth = null;
|
|
279
|
+
this.contentHeight = null;
|
|
266
280
|
this.rotation = null;
|
|
267
281
|
this.resetTransformCallback = null;
|
|
268
282
|
this.eventListeners.clear();
|
|
@@ -271,6 +285,21 @@ class GestureViewerManager {
|
|
|
271
285
|
this.currentIndex = targetIndex;
|
|
272
286
|
this.notifyListeners();
|
|
273
287
|
};
|
|
288
|
+
constrainZoomTranslation = ({
|
|
289
|
+
scale,
|
|
290
|
+
translateX,
|
|
291
|
+
translateY
|
|
292
|
+
}) => {
|
|
293
|
+
return clampTranslationToBounds({
|
|
294
|
+
contentHeight: this.contentHeight?.get(),
|
|
295
|
+
contentWidth: this.contentWidth?.get(),
|
|
296
|
+
height: this.height,
|
|
297
|
+
scale,
|
|
298
|
+
translateX,
|
|
299
|
+
translateY,
|
|
300
|
+
width: this.viewportWidth || this.pagingStride
|
|
301
|
+
});
|
|
302
|
+
};
|
|
274
303
|
}
|
|
275
304
|
export default GestureViewerManager;
|
|
276
305
|
//# 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","clampTranslationToBounds","createScrollAction","GestureViewerManager","currentIndex","dataLength","pagingStride","viewportWidth","height","maxZoomScale","enableHorizontalSwipe","enableLoop","listRef","scale","rotation","translateX","translateY","contentWidth","contentHeight","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","setPagingStride","setViewportWidth","width","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","constrainZoomTranslation","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":[]}
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAe/C,SAASC,0BAA0B,QAAQ,iCAA8B;AACzE,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SAASC,qBAAqB,QAAQ,4BAAyB","ignoreList":[]}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export const isValidItemDimensions = dimensions => {
|
|
4
|
+
return dimensions !== null && dimensions !== undefined && Number.isFinite(dimensions.width) && Number.isFinite(dimensions.height) && dimensions.width > 0 && dimensions.height > 0;
|
|
5
|
+
};
|
|
6
|
+
const resolveItemKey = (getItemKey, item, index) => {
|
|
7
|
+
const itemKey = getItemKey?.(item, index);
|
|
8
|
+
if (typeof itemKey === 'string') {
|
|
9
|
+
return itemKey;
|
|
10
|
+
}
|
|
11
|
+
return typeof itemKey === 'number' && Number.isFinite(itemKey) ? itemKey : undefined;
|
|
12
|
+
};
|
|
13
|
+
const doesEntryMatchItem = (entry, item, itemKey) => {
|
|
14
|
+
if (itemKey !== undefined && entry.itemKey !== undefined) {
|
|
15
|
+
return entry.itemKey === itemKey;
|
|
16
|
+
}
|
|
17
|
+
return Object.is(entry.item, item);
|
|
18
|
+
};
|
|
19
|
+
export const pruneItemDimensionsRegistry = (registry, dataLength) => {
|
|
20
|
+
for (const index of registry.keys()) {
|
|
21
|
+
if (index < 0 || index >= dataLength) {
|
|
22
|
+
registry.delete(index);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
export const resolveItemDimensions = ({
|
|
27
|
+
registry,
|
|
28
|
+
data,
|
|
29
|
+
index,
|
|
30
|
+
getItemDimensions,
|
|
31
|
+
getItemKey
|
|
32
|
+
}) => {
|
|
33
|
+
if (index < 0 || index >= data.length) {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// `as ItemT` restores the viewer's dense-list invariant, which TypeScript cannot infer from
|
|
38
|
+
// generic indexed access when `noUncheckedIndexedAccess` is enabled.
|
|
39
|
+
const item = data[index];
|
|
40
|
+
const registered = registry.get(index);
|
|
41
|
+
const itemKey = registered ? resolveItemKey(getItemKey, item, index) : undefined;
|
|
42
|
+
if (registered && doesEntryMatchItem(registered, item, itemKey) && isValidItemDimensions(registered.dimensions)) {
|
|
43
|
+
return registered.dimensions;
|
|
44
|
+
}
|
|
45
|
+
const resolved = getItemDimensions?.(item, index);
|
|
46
|
+
if (isValidItemDimensions(resolved)) {
|
|
47
|
+
return resolved;
|
|
48
|
+
}
|
|
49
|
+
return undefined;
|
|
50
|
+
};
|
|
51
|
+
export const registerItemDimensions = ({
|
|
52
|
+
registry,
|
|
53
|
+
data,
|
|
54
|
+
index,
|
|
55
|
+
item,
|
|
56
|
+
dimensions,
|
|
57
|
+
getItemKey
|
|
58
|
+
}) => {
|
|
59
|
+
if (index < 0 || index >= data.length || !isValidItemDimensions(dimensions)) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// `as ItemT` restores the viewer's dense-list invariant, which TypeScript cannot infer from
|
|
64
|
+
// generic indexed access when `noUncheckedIndexedAccess` is enabled.
|
|
65
|
+
const currentItem = data[index];
|
|
66
|
+
const currentItemKey = resolveItemKey(getItemKey, currentItem, index);
|
|
67
|
+
const reportedItemKey = Object.is(currentItem, item) ? currentItemKey : resolveItemKey(getItemKey, item, index);
|
|
68
|
+
const hasMatchingKey = currentItemKey !== undefined && reportedItemKey !== undefined && currentItemKey === reportedItemKey;
|
|
69
|
+
if (!Object.is(currentItem, item) && !hasMatchingKey) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
const registered = registry.get(index);
|
|
73
|
+
if (registered && doesEntryMatchItem(registered, currentItem, currentItemKey) && registered.dimensions.width === dimensions.width && registered.dimensions.height === dimensions.height) {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
registry.set(index, {
|
|
77
|
+
item: currentItem,
|
|
78
|
+
itemKey: currentItemKey,
|
|
79
|
+
dimensions: {
|
|
80
|
+
height: dimensions.height,
|
|
81
|
+
width: dimensions.width
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
return true;
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=itemDimensions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isValidItemDimensions","dimensions","undefined","Number","isFinite","width","height","resolveItemKey","getItemKey","item","index","itemKey","doesEntryMatchItem","entry","Object","is","pruneItemDimensionsRegistry","registry","dataLength","keys","delete","resolveItemDimensions","data","getItemDimensions","length","registered","get","resolved","registerItemDimensions","currentItem","currentItemKey","reportedItemKey","hasMatchingKey","set"],"sourceRoot":"../../src","sources":["itemDimensions.ts"],"mappings":"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","ignoreList":[]}
|