@evlop/native-components 1.0.90 → 1.0.91
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Swiper/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Swiper/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA6F,MAAM,OAAO,CAAC;AAKlH,QAAA,MAAM,MAAM,iGA6EV,CAAA;AAEF,eAAe,MAAM,CAAC"}
|
package/dist/src/Swiper/index.js
CHANGED
|
@@ -37,6 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
38
|
};
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
const lodash_1 = require("lodash");
|
|
40
41
|
const react_1 = __importStar(require("react"));
|
|
41
42
|
const react_native_1 = require("react-native");
|
|
42
43
|
const DashPagination_1 = __importDefault(require("./DashPagination"));
|
|
@@ -45,13 +46,22 @@ const Swiper = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
45
46
|
var { data, paginationType = "dash", paginationStyle, renderItem: _renderItem, itemWidth: _itemWidth } = _a, props = __rest(_a, ["data", "paginationType", "paginationStyle", "renderItem", "itemWidth"]);
|
|
46
47
|
const scrollViewRef = (0, react_1.useRef)();
|
|
47
48
|
const { width } = (0, react_native_1.useWindowDimensions)();
|
|
49
|
+
const [containerWidth, setContainerWidth] = (0, react_1.useState)(width);
|
|
48
50
|
const itemWidth = _itemWidth || width;
|
|
49
51
|
const scrollPosition = (0, react_1.useRef)(new react_native_1.Animated.Value(0)).current;
|
|
50
|
-
const
|
|
52
|
+
const activeIndexAnimated = scrollPosition.interpolate({
|
|
51
53
|
inputRange: [0, itemWidth],
|
|
52
54
|
outputRange: [0, 1],
|
|
53
55
|
extrapolate: 'extend'
|
|
54
56
|
});
|
|
57
|
+
const [activeIndexValue, setActiveIndexValue] = (0, react_1.useState)(0);
|
|
58
|
+
(0, react_1.useEffect)(() => {
|
|
59
|
+
const listenerId = scrollPosition.addListener(({ value }) => setActiveIndexValue(Math.round(value / itemWidth)));
|
|
60
|
+
return () => scrollPosition.removeListener(listenerId);
|
|
61
|
+
}, [scrollPosition, setActiveIndexValue, itemWidth]);
|
|
62
|
+
const onLayoutUpdate = (0, react_1.useCallback)((event) => {
|
|
63
|
+
setContainerWidth(event.nativeEvent.layout.width);
|
|
64
|
+
}, [setContainerWidth]);
|
|
55
65
|
const onScroll = (0, react_1.useMemo)(() => react_native_1.Animated.event([
|
|
56
66
|
{
|
|
57
67
|
nativeEvent: {
|
|
@@ -61,20 +71,26 @@ const Swiper = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
61
71
|
}
|
|
62
72
|
}
|
|
63
73
|
]), [scrollPosition]);
|
|
64
|
-
const renderItem = (0, react_1.
|
|
74
|
+
const renderItem = (0, react_1.useCallback)(({ item, index }) => {
|
|
75
|
+
const visibleItemsCount = Math.round(containerWidth / itemWidth);
|
|
76
|
+
const key = String(item.key || item.id || index);
|
|
77
|
+
// if this item is out of next visible screen, render blank view
|
|
78
|
+
if (index < activeIndexValue - visibleItemsCount || index > activeIndexValue + visibleItemsCount)
|
|
79
|
+
return react_1.default.createElement(react_native_1.View, { key: key, style: { width: itemWidth } });
|
|
65
80
|
if (_renderItem)
|
|
66
|
-
return
|
|
67
|
-
return
|
|
68
|
-
}, [_renderItem, itemWidth]);
|
|
81
|
+
return react_1.default.createElement(react_native_1.View, { key: key, style: { width: itemWidth } }, _renderItem({ item, index }));
|
|
82
|
+
return react_1.default.createElement(react_native_1.Text, { key: key, style: { width: itemWidth, height: 200, fontSize: 26, alignItems: 'center', color: '#000', backgroundColor: 'red', justifyContent: 'center' } }, JSON.stringify(item));
|
|
83
|
+
}, [_renderItem, itemWidth, activeIndexValue, containerWidth]);
|
|
69
84
|
const scrollToIndex = (0, react_1.useCallback)((index) => {
|
|
70
85
|
scrollViewRef.current.scrollTo({ animated: true, x: index * itemWidth, y: 0 });
|
|
71
86
|
}, [scrollViewRef, itemWidth]);
|
|
72
87
|
(0, react_1.useImperativeHandle)(ref, () => ({ scrollToIndex }));
|
|
73
88
|
const Pagination = (paginationType === 'dot' && DotPagination_1.default) || DashPagination_1.default;
|
|
74
|
-
|
|
75
|
-
|
|
89
|
+
const renderedData = (0, react_1.useMemo)(() => (0, lodash_1.map)(data, (item, index) => renderItem({ item, index })), [data, renderItem]);
|
|
90
|
+
return (react_1.default.createElement(react_native_1.View, { onLayout: onLayoutUpdate },
|
|
91
|
+
react_1.default.createElement(react_native_1.Animated.ScrollView, Object.assign({}, props, { ref: scrollViewRef, pagingEnabled: true, horizontal: true, showsHorizontalScrollIndicator: false, showsVerticalScrollIndicator: false, onScroll: onScroll, bounces: false }), renderedData),
|
|
76
92
|
react_1.default.createElement(react_native_1.View, { style: [{ position: 'absolute', bottom: 3, left: 0, right: 0, zIndex: 5 }, paginationStyle] },
|
|
77
|
-
react_1.default.createElement(Pagination, { onChangeIndex: scrollToIndex, length: data.length, activeIndex:
|
|
93
|
+
react_1.default.createElement(Pagination, { onChangeIndex: scrollToIndex, length: data.length, activeIndex: activeIndexAnimated }))));
|
|
78
94
|
});
|
|
79
95
|
exports.default = Swiper;
|
|
80
96
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Swiper/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAwG;AACxG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Swiper/index.tsx"],"names":[],"mappings":"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"}
|