@one-am/react-native-simple-image-slider 0.4.1 → 0.6.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 +14 -45
- package/lib/commonjs/BaseSimpleImageSlider.js +16 -24
- package/lib/commonjs/BaseSimpleImageSlider.js.map +1 -1
- package/lib/commonjs/FullScreenImageSlider.js +10 -16
- package/lib/commonjs/FullScreenImageSlider.js.map +1 -1
- package/lib/commonjs/PageCounter.js +5 -11
- package/lib/commonjs/PageCounter.js.map +1 -1
- package/lib/commonjs/SimpleImageSlider.js +5 -1
- package/lib/commonjs/SimpleImageSlider.js.map +1 -1
- package/lib/commonjs/SimpleImageSliderThemeProvider.js +11 -35
- package/lib/commonjs/SimpleImageSliderThemeProvider.js.map +1 -1
- package/lib/module/BaseSimpleImageSlider.js +16 -24
- package/lib/module/BaseSimpleImageSlider.js.map +1 -1
- package/lib/module/FullScreenImageSlider.js +10 -16
- package/lib/module/FullScreenImageSlider.js.map +1 -1
- package/lib/module/PageCounter.js +5 -11
- package/lib/module/PageCounter.js.map +1 -1
- package/lib/module/SimpleImageSlider.js +5 -1
- package/lib/module/SimpleImageSlider.js.map +1 -1
- package/lib/module/SimpleImageSliderThemeProvider.js +11 -35
- package/lib/module/SimpleImageSliderThemeProvider.js.map +1 -1
- package/lib/typescript/src/@types/common.d.ts +0 -3
- package/lib/typescript/src/@types/common.d.ts.map +1 -1
- package/lib/typescript/src/BaseSimpleImageSlider.d.ts.map +1 -1
- package/lib/typescript/src/SimpleImageSlider.d.ts +17 -0
- package/lib/typescript/src/SimpleImageSlider.d.ts.map +1 -1
- package/lib/typescript/src/SimpleImageSliderThemeProvider.d.ts +5 -7
- package/lib/typescript/src/SimpleImageSliderThemeProvider.d.ts.map +1 -1
- package/package.json +1 -5
- package/src/@types/common.ts +0 -9
- package/src/@types/styled.d.ts +5 -27
- package/src/BaseSimpleImageSlider.tsx +16 -32
- package/src/FullScreenImageSlider.tsx +12 -16
- package/src/PageCounter.tsx +5 -5
- package/src/SimpleImageSlider.tsx +20 -2
- package/src/SimpleImageSliderThemeProvider.tsx +11 -39
|
@@ -10,16 +10,12 @@ import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
|
10
10
|
import renderProp from './utils/renderProp';
|
|
11
11
|
const StyledDescriptionContainer = styled.View`
|
|
12
12
|
position: absolute;
|
|
13
|
-
border-top-width:
|
|
14
|
-
theme
|
|
15
|
-
}) => theme.styles.borderWidth.xs}px;
|
|
13
|
+
border-top-width: 1px;
|
|
16
14
|
border-top-color: ${({
|
|
17
15
|
theme
|
|
18
|
-
}) => theme.colors.descriptionContainerBorder};
|
|
16
|
+
}) => theme.colors.simpleImageSlider.descriptionContainerBorder};
|
|
19
17
|
width: 100%;
|
|
20
|
-
padding-top:
|
|
21
|
-
theme
|
|
22
|
-
}) => theme.styles.spacing.l}px;
|
|
18
|
+
padding-top: 20px;
|
|
23
19
|
`;
|
|
24
20
|
const StyledModalCloseButton = styled.TouchableOpacity`
|
|
25
21
|
position: absolute;
|
|
@@ -28,9 +24,7 @@ const StyledModalCloseButton = styled.TouchableOpacity`
|
|
|
28
24
|
const StyledModalContentContainer = styled(Animated.View)`
|
|
29
25
|
align-items: center;
|
|
30
26
|
justify-content: center;
|
|
31
|
-
gap:
|
|
32
|
-
theme
|
|
33
|
-
}) => theme.styles.spacing.m}px;
|
|
27
|
+
gap: 16px;
|
|
34
28
|
`;
|
|
35
29
|
|
|
36
30
|
/**
|
|
@@ -48,7 +42,7 @@ const FullScreenImageSlider = /*#__PURE__*/forwardRef(function FullScreenImageSl
|
|
|
48
42
|
const windowDimensions = useWindowDimensions();
|
|
49
43
|
const theme = useTheme();
|
|
50
44
|
const safeAreaInsets = useSafeAreaInsets();
|
|
51
|
-
const styles = useMemo(() => makeStyles(
|
|
45
|
+
const styles = useMemo(() => makeStyles(safeAreaInsets, windowDimensions), [safeAreaInsets, windowDimensions]);
|
|
52
46
|
const [internalIndex, setInternalIndex] = useState(0);
|
|
53
47
|
const internalOnViewableItemChange = useCallback(index => {
|
|
54
48
|
setInternalIndex(index);
|
|
@@ -94,7 +88,7 @@ const FullScreenImageSlider = /*#__PURE__*/forwardRef(function FullScreenImageSl
|
|
|
94
88
|
style: styles.closeButton,
|
|
95
89
|
onPress: onRequestClose
|
|
96
90
|
}, CloseButtonIcon ? renderProp(CloseButtonIcon) : /*#__PURE__*/React.createElement(IconX, {
|
|
97
|
-
color: theme.colors.fullScreenCloseButton
|
|
91
|
+
color: theme.colors.simpleImageSlider.fullScreenCloseButton
|
|
98
92
|
})), /*#__PURE__*/React.createElement(BaseListImageSlider, _extends({
|
|
99
93
|
data: data,
|
|
100
94
|
enablePinchToZoom: true,
|
|
@@ -110,11 +104,11 @@ const FullScreenImageSlider = /*#__PURE__*/forwardRef(function FullScreenImageSl
|
|
|
110
104
|
}, renderDescription(data[internalIndex], internalIndex)) : null));
|
|
111
105
|
});
|
|
112
106
|
export default FullScreenImageSlider;
|
|
113
|
-
const makeStyles = (
|
|
107
|
+
const makeStyles = (safeAreaInsets, windowDimensions) => {
|
|
114
108
|
return StyleSheet.create({
|
|
115
109
|
closeButton: {
|
|
116
110
|
top: safeAreaInsets.top,
|
|
117
|
-
right: safeAreaInsets.right +
|
|
111
|
+
right: safeAreaInsets.right + 20
|
|
118
112
|
},
|
|
119
113
|
modalContent: {
|
|
120
114
|
height: windowDimensions.height,
|
|
@@ -122,8 +116,8 @@ const makeStyles = (theme, safeAreaInsets, windowDimensions) => {
|
|
|
122
116
|
},
|
|
123
117
|
descriptionContainer: {
|
|
124
118
|
bottom: safeAreaInsets.bottom + 100,
|
|
125
|
-
paddingLeft: safeAreaInsets.left +
|
|
126
|
-
paddingRight: safeAreaInsets.right +
|
|
119
|
+
paddingLeft: safeAreaInsets.left + 20,
|
|
120
|
+
paddingRight: safeAreaInsets.right + 20
|
|
127
121
|
}
|
|
128
122
|
});
|
|
129
123
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","useCallback","useEffect","useMemo","useState","Modal","StyleSheet","useWindowDimensions","IconX","Animated","runOnJS","useAnimatedStyle","useSharedValue","withTiming","setStatusBarStyle","styled","useTheme","BaseListImageSlider","useSafeAreaInsets","renderProp","StyledDescriptionContainer","View","theme","
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useCallback","useEffect","useMemo","useState","Modal","StyleSheet","useWindowDimensions","IconX","Animated","runOnJS","useAnimatedStyle","useSharedValue","withTiming","setStatusBarStyle","styled","useTheme","BaseListImageSlider","useSafeAreaInsets","renderProp","StyledDescriptionContainer","View","theme","colors","simpleImageSlider","descriptionContainerBorder","StyledModalCloseButton","TouchableOpacity","StyledModalContentContainer","FullScreenImageSlider","CloseButtonIcon","open","onRequestClose","renderDescription","onViewableItemChange","data","props","ref","windowDimensions","safeAreaInsets","styles","makeStyles","internalIndex","setInternalIndex","internalOnViewableItemChange","index","backgroundOpacity","modalContentStyle","backgroundColor","value","onPinchToZoomStatusChange","translation","scale","x","y","createElement","animationType","transparent","visible","style","modalContent","closeButton","onPress","color","fullScreenCloseButton","_extends","enablePinchToZoom","onPinchToZoomRequestClose","showPageCounter","imageWidth","width","descriptionContainer","create","top","right","height","bottom","paddingLeft","left","paddingRight"],"sourceRoot":"../../src","sources":["FullScreenImageSlider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,19 +4,13 @@ import styled from 'styled-components/native';
|
|
|
4
4
|
const StyledContainer = styled.View`
|
|
5
5
|
background-color: ${({
|
|
6
6
|
theme
|
|
7
|
-
}) => theme.colors.pageCounterBackground};
|
|
8
|
-
border-width:
|
|
9
|
-
theme
|
|
10
|
-
}) => theme.styles.borderWidth.xs}px;
|
|
7
|
+
}) => theme.colors.simpleImageSlider.pageCounterBackground};
|
|
8
|
+
border-width: 1px;
|
|
11
9
|
border-color: ${({
|
|
12
10
|
theme
|
|
13
|
-
}) => theme.colors.pageCounterBorder};
|
|
14
|
-
border-radius:
|
|
15
|
-
|
|
16
|
-
}) => theme.styles.borderRadius.m}px;
|
|
17
|
-
padding: ${({
|
|
18
|
-
theme
|
|
19
|
-
}) => `${theme.styles.spacing.s}px ${theme.styles.spacing.s}px`};
|
|
11
|
+
}) => theme.colors.simpleImageSlider.pageCounterBorder};
|
|
12
|
+
border-radius: 8px;
|
|
13
|
+
padding: 8px;
|
|
20
14
|
width: 75px;
|
|
21
15
|
flex-direction: row;
|
|
22
16
|
align-items: center;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Text","styled","StyledContainer","View","theme","colors","
|
|
1
|
+
{"version":3,"names":["React","Text","styled","StyledContainer","View","theme","colors","simpleImageSlider","pageCounterBackground","pageCounterBorder","PageCounter","currentPage","totalPages","style","createElement"],"sourceRoot":"../../src","sources":["PageCounter.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAyBC,IAAI,QAAwB,cAAc;AACnE,OAAOC,MAAM,MAAM,0BAA0B;AAiB7C,MAAMC,eAAe,GAAGD,MAAM,CAACE,IAAK;AACpC,wBAAwB,CAAC;EAAEC;AAAM,CAAC,KAAKA,KAAK,CAACC,MAAM,CAACC,iBAAiB,CAACC,qBAAsB;AAC5F;AACA,oBAAoB,CAAC;EAAEH;AAAM,CAAC,KAAKA,KAAK,CAACC,MAAM,CAACC,iBAAiB,CAACE,iBAAkB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,eAAe,SAASC,WAAWA,CAAC;EAAEC,WAAW;EAAEC,UAAU;EAAEC;AAAwB,CAAC,EAAE;EACtF,oBACIb,KAAA,CAAAc,aAAA,CAACX,eAAe;IAACU,KAAK,EAAEA;EAAM,gBAC1Bb,KAAA,CAAAc,aAAA,CAACb,IAAI,QACAU,WAAW,EAAC,KAAG,EAACC,UACf,CACO,CAAC;AAE1B","ignoreList":[]}
|
|
@@ -11,6 +11,8 @@ const SimpleImageSlider = /*#__PURE__*/forwardRef(function ListImageSlider({
|
|
|
11
11
|
fullScreenEnabled = false,
|
|
12
12
|
onItemPress,
|
|
13
13
|
onViewableItemChange,
|
|
14
|
+
FullScreenCloseButtonIcon,
|
|
15
|
+
renderFullScreenDescription,
|
|
14
16
|
...props
|
|
15
17
|
}, ref) {
|
|
16
18
|
const listRef = useRef(null);
|
|
@@ -46,7 +48,9 @@ const SimpleImageSlider = /*#__PURE__*/forwardRef(function ListImageSlider({
|
|
|
46
48
|
data: data,
|
|
47
49
|
showPageCounter: false,
|
|
48
50
|
indexOverride: currentIndex,
|
|
49
|
-
onViewableItemChange: onFullScreenViewableItemChange
|
|
51
|
+
onViewableItemChange: onFullScreenViewableItemChange,
|
|
52
|
+
renderDescription: renderFullScreenDescription,
|
|
53
|
+
CloseButtonIcon: FullScreenCloseButtonIcon
|
|
50
54
|
})) : null);
|
|
51
55
|
});
|
|
52
56
|
export default SimpleImageSlider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","useCallback","useRef","useState","mergeRefs","FullScreenImageSlider","BaseListImageSlider","SimpleImageSlider","ListImageSlider","data","fullScreenEnabled","onItemPress","onViewableItemChange","props","ref","listRef","fullScreenListRef","fullScreen","setFullScreen","currentIndex","setCurrentIndex","internalOnViewableItemChange","index","onFullScreenViewableItemChange","openFullScreen","onRequestClose","_listRef$current","current","scrollToIndex","createElement","Fragment","_extends","open","showPageCounter","indexOverride"],"sourceRoot":"../../src","sources":["SimpleImageSlider.tsx"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,WAAW,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAExE,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,qBAAqB,
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useCallback","useRef","useState","mergeRefs","FullScreenImageSlider","BaseListImageSlider","SimpleImageSlider","ListImageSlider","data","fullScreenEnabled","onItemPress","onViewableItemChange","FullScreenCloseButtonIcon","renderFullScreenDescription","props","ref","listRef","fullScreenListRef","fullScreen","setFullScreen","currentIndex","setCurrentIndex","internalOnViewableItemChange","index","onFullScreenViewableItemChange","openFullScreen","onRequestClose","_listRef$current","current","scrollToIndex","createElement","Fragment","_extends","open","showPageCounter","indexOverride","renderDescription","CloseButtonIcon"],"sourceRoot":"../../src","sources":["SimpleImageSlider.tsx"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,WAAW,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAExE,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,qBAAqB,MAA2C,yBAAyB;AAChG,OAAOC,mBAAmB,MAA2C,yBAAyB;AAmB9F;AACA;AACA;AACA,MAAMC,iBAAiB,gBAAGP,UAAU,CAChC,SAASQ,eAAeA,CACpB;EACIC,IAAI;EACJC,iBAAiB,GAAG,KAAK;EACzBC,WAAW;EACXC,oBAAoB;EACpBC,yBAAyB;EACzBC,2BAA2B;EAC3B,GAAGC;AACP,CAAC,EACDC,GAAG,EACL;EACE,MAAMC,OAAO,GAAGf,MAAM,CAAmC,IAAI,CAAC;EAC9D,MAAMgB,iBAAiB,GAAGhB,MAAM,CAAmC,IAAI,CAAC;EAExE,MAAM,CAACiB,UAAU,EAAEC,aAAa,CAAC,GAAGjB,QAAQ,CAAC,KAAK,CAAC;EACnD,MAAM,CAACkB,YAAY,EAAEC,eAAe,CAAC,GAAGnB,QAAQ,CAAC,CAAC,CAAC;EAEnD,MAAMoB,4BAA4B,GAAGtB,WAAW,CAC3CuB,KAAa,IAAK;IACfF,eAAe,CAACE,KAAK,CAAC;IACtBZ,oBAAoB,aAApBA,oBAAoB,eAApBA,oBAAoB,CAAGY,KAAK,CAAC;EACjC,CAAC,EACD,CAACZ,oBAAoB,CACzB,CAAC;EAED,MAAMa,8BAA8B,GAAGxB,WAAW,CAAEuB,KAAa,IAAK;IAClEF,eAAe,CAACE,KAAK,CAAC;EAC1B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,cAAc,GAAGzB,WAAW,CAAC,MAAM;IACrCmB,aAAa,CAAC,IAAI,CAAC;EACvB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMO,cAAc,GAAG1B,WAAW,CAAC,MAAM;IAAA,IAAA2B,gBAAA;IACrC,CAAAA,gBAAA,GAAAX,OAAO,CAACY,OAAO,cAAAD,gBAAA,eAAfA,gBAAA,CAAiBE,aAAa,CAAC;MAAEN,KAAK,EAAEH;IAAa,CAAC,CAAC;IACvDD,aAAa,CAAC,KAAK,CAAC;EACxB,CAAC,EAAE,CAACC,YAAY,CAAC,CAAC;EAElB,oBACItB,KAAA,CAAAgC,aAAA,CAAAhC,KAAA,CAAAiC,QAAA,qBACIjC,KAAA,CAAAgC,aAAA,CAACzB,mBAAmB,EAAA2B,QAAA,KACZlB,KAAK;IACTN,IAAI,EAAEA,IAAK;IACXO,GAAG,EAAEZ,SAAS,CAACY,GAAG,EAAEC,OAAO,CAAE;IAC7BN,WAAW,EAAED,iBAAiB,GAAGgB,cAAc,GAAGf,WAAY;IAC9DC,oBAAoB,EAAEW;EAA6B,EACtD,CAAC,EACDb,iBAAiB,gBACdX,KAAA,CAAAgC,aAAA,CAAC1B,qBAAqB,EAAA4B,QAAA,KACdlB,KAAK;IACTC,GAAG,EAAEE,iBAAkB;IACvBgB,IAAI,EAAEf,UAAW;IACjBQ,cAAc,EAAEA,cAAe;IAC/BlB,IAAI,EAAEA,IAAK;IACX0B,eAAe,EAAE,KAAM;IACvBC,aAAa,EAAEf,YAAa;IAC5BT,oBAAoB,EAAEa,8BAA+B;IACrDY,iBAAiB,EAAEvB,2BAA4B;IAC/CwB,eAAe,EAAEzB;EAA0B,EAC9C,CAAC,GACF,IACN,CAAC;AAEX,CACJ,CAAC;AAED,eAAeN,iBAAiB","ignoreList":[]}
|
|
@@ -1,48 +1,24 @@
|
|
|
1
1
|
import React, { useMemo } from 'react';
|
|
2
2
|
import { ThemeProvider } from 'styled-components/native';
|
|
3
3
|
export default function SimpleImageSliderThemeProvider({
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
overrides,
|
|
5
|
+
children
|
|
6
6
|
}) {
|
|
7
|
+
var _overrides$colors2;
|
|
7
8
|
const theme = useMemo(() => {
|
|
8
|
-
var _overrides$
|
|
9
|
+
var _overrides$colors;
|
|
9
10
|
return {
|
|
10
11
|
colors: {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
styles: {
|
|
18
|
-
spacing: {
|
|
19
|
-
xxs: 2,
|
|
20
|
-
xs: 4,
|
|
21
|
-
s: 8,
|
|
22
|
-
m: 16,
|
|
23
|
-
l: 20,
|
|
24
|
-
xl: 40,
|
|
25
|
-
...(overrides === null || overrides === void 0 || (_overrides$styles = overrides.styles) === null || _overrides$styles === void 0 ? void 0 : _overrides$styles.spacing)
|
|
26
|
-
},
|
|
27
|
-
borderRadius: {
|
|
28
|
-
xs: 2,
|
|
29
|
-
s: 4,
|
|
30
|
-
m: 8,
|
|
31
|
-
l: 16,
|
|
32
|
-
xl: 24,
|
|
33
|
-
...(overrides === null || overrides === void 0 || (_overrides$styles2 = overrides.styles) === null || _overrides$styles2 === void 0 ? void 0 : _overrides$styles2.borderRadius)
|
|
34
|
-
},
|
|
35
|
-
borderWidth: {
|
|
36
|
-
xs: 1,
|
|
37
|
-
s: 2,
|
|
38
|
-
m: 4,
|
|
39
|
-
l: 8,
|
|
40
|
-
xl: 16,
|
|
41
|
-
...(overrides === null || overrides === void 0 || (_overrides$styles3 = overrides.styles) === null || _overrides$styles3 === void 0 ? void 0 : _overrides$styles3.borderWidth)
|
|
12
|
+
simpleImageSlider: {
|
|
13
|
+
pageCounterBackground: '#D3D3D3',
|
|
14
|
+
pageCounterBorder: '#000000',
|
|
15
|
+
fullScreenCloseButton: '#FFFFFF',
|
|
16
|
+
descriptionContainerBorder: '#FFFFFF',
|
|
17
|
+
...(overrides === null || overrides === void 0 || (_overrides$colors = overrides.colors) === null || _overrides$colors === void 0 ? void 0 : _overrides$colors.simpleImageSlider)
|
|
42
18
|
}
|
|
43
19
|
}
|
|
44
20
|
};
|
|
45
|
-
}, [overrides]);
|
|
21
|
+
}, [overrides === null || overrides === void 0 || (_overrides$colors2 = overrides.colors) === null || _overrides$colors2 === void 0 ? void 0 : _overrides$colors2.simpleImageSlider]);
|
|
46
22
|
return /*#__PURE__*/React.createElement(ThemeProvider, {
|
|
47
23
|
theme: theme
|
|
48
24
|
}, children);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","ThemeProvider","SimpleImageSliderThemeProvider","
|
|
1
|
+
{"version":3,"names":["React","useMemo","ThemeProvider","SimpleImageSliderThemeProvider","overrides","children","_overrides$colors2","theme","_overrides$colors","colors","simpleImageSlider","pageCounterBackground","pageCounterBorder","fullScreenCloseButton","descriptionContainerBorder","createElement"],"sourceRoot":"../../src","sources":["SimpleImageSliderThemeProvider.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAA4BC,OAAO,QAAQ,OAAO;AAC9D,SAA4BC,aAAa,QAAQ,0BAA0B;AAQ3E,eAAe,SAASC,8BAA8BA,CAAC;EACnDC,SAAS;EACTC;AACiC,CAAC,EAAE;EAAA,IAAAC,kBAAA;EACpC,MAAMC,KAAmB,GAAGN,OAAO,CAC/B;IAAA,IAAAO,iBAAA;IAAA,OAAO;MACHC,MAAM,EAAE;QACJC,iBAAiB,EAAE;UACfC,qBAAqB,EAAE,SAAS;UAChCC,iBAAiB,EAAE,SAAS;UAC5BC,qBAAqB,EAAE,SAAS;UAChCC,0BAA0B,EAAE,SAAS;UACrC,IAAGV,SAAS,aAATA,SAAS,gBAAAI,iBAAA,GAATJ,SAAS,CAAEK,MAAM,cAAAD,iBAAA,uBAAjBA,iBAAA,CAAmBE,iBAAiB;QAC3C;MACJ;IACJ,CAAC;EAAA,CAAC,EACF,CAACN,SAAS,aAATA,SAAS,gBAAAE,kBAAA,GAATF,SAAS,CAAEK,MAAM,cAAAH,kBAAA,uBAAjBA,kBAAA,CAAmBI,iBAAiB,CACzC,CAAC;EAED,oBAAOV,KAAA,CAAAe,aAAA,CAACb,aAAa;IAACK,KAAK,EAAEA;EAAM,GAAEF,QAAwB,CAAC;AAClE","ignoreList":[]}
|
|
@@ -1,4 +1 @@
|
|
|
1
|
-
export type Subset<K> = {
|
|
2
|
-
[attr in keyof K]?: K[attr] extends object ? Subset<K[attr]> : K[attr] extends object | null ? Subset<K[attr]> | null : K[attr] extends object | null | undefined ? Subset<K[attr]> | null | undefined : K[attr];
|
|
3
|
-
};
|
|
4
1
|
//# sourceMappingURL=common.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/@types/common.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/@types/common.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseSimpleImageSlider.d.ts","sourceRoot":"","sources":["../../../src/BaseSimpleImageSlider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEV,KAAK,YAAY,EAMpB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,SAAS,EAA2B,MAAM,qBAAqB,CAAC;AAGzE,OAAO,EAAa,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzE,OAAoB,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAmB,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,MAAM,MAAM,0BAA0B,GAAG;IACrC,IAAI,EAAE,qBAAqB,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;IAChF,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,YAAY,CAAC;IAC9E,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,oBAAoB,CAAC,EAAE,UAAU,CAAC;IAClC,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,yBAAyB,CAAC,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;IACpE,yBAAyB,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;CAC7D,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseSimpleImageSlider.d.ts","sourceRoot":"","sources":["../../../src/BaseSimpleImageSlider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEV,KAAK,YAAY,EAMpB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,SAAS,EAA2B,MAAM,qBAAqB,CAAC;AAGzE,OAAO,EAAa,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzE,OAAoB,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAmB,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,MAAM,MAAM,0BAA0B,GAAG;IACrC,IAAI,EAAE,qBAAqB,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;IAChF,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,YAAY,CAAC;IAC9E,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,oBAAoB,CAAC,EAAE,UAAU,CAAC;IAClC,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,yBAAyB,CAAC,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;IACpE,yBAAyB,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;CAC7D,CAAC;AAqDF;;;;GAIG;AACH,QAAA,MAAM,mBAAmB,qHAgKvB,CAAC;AAEH,eAAe,mBAAmB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { FlashList } from '@shopify/flash-list';
|
|
3
|
+
import { type FullScreenImageSliderProps } from './FullScreenImageSlider';
|
|
3
4
|
import { type BaseSimpleImageSliderProps } from './BaseSimpleImageSlider';
|
|
4
5
|
import type { SimpleImageSliderItem } from './@types/slider';
|
|
5
6
|
export type SimpleImageSliderProps = BaseSimpleImageSliderProps & {
|
|
@@ -8,6 +9,14 @@ export type SimpleImageSliderProps = BaseSimpleImageSliderProps & {
|
|
|
8
9
|
* @default false
|
|
9
10
|
*/
|
|
10
11
|
fullScreenEnabled?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* @description Passed to the {@link FullScreenImageSlider} component.
|
|
14
|
+
*/
|
|
15
|
+
renderFullScreenDescription?: FullScreenImageSliderProps['renderDescription'];
|
|
16
|
+
/**
|
|
17
|
+
* @description Passed to the {@link FullScreenImageSlider} component.
|
|
18
|
+
*/
|
|
19
|
+
FullScreenCloseButtonIcon?: FullScreenImageSliderProps['CloseButtonIcon'];
|
|
11
20
|
};
|
|
12
21
|
/**
|
|
13
22
|
* @description A simple image slider that displays images in a list and can show a {@link FullScreenImageSlider} on press.
|
|
@@ -18,6 +27,14 @@ declare const SimpleImageSlider: React.ForwardRefExoticComponent<BaseSimpleImage
|
|
|
18
27
|
* @default false
|
|
19
28
|
*/
|
|
20
29
|
fullScreenEnabled?: boolean | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* @description Passed to the {@link FullScreenImageSlider} component.
|
|
32
|
+
*/
|
|
33
|
+
renderFullScreenDescription?: FullScreenImageSliderProps['renderDescription'];
|
|
34
|
+
/**
|
|
35
|
+
* @description Passed to the {@link FullScreenImageSlider} component.
|
|
36
|
+
*/
|
|
37
|
+
FullScreenCloseButtonIcon?: FullScreenImageSliderProps['CloseButtonIcon'];
|
|
21
38
|
} & React.RefAttributes<FlashList<SimpleImageSliderItem>>>;
|
|
22
39
|
export default SimpleImageSlider;
|
|
23
40
|
//# 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;
|
|
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;CAC7E,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,iBAAiB;IAlBnB;;;OAGG;;IAEH;;OAEG;kCAC2B,0BAA0B,CAAC,mBAAmB,CAAC;IAC7E;;OAEG;gCACyB,0BAA0B,CAAC,iBAAiB,CAAC;0DAwE5E,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import React, { type PropsWithChildren } from 'react';
|
|
2
|
-
import type
|
|
3
|
-
import type { Subset } from './@types/common';
|
|
2
|
+
import { type DefaultTheme } from 'styled-components/native';
|
|
4
3
|
export type SimpleImageSliderThemeProviderProps = PropsWithChildren<{
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
overrides?: Subset<SimpleImageSliderTheme>;
|
|
4
|
+
overrides?: {
|
|
5
|
+
colors: Partial<DefaultTheme['colors']>;
|
|
6
|
+
};
|
|
9
7
|
}>;
|
|
10
|
-
export default function SimpleImageSliderThemeProvider({
|
|
8
|
+
export default function SimpleImageSliderThemeProvider({ overrides, children, }: SimpleImageSliderThemeProviderProps): React.JSX.Element;
|
|
11
9
|
//# sourceMappingURL=SimpleImageSliderThemeProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleImageSliderThemeProvider.d.ts","sourceRoot":"","sources":["../../../src/SimpleImageSliderThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAW,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SimpleImageSliderThemeProvider.d.ts","sourceRoot":"","sources":["../../../src/SimpleImageSliderThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAW,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAE,KAAK,YAAY,EAAiB,MAAM,0BAA0B,CAAC;AAE5E,MAAM,MAAM,mCAAmC,GAAG,iBAAiB,CAAC;IAChE,SAAS,CAAC,EAAE;QACR,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC3C,CAAC;CACL,CAAC,CAAC;AAEH,MAAM,CAAC,OAAO,UAAU,8BAA8B,CAAC,EACnD,SAAS,EACT,QAAQ,GACX,EAAE,mCAAmC,qBAiBrC"}
|
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.6.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",
|
|
@@ -136,10 +136,6 @@
|
|
|
136
136
|
"npm": {
|
|
137
137
|
"publish": true
|
|
138
138
|
},
|
|
139
|
-
"github": {
|
|
140
|
-
"release": true,
|
|
141
|
-
"host": "https://api.github.com"
|
|
142
|
-
},
|
|
143
139
|
"gitlab": {
|
|
144
140
|
"release": true
|
|
145
141
|
},
|
package/src/@types/common.ts
CHANGED
package/src/@types/styled.d.ts
CHANGED
|
@@ -2,33 +2,11 @@ import 'styled-components/native';
|
|
|
2
2
|
|
|
3
3
|
export type SimpleImageSliderTheme = {
|
|
4
4
|
colors: {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
styles: {
|
|
11
|
-
spacing: {
|
|
12
|
-
xxs: number;
|
|
13
|
-
xs: number;
|
|
14
|
-
s: number;
|
|
15
|
-
m: number;
|
|
16
|
-
l: number;
|
|
17
|
-
xl: number;
|
|
18
|
-
};
|
|
19
|
-
borderRadius: {
|
|
20
|
-
xs: number;
|
|
21
|
-
s: number;
|
|
22
|
-
m: number;
|
|
23
|
-
l: number;
|
|
24
|
-
xl: number;
|
|
25
|
-
};
|
|
26
|
-
borderWidth: {
|
|
27
|
-
xs: number;
|
|
28
|
-
s: number;
|
|
29
|
-
m: number;
|
|
30
|
-
l: number;
|
|
31
|
-
xl: number;
|
|
5
|
+
simpleImageSlider: {
|
|
6
|
+
pageCounterBackground: string;
|
|
7
|
+
pageCounterBorder: string;
|
|
8
|
+
fullScreenCloseButton: string;
|
|
9
|
+
descriptionContainerBorder: string;
|
|
32
10
|
};
|
|
33
11
|
};
|
|
34
12
|
};
|
|
@@ -46,22 +46,14 @@ const StyledAbsoluteComponentContainer = styled.View<{
|
|
|
46
46
|
}>`
|
|
47
47
|
z-index: 1000;
|
|
48
48
|
position: absolute;
|
|
49
|
-
bottom: ${({ position
|
|
50
|
-
position === 'bottom-left' || position === 'bottom-right'
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
position === 'top-left' || position === '
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
left: ${({ position, theme }) =>
|
|
58
|
-
position === 'top-left' || position === 'bottom-left'
|
|
59
|
-
? `${theme.styles.spacing.m}px`
|
|
60
|
-
: undefined};
|
|
61
|
-
right: ${({ position, theme }) =>
|
|
62
|
-
position === 'top-right' || position === 'bottom-right'
|
|
63
|
-
? `${theme.styles.spacing.m}px`
|
|
64
|
-
: undefined};
|
|
49
|
+
bottom: ${({ position }) =>
|
|
50
|
+
position === 'bottom-left' || position === 'bottom-right' ? `16px` : undefined};
|
|
51
|
+
top: ${({ position }) =>
|
|
52
|
+
position === 'top-left' || position === 'top-right' ? `16px` : undefined};
|
|
53
|
+
left: ${({ position }) =>
|
|
54
|
+
position === 'top-left' || position === 'bottom-left' ? `16px` : undefined};
|
|
55
|
+
right: ${({ position }) =>
|
|
56
|
+
position === 'top-right' || position === 'bottom-right' ? `16px` : undefined};
|
|
65
57
|
`;
|
|
66
58
|
|
|
67
59
|
const StyledPageCounter = styled(PageCounter)<{
|
|
@@ -69,22 +61,14 @@ const StyledPageCounter = styled(PageCounter)<{
|
|
|
69
61
|
}>`
|
|
70
62
|
z-index: 1000;
|
|
71
63
|
position: absolute;
|
|
72
|
-
bottom: ${({ position
|
|
73
|
-
position === 'bottom-left' || position === 'bottom-right'
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
position === 'top-left' || position === '
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
left: ${({ position, theme }) =>
|
|
81
|
-
position === 'top-left' || position === 'bottom-left'
|
|
82
|
-
? `${theme.styles.spacing.m}px`
|
|
83
|
-
: undefined};
|
|
84
|
-
right: ${({ position, theme }) =>
|
|
85
|
-
position === 'top-right' || position === 'bottom-right'
|
|
86
|
-
? `${theme.styles.spacing.m}px`
|
|
87
|
-
: undefined};
|
|
64
|
+
bottom: ${({ position }) =>
|
|
65
|
+
position === 'bottom-left' || position === 'bottom-right' ? `16px` : undefined};
|
|
66
|
+
top: ${({ position }) =>
|
|
67
|
+
position === 'top-left' || position === 'top-right' ? `16px` : undefined};
|
|
68
|
+
left: ${({ position }) =>
|
|
69
|
+
position === 'top-left' || position === 'bottom-left' ? `16px` : undefined};
|
|
70
|
+
right: ${({ position }) =>
|
|
71
|
+
position === 'top-right' || position === 'bottom-right' ? `16px` : undefined};
|
|
88
72
|
`;
|
|
89
73
|
|
|
90
74
|
const StyledContainer = styled(GestureHandlerRootView)<{ aspectRatio?: number }>`
|
|
@@ -15,7 +15,7 @@ import Animated, {
|
|
|
15
15
|
withTiming,
|
|
16
16
|
} from 'react-native-reanimated';
|
|
17
17
|
import { setStatusBarStyle } from 'expo-status-bar';
|
|
18
|
-
import styled, {
|
|
18
|
+
import styled, { useTheme } from 'styled-components/native';
|
|
19
19
|
import { FlashList } from '@shopify/flash-list';
|
|
20
20
|
import BaseListImageSlider, { type BaseSimpleImageSliderProps } from './BaseSimpleImageSlider';
|
|
21
21
|
import { type EdgeInsets, useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
@@ -46,10 +46,10 @@ export type FullScreenImageSliderProps = BaseSimpleImageSliderProps & {
|
|
|
46
46
|
|
|
47
47
|
const StyledDescriptionContainer = styled.View`
|
|
48
48
|
position: absolute;
|
|
49
|
-
border-top-width:
|
|
50
|
-
border-top-color: ${({ theme }) => theme.colors.descriptionContainerBorder};
|
|
49
|
+
border-top-width: 1px;
|
|
50
|
+
border-top-color: ${({ theme }) => theme.colors.simpleImageSlider.descriptionContainerBorder};
|
|
51
51
|
width: 100%;
|
|
52
|
-
padding-top:
|
|
52
|
+
padding-top: 20px;
|
|
53
53
|
`;
|
|
54
54
|
|
|
55
55
|
const StyledModalCloseButton = styled.TouchableOpacity`
|
|
@@ -60,7 +60,7 @@ const StyledModalCloseButton = styled.TouchableOpacity`
|
|
|
60
60
|
const StyledModalContentContainer = styled(Animated.View)`
|
|
61
61
|
align-items: center;
|
|
62
62
|
justify-content: center;
|
|
63
|
-
gap:
|
|
63
|
+
gap: 16px;
|
|
64
64
|
`;
|
|
65
65
|
|
|
66
66
|
/**
|
|
@@ -85,8 +85,8 @@ const FullScreenImageSlider = forwardRef<
|
|
|
85
85
|
const theme = useTheme();
|
|
86
86
|
const safeAreaInsets = useSafeAreaInsets();
|
|
87
87
|
const styles = useMemo(
|
|
88
|
-
() => makeStyles(
|
|
89
|
-
[
|
|
88
|
+
() => makeStyles(safeAreaInsets, windowDimensions),
|
|
89
|
+
[safeAreaInsets, windowDimensions]
|
|
90
90
|
);
|
|
91
91
|
|
|
92
92
|
const [internalIndex, setInternalIndex] = useState<number>(0);
|
|
@@ -144,7 +144,7 @@ const FullScreenImageSlider = forwardRef<
|
|
|
144
144
|
{CloseButtonIcon ? (
|
|
145
145
|
renderProp(CloseButtonIcon)
|
|
146
146
|
) : (
|
|
147
|
-
<IconX color={theme.colors.fullScreenCloseButton} />
|
|
147
|
+
<IconX color={theme.colors.simpleImageSlider.fullScreenCloseButton} />
|
|
148
148
|
)}
|
|
149
149
|
</StyledModalCloseButton>
|
|
150
150
|
<BaseListImageSlider
|
|
@@ -174,15 +174,11 @@ const FullScreenImageSlider = forwardRef<
|
|
|
174
174
|
|
|
175
175
|
export default FullScreenImageSlider;
|
|
176
176
|
|
|
177
|
-
const makeStyles = (
|
|
178
|
-
theme: DefaultTheme,
|
|
179
|
-
safeAreaInsets: EdgeInsets,
|
|
180
|
-
windowDimensions: ScaledSize
|
|
181
|
-
) => {
|
|
177
|
+
const makeStyles = (safeAreaInsets: EdgeInsets, windowDimensions: ScaledSize) => {
|
|
182
178
|
return StyleSheet.create({
|
|
183
179
|
closeButton: {
|
|
184
180
|
top: safeAreaInsets.top,
|
|
185
|
-
right: safeAreaInsets.right +
|
|
181
|
+
right: safeAreaInsets.right + 20,
|
|
186
182
|
},
|
|
187
183
|
modalContent: {
|
|
188
184
|
height: windowDimensions.height,
|
|
@@ -190,8 +186,8 @@ const makeStyles = (
|
|
|
190
186
|
},
|
|
191
187
|
descriptionContainer: {
|
|
192
188
|
bottom: safeAreaInsets.bottom + 100,
|
|
193
|
-
paddingLeft: safeAreaInsets.left +
|
|
194
|
-
paddingRight: safeAreaInsets.right +
|
|
189
|
+
paddingLeft: safeAreaInsets.left + 20,
|
|
190
|
+
paddingRight: safeAreaInsets.right + 20,
|
|
195
191
|
},
|
|
196
192
|
});
|
|
197
193
|
};
|
package/src/PageCounter.tsx
CHANGED
|
@@ -18,11 +18,11 @@ type PageCounterProps = {
|
|
|
18
18
|
};
|
|
19
19
|
|
|
20
20
|
const StyledContainer = styled.View`
|
|
21
|
-
background-color: ${({ theme }) => theme.colors.pageCounterBackground};
|
|
22
|
-
border-width:
|
|
23
|
-
border-color: ${({ theme }) => theme.colors.pageCounterBorder};
|
|
24
|
-
border-radius:
|
|
25
|
-
padding:
|
|
21
|
+
background-color: ${({ theme }) => theme.colors.simpleImageSlider.pageCounterBackground};
|
|
22
|
+
border-width: 1px;
|
|
23
|
+
border-color: ${({ theme }) => theme.colors.simpleImageSlider.pageCounterBorder};
|
|
24
|
+
border-radius: 8px;
|
|
25
|
+
padding: 8px;
|
|
26
26
|
width: 75px;
|
|
27
27
|
flex-direction: row;
|
|
28
28
|
align-items: center;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { forwardRef, useCallback, useRef, useState } from 'react';
|
|
2
2
|
import { FlashList } from '@shopify/flash-list';
|
|
3
3
|
import mergeRefs from 'merge-refs';
|
|
4
|
-
import FullScreenImageSlider from './FullScreenImageSlider';
|
|
4
|
+
import FullScreenImageSlider, { type FullScreenImageSliderProps } from './FullScreenImageSlider';
|
|
5
5
|
import BaseListImageSlider, { type BaseSimpleImageSliderProps } from './BaseSimpleImageSlider';
|
|
6
6
|
import type { SimpleImageSliderItem } from './@types/slider';
|
|
7
7
|
|
|
@@ -11,6 +11,14 @@ export type SimpleImageSliderProps = BaseSimpleImageSliderProps & {
|
|
|
11
11
|
* @default false
|
|
12
12
|
*/
|
|
13
13
|
fullScreenEnabled?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* @description Passed to the {@link FullScreenImageSlider} component.
|
|
16
|
+
*/
|
|
17
|
+
renderFullScreenDescription?: FullScreenImageSliderProps['renderDescription'];
|
|
18
|
+
/**
|
|
19
|
+
* @description Passed to the {@link FullScreenImageSlider} component.
|
|
20
|
+
*/
|
|
21
|
+
FullScreenCloseButtonIcon?: FullScreenImageSliderProps['CloseButtonIcon'];
|
|
14
22
|
};
|
|
15
23
|
|
|
16
24
|
/**
|
|
@@ -18,7 +26,15 @@ export type SimpleImageSliderProps = BaseSimpleImageSliderProps & {
|
|
|
18
26
|
*/
|
|
19
27
|
const SimpleImageSlider = forwardRef<FlashList<SimpleImageSliderItem>, SimpleImageSliderProps>(
|
|
20
28
|
function ListImageSlider(
|
|
21
|
-
{
|
|
29
|
+
{
|
|
30
|
+
data,
|
|
31
|
+
fullScreenEnabled = false,
|
|
32
|
+
onItemPress,
|
|
33
|
+
onViewableItemChange,
|
|
34
|
+
FullScreenCloseButtonIcon,
|
|
35
|
+
renderFullScreenDescription,
|
|
36
|
+
...props
|
|
37
|
+
},
|
|
22
38
|
ref
|
|
23
39
|
) {
|
|
24
40
|
const listRef = useRef<FlashList<SimpleImageSliderItem>>(null);
|
|
@@ -67,6 +83,8 @@ const SimpleImageSlider = forwardRef<FlashList<SimpleImageSliderItem>, SimpleIma
|
|
|
67
83
|
showPageCounter={false}
|
|
68
84
|
indexOverride={currentIndex}
|
|
69
85
|
onViewableItemChange={onFullScreenViewableItemChange}
|
|
86
|
+
renderDescription={renderFullScreenDescription}
|
|
87
|
+
CloseButtonIcon={FullScreenCloseButtonIcon}
|
|
70
88
|
/>
|
|
71
89
|
) : null}
|
|
72
90
|
</>
|