@one-am/react-native-simple-image-slider 0.13.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/lib/commonjs/@types/common.js.map +1 -1
- package/lib/commonjs/@types/icons.js.map +1 -1
- package/lib/commonjs/@types/pinch-to-zoom.js.map +1 -1
- package/lib/commonjs/@types/slider.js.map +1 -1
- package/lib/commonjs/@types/styled.d.js.map +1 -1
- package/lib/commonjs/BaseSimpleImageSlider.js +62 -69
- package/lib/commonjs/BaseSimpleImageSlider.js.map +1 -1
- package/lib/commonjs/FullScreenImageSlider.js +30 -26
- package/lib/commonjs/FullScreenImageSlider.js.map +1 -1
- package/lib/commonjs/PageCounter.js +9 -6
- package/lib/commonjs/PageCounter.js.map +1 -1
- package/lib/commonjs/PinchToZoom.js +11 -8
- package/lib/commonjs/PinchToZoom.js.map +1 -1
- package/lib/commonjs/SimpleImageSlider.js +31 -25
- package/lib/commonjs/SimpleImageSlider.js.map +1 -1
- package/lib/commonjs/SimpleImageSliderThemeProvider.js +16 -18
- package/lib/commonjs/SimpleImageSliderThemeProvider.js.map +1 -1
- package/lib/commonjs/icons/IconX.js +16 -14
- package/lib/commonjs/icons/IconX.js.map +1 -1
- package/lib/commonjs/index.js +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/utils/clamp.js.map +1 -1
- package/lib/commonjs/utils/renderProp.js +3 -2
- package/lib/commonjs/utils/renderProp.js.map +1 -1
- package/lib/module/@types/common.js +1 -1
- package/lib/module/@types/common.js.map +1 -1
- package/lib/module/@types/icons.js +2 -0
- package/lib/module/@types/icons.js.map +1 -1
- package/lib/module/@types/pinch-to-zoom.js +2 -0
- package/lib/module/@types/pinch-to-zoom.js.map +1 -1
- package/lib/module/@types/slider.js +2 -0
- package/lib/module/@types/slider.js.map +1 -1
- package/lib/module/@types/styled.d.js +2 -0
- package/lib/module/@types/styled.d.js.map +1 -1
- package/lib/module/BaseSimpleImageSlider.js +62 -67
- package/lib/module/BaseSimpleImageSlider.js.map +1 -1
- package/lib/module/FullScreenImageSlider.js +30 -24
- package/lib/module/FullScreenImageSlider.js.map +1 -1
- package/lib/module/PageCounter.js +10 -5
- package/lib/module/PageCounter.js.map +1 -1
- package/lib/module/PinchToZoom.js +12 -7
- package/lib/module/PinchToZoom.js.map +1 -1
- package/lib/module/SimpleImageSlider.js +31 -23
- package/lib/module/SimpleImageSlider.js.map +1 -1
- package/lib/module/SimpleImageSliderThemeProvider.js +17 -17
- package/lib/module/SimpleImageSliderThemeProvider.js.map +1 -1
- package/lib/module/icons/IconX.js +16 -12
- package/lib/module/icons/IconX.js.map +1 -1
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/package.json +1 -0
- package/lib/module/utils/clamp.js +2 -0
- package/lib/module/utils/clamp.js.map +1 -1
- package/lib/module/utils/renderProp.js +4 -1
- package/lib/module/utils/renderProp.js.map +1 -1
- package/lib/typescript/src/BaseSimpleImageSlider.d.ts +0 -5
- package/lib/typescript/src/BaseSimpleImageSlider.d.ts.map +1 -1
- package/lib/typescript/src/FullScreenImageSlider.d.ts +4 -4
- package/lib/typescript/src/FullScreenImageSlider.d.ts.map +1 -1
- package/lib/typescript/src/SimpleImageSlider.d.ts +15 -3
- package/lib/typescript/src/SimpleImageSlider.d.ts.map +1 -1
- package/package.json +29 -30
- package/src/BaseSimpleImageSlider.tsx +3 -23
- package/src/FullScreenImageSlider.tsx +1 -4
- package/src/SimpleImageSlider.tsx +10 -0
|
@@ -34,17 +34,17 @@ declare const FullScreenImageSlider: React.ForwardRefExoticComponent<Omit<BaseSi
|
|
|
34
34
|
/**
|
|
35
35
|
* @description Whether the modal is open or not.
|
|
36
36
|
*/
|
|
37
|
-
open?: boolean
|
|
37
|
+
open?: boolean;
|
|
38
38
|
/**
|
|
39
39
|
* @description Callback that is called when the modal is requested to be closed.
|
|
40
40
|
*/
|
|
41
|
-
onRequestClose?: (
|
|
41
|
+
onRequestClose?: () => void;
|
|
42
42
|
/**
|
|
43
43
|
* @description Callback that renders an element to be displayed as the description of the current image.
|
|
44
44
|
* @param item The current item being displayed.
|
|
45
45
|
* @param index The index of the current item being displayed.
|
|
46
46
|
*/
|
|
47
|
-
renderDescription?: (
|
|
47
|
+
renderDescription?: (item: SimpleImageSliderItem, index: number) => ReactNode;
|
|
48
48
|
/**
|
|
49
49
|
* @description Item to be rendered in place of the default close button icon.
|
|
50
50
|
*/
|
|
@@ -52,7 +52,7 @@ declare const FullScreenImageSlider: React.ForwardRefExoticComponent<Omit<BaseSi
|
|
|
52
52
|
/**
|
|
53
53
|
* @description Callback that is called when the modal begins to fade out.
|
|
54
54
|
*/
|
|
55
|
-
onFadeOut?: (
|
|
55
|
+
onFadeOut?: () => void;
|
|
56
56
|
} & React.RefAttributes<FlashList<SimpleImageSliderItem>>>;
|
|
57
57
|
export default FullScreenImageSlider;
|
|
58
58
|
//# sourceMappingURL=FullScreenImageSlider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FullScreenImageSlider.d.ts","sourceRoot":"","sources":["../../../src/FullScreenImageSlider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEV,KAAK,SAAS,EAKjB,MAAM,OAAO,CAAC;AAWf,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAA4B,EAAE,KAAK,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAG/F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAmB,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,0BAA0B,EAAE,YAAY,CAAC,GAAG;IACtF;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IAC9E;;OAEG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAqBF;;GAEG;AACH,QAAA,MAAM,qBAAqB;IA9CvB;;OAEG;;
|
|
1
|
+
{"version":3,"file":"FullScreenImageSlider.d.ts","sourceRoot":"","sources":["../../../src/FullScreenImageSlider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEV,KAAK,SAAS,EAKjB,MAAM,OAAO,CAAC;AAWf,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAA4B,EAAE,KAAK,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAG/F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAmB,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,0BAA0B,EAAE,YAAY,CAAC,GAAG;IACtF;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IAC9E;;OAEG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAqBF;;GAEG;AACH,QAAA,MAAM,qBAAqB;IA9CvB;;OAEG;WACI,OAAO;IACd;;OAEG;qBACc,MAAM,IAAI;IAC3B;;;;OAIG;wBACiB,CAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS;IAC7E;;OAEG;sBACe,UAAU;IAC5B;;OAEG;gBACS,MAAM,IAAI;0DAkIxB,CAAC;AAEH,eAAe,qBAAqB,CAAC"}
|
|
@@ -17,6 +17,12 @@ export type SimpleImageSliderProps = BaseSimpleImageSliderProps & {
|
|
|
17
17
|
* @description Passed to the {@link FullScreenImageSlider} component.
|
|
18
18
|
*/
|
|
19
19
|
FullScreenCloseButtonIcon?: FullScreenImageSliderProps['CloseButtonIcon'];
|
|
20
|
+
/**
|
|
21
|
+
* @description The aspect ratio of the images when full screen.
|
|
22
|
+
*
|
|
23
|
+
* @default {@link FullScreenImageSliderProps.imageAspectRatio}
|
|
24
|
+
*/
|
|
25
|
+
fullScreenImageAspectRatio?: number;
|
|
20
26
|
};
|
|
21
27
|
/**
|
|
22
28
|
* @description A simple image slider that displays images in a list and can show a {@link FullScreenImageSlider} on press.
|
|
@@ -26,15 +32,21 @@ declare const SimpleImageSlider: React.ForwardRefExoticComponent<BaseSimpleImage
|
|
|
26
32
|
* @description Whether the full screen mode is enabled or not. **Caution:** when this is enabled, the `onItemPress` prop will be ignored.
|
|
27
33
|
* @default false
|
|
28
34
|
*/
|
|
29
|
-
fullScreenEnabled?: boolean
|
|
35
|
+
fullScreenEnabled?: boolean;
|
|
30
36
|
/**
|
|
31
37
|
* @description Passed to the {@link FullScreenImageSlider} component.
|
|
32
38
|
*/
|
|
33
|
-
renderFullScreenDescription?: FullScreenImageSliderProps[
|
|
39
|
+
renderFullScreenDescription?: FullScreenImageSliderProps["renderDescription"];
|
|
34
40
|
/**
|
|
35
41
|
* @description Passed to the {@link FullScreenImageSlider} component.
|
|
36
42
|
*/
|
|
37
|
-
FullScreenCloseButtonIcon?: FullScreenImageSliderProps[
|
|
43
|
+
FullScreenCloseButtonIcon?: FullScreenImageSliderProps["CloseButtonIcon"];
|
|
44
|
+
/**
|
|
45
|
+
* @description The aspect ratio of the images when full screen.
|
|
46
|
+
*
|
|
47
|
+
* @default {@link FullScreenImageSliderProps.imageAspectRatio}
|
|
48
|
+
*/
|
|
49
|
+
fullScreenImageAspectRatio?: number;
|
|
38
50
|
} & React.RefAttributes<FlashList<SimpleImageSliderItem>>>;
|
|
39
51
|
export default SimpleImageSlider;
|
|
40
52
|
//# sourceMappingURL=SimpleImageSlider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleImageSlider.d.ts","sourceRoot":"","sources":["../../../src/SimpleImageSlider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAA8B,EAAE,KAAK,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAA4B,EAAE,KAAK,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,MAAM,MAAM,sBAAsB,GAAG,0BAA0B,GAAG;IAC9D;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,2BAA2B,CAAC,EAAE,0BAA0B,CAAC,mBAAmB,CAAC,CAAC;IAC9E;;OAEG;IACH,yBAAyB,CAAC,EAAE,0BAA0B,CAAC,iBAAiB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"SimpleImageSlider.d.ts","sourceRoot":"","sources":["../../../src/SimpleImageSlider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAA8B,EAAE,KAAK,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAA4B,EAAE,KAAK,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,MAAM,MAAM,sBAAsB,GAAG,0BAA0B,GAAG;IAC9D;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,2BAA2B,CAAC,EAAE,0BAA0B,CAAC,mBAAmB,CAAC,CAAC;IAC9E;;OAEG;IACH,yBAAyB,CAAC,EAAE,0BAA0B,CAAC,iBAAiB,CAAC,CAAC;IAC1E;;;;OAIG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACvC,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,iBAAiB;IAxBnB;;;OAGG;wBACiB,OAAO;IAC3B;;OAEG;kCAC2B,0BAA0B,CAAC,mBAAmB,CAAC;IAC7E;;OAEG;gCACyB,0BAA0B,CAAC,iBAAiB,CAAC;IACzE;;;;OAIG;iCAC0B,MAAM;0DAiFtC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@one-am/react-native-simple-image-slider",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "A simple and performant image slider made with FlashList. Includes a full screen gallery component with gesture support.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
},
|
|
37
37
|
"keywords": [
|
|
38
38
|
"react-native",
|
|
39
|
-
"
|
|
40
|
-
"
|
|
39
|
+
"image-slider",
|
|
40
|
+
"gallery"
|
|
41
41
|
],
|
|
42
42
|
"repository": {
|
|
43
43
|
"type": "git",
|
|
@@ -53,6 +53,22 @@
|
|
|
53
53
|
"registry": "https://registry.npmjs.org/",
|
|
54
54
|
"access": "public"
|
|
55
55
|
},
|
|
56
|
+
"dependencies": {
|
|
57
|
+
"merge-refs": "^1.2.2"
|
|
58
|
+
},
|
|
59
|
+
"peerDependencies": {
|
|
60
|
+
"@shopify/flash-list": "*",
|
|
61
|
+
"expo-haptics": "*",
|
|
62
|
+
"expo-image": "*",
|
|
63
|
+
"expo-status-bar": "*",
|
|
64
|
+
"react": "*",
|
|
65
|
+
"react-native": "*",
|
|
66
|
+
"react-native-gesture-handler": "*",
|
|
67
|
+
"react-native-reanimated": "*",
|
|
68
|
+
"react-native-safe-area-context": "*",
|
|
69
|
+
"react-native-svg": "*",
|
|
70
|
+
"styled-components": "*"
|
|
71
|
+
},
|
|
56
72
|
"devDependencies": {
|
|
57
73
|
"@babel/runtime": "^7.24.1",
|
|
58
74
|
"@commitlint/config-conventional": "^17.0.2",
|
|
@@ -83,36 +99,22 @@
|
|
|
83
99
|
"expo-image": "^1.10.6",
|
|
84
100
|
"expo-status-bar": "^1.11.1",
|
|
85
101
|
"jest": "^29.7.0",
|
|
86
|
-
"prettier": "^3.2
|
|
102
|
+
"prettier": "^3.4.2",
|
|
87
103
|
"react": "18.2.0",
|
|
88
|
-
"react-native": "0.
|
|
89
|
-
"react-native-builder-bob": "^0.
|
|
90
|
-
"react-native-gesture-handler": "
|
|
91
|
-
"react-native-reanimated": "
|
|
92
|
-
"react-native-safe-area-context": "
|
|
93
|
-
"react-native-svg": "
|
|
104
|
+
"react-native": "0.74.5",
|
|
105
|
+
"react-native-builder-bob": "^0.35.2",
|
|
106
|
+
"react-native-gesture-handler": "~2.16.1",
|
|
107
|
+
"react-native-reanimated": "~3.10.1",
|
|
108
|
+
"react-native-safe-area-context": "4.10.5",
|
|
109
|
+
"react-native-svg": "15.2.0",
|
|
110
|
+
"react-native-web": "~0.19.6",
|
|
94
111
|
"release-it": "^15.0.0",
|
|
95
|
-
"styled-components": "^6.1.
|
|
112
|
+
"styled-components": "^6.1.13",
|
|
96
113
|
"typescript": "^5.4.2",
|
|
97
114
|
"typescript-plugin-styled-components": "^3.0.0"
|
|
98
115
|
},
|
|
99
116
|
"resolutions": {
|
|
100
|
-
"
|
|
101
|
-
"styled-components": "^6"
|
|
102
|
-
},
|
|
103
|
-
"peerDependencies": {
|
|
104
|
-
"@babel/core": "*",
|
|
105
|
-
"@babel/runtime": "*",
|
|
106
|
-
"expo-haptics": "*",
|
|
107
|
-
"expo-image": "*",
|
|
108
|
-
"expo-status-bar": "*",
|
|
109
|
-
"react": "*",
|
|
110
|
-
"react-native": "*",
|
|
111
|
-
"react-native-gesture-handler": "*",
|
|
112
|
-
"react-native-reanimated": "*",
|
|
113
|
-
"react-native-safe-area-context": "*",
|
|
114
|
-
"react-native-svg": "*",
|
|
115
|
-
"styled-components": "*"
|
|
117
|
+
"styled-components": "^6.1.13"
|
|
116
118
|
},
|
|
117
119
|
"workspaces": [
|
|
118
120
|
"example"
|
|
@@ -160,8 +162,5 @@
|
|
|
160
162
|
}
|
|
161
163
|
]
|
|
162
164
|
]
|
|
163
|
-
},
|
|
164
|
-
"dependencies": {
|
|
165
|
-
"merge-refs": "^1.2.2"
|
|
166
165
|
}
|
|
167
166
|
}
|
|
@@ -122,11 +122,6 @@ export type BaseSimpleImageSliderProps = {
|
|
|
122
122
|
* @description Callback that is called when gestures should lead to a dismissal.
|
|
123
123
|
*/
|
|
124
124
|
onPinchToZoomRequestClose?: PinchToZoomProps['onDismiss'];
|
|
125
|
-
/**
|
|
126
|
-
* @description If greater than 0, items will be loaded in groups of this size.
|
|
127
|
-
* @default 5
|
|
128
|
-
*/
|
|
129
|
-
dataWindowSize?: number;
|
|
130
125
|
/**
|
|
131
126
|
* @description The tag to be used for shared transitions. This is applied to the current image in the list.
|
|
132
127
|
*/
|
|
@@ -222,7 +217,6 @@ const BaseSimpleImageSlider = forwardRef<
|
|
|
222
217
|
enablePinchToZoom = false,
|
|
223
218
|
onPinchToZoomStatusChange,
|
|
224
219
|
onPinchToZoomRequestClose,
|
|
225
|
-
dataWindowSize = 5,
|
|
226
220
|
sharedTransitionTag,
|
|
227
221
|
imageStyle,
|
|
228
222
|
},
|
|
@@ -242,23 +236,10 @@ const BaseSimpleImageSlider = forwardRef<
|
|
|
242
236
|
const [currentItem, setCurrentItem] = useState(0);
|
|
243
237
|
|
|
244
238
|
const slicedData = useMemo(
|
|
245
|
-
() => (maxItems !== undefined ? data?.slice(0, maxItems) ?? [] : data ?? []),
|
|
239
|
+
() => (maxItems !== undefined ? (data?.slice(0, maxItems) ?? []) : (data ?? [])),
|
|
246
240
|
[data, maxItems]
|
|
247
241
|
);
|
|
248
242
|
|
|
249
|
-
const [currentGroupIndex, setCurrentGroupIndex] = useState(0);
|
|
250
|
-
|
|
251
|
-
const nextGroup = useCallback(() => {
|
|
252
|
-
setCurrentGroupIndex((prev) => prev + 1);
|
|
253
|
-
}, []);
|
|
254
|
-
|
|
255
|
-
const internalData = useMemo(() => {
|
|
256
|
-
if (dataWindowSize <= 0) {
|
|
257
|
-
return slicedData;
|
|
258
|
-
}
|
|
259
|
-
return slicedData.slice(0, (currentGroupIndex + 1) * dataWindowSize);
|
|
260
|
-
}, [currentGroupIndex, dataWindowSize, slicedData]);
|
|
261
|
-
|
|
262
243
|
useEffect(() => {
|
|
263
244
|
setCurrentItem(indexOverride ?? 0);
|
|
264
245
|
|
|
@@ -342,6 +323,7 @@ const BaseSimpleImageSlider = forwardRef<
|
|
|
342
323
|
|
|
343
324
|
const list = (
|
|
344
325
|
<FlashList
|
|
326
|
+
// @ts-expect-error - there's just a small inconsistency with hitSlop typing
|
|
345
327
|
renderScrollComponent={ScrollView}
|
|
346
328
|
scrollEnabled={scrollEnabled}
|
|
347
329
|
disableScrollViewPanResponder={enablePinchToZoom ? !scrollEnabled : false}
|
|
@@ -358,9 +340,7 @@ const BaseSimpleImageSlider = forwardRef<
|
|
|
358
340
|
horizontal={true}
|
|
359
341
|
keyExtractor={keyExtractor}
|
|
360
342
|
renderItem={renderItem}
|
|
361
|
-
data={
|
|
362
|
-
onEndReached={nextGroup}
|
|
363
|
-
onEndReachedThreshold={0.5}
|
|
343
|
+
data={slicedData}
|
|
364
344
|
estimatedItemSize={estimatedItemSize}
|
|
365
345
|
estimatedListSize={{
|
|
366
346
|
width: estimatedItemSize,
|
|
@@ -169,10 +169,7 @@ const FullScreenImageSlider = forwardRef<
|
|
|
169
169
|
|
|
170
170
|
{renderDescription && data[internalIndex] ? (
|
|
171
171
|
<StyledDescriptionContainer style={styles.descriptionContainer}>
|
|
172
|
-
{renderDescription(
|
|
173
|
-
data[internalIndex] as SimpleImageSliderItem,
|
|
174
|
-
internalIndex
|
|
175
|
-
)}
|
|
172
|
+
{renderDescription(data[internalIndex], internalIndex)}
|
|
176
173
|
</StyledDescriptionContainer>
|
|
177
174
|
) : null}
|
|
178
175
|
</StyledModalContentContainer>
|
|
@@ -19,6 +19,12 @@ export type SimpleImageSliderProps = BaseSimpleImageSliderProps & {
|
|
|
19
19
|
* @description Passed to the {@link FullScreenImageSlider} component.
|
|
20
20
|
*/
|
|
21
21
|
FullScreenCloseButtonIcon?: FullScreenImageSliderProps['CloseButtonIcon'];
|
|
22
|
+
/**
|
|
23
|
+
* @description The aspect ratio of the images when full screen.
|
|
24
|
+
*
|
|
25
|
+
* @default {@link FullScreenImageSliderProps.imageAspectRatio}
|
|
26
|
+
*/
|
|
27
|
+
fullScreenImageAspectRatio?: number;
|
|
22
28
|
};
|
|
23
29
|
|
|
24
30
|
/**
|
|
@@ -33,6 +39,8 @@ const SimpleImageSlider = forwardRef<FlashList<SimpleImageSliderItem>, SimpleIma
|
|
|
33
39
|
onViewableItemChange,
|
|
34
40
|
FullScreenCloseButtonIcon,
|
|
35
41
|
renderFullScreenDescription,
|
|
42
|
+
imageAspectRatio,
|
|
43
|
+
fullScreenImageAspectRatio,
|
|
36
44
|
...props
|
|
37
45
|
},
|
|
38
46
|
ref
|
|
@@ -72,6 +80,7 @@ const SimpleImageSlider = forwardRef<FlashList<SimpleImageSliderItem>, SimpleIma
|
|
|
72
80
|
<>
|
|
73
81
|
<BaseListImageSlider
|
|
74
82
|
{...props}
|
|
83
|
+
imageAspectRatio={imageAspectRatio}
|
|
75
84
|
data={data}
|
|
76
85
|
ref={mergeRefs(ref, listRef)}
|
|
77
86
|
onItemPress={fullScreenEnabled ? openFullScreen : onItemPress}
|
|
@@ -80,6 +89,7 @@ const SimpleImageSlider = forwardRef<FlashList<SimpleImageSliderItem>, SimpleIma
|
|
|
80
89
|
{fullScreenEnabled ? (
|
|
81
90
|
<FullScreenImageSlider
|
|
82
91
|
{...props}
|
|
92
|
+
imageAspectRatio={fullScreenImageAspectRatio ?? imageAspectRatio}
|
|
83
93
|
ref={fullScreenListRef}
|
|
84
94
|
open={fullScreen}
|
|
85
95
|
onRequestClose={onRequestClose}
|