@xhsreds/reds-rn-next 0.10.1-beta202511041914 → 0.10.1-beta202511051512
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/coverage/.tmp/coverage-1.json +1 -1
- package/coverage/.tmp/coverage-10.json +1 -1
- package/coverage/.tmp/coverage-11.json +1 -1
- package/coverage/.tmp/coverage-12.json +1 -1
- package/coverage/.tmp/coverage-14.json +1 -1
- package/coverage/.tmp/coverage-15.json +1 -1
- package/coverage/.tmp/coverage-16.json +1 -1
- package/coverage/.tmp/coverage-17.json +1 -1
- package/coverage/.tmp/coverage-18.json +1 -1
- package/coverage/.tmp/coverage-19.json +1 -1
- package/coverage/.tmp/coverage-2.json +1 -1
- package/coverage/.tmp/coverage-20.json +1 -1
- package/coverage/.tmp/coverage-21.json +1 -1
- package/coverage/.tmp/coverage-22.json +1 -1
- package/coverage/.tmp/coverage-23.json +1 -1
- package/coverage/.tmp/coverage-29.json +1 -1
- package/coverage/.tmp/coverage-3.json +1 -1
- package/coverage/.tmp/coverage-30.json +1 -1
- package/coverage/.tmp/coverage-32.json +1 -1
- package/coverage/.tmp/coverage-33.json +1 -1
- package/coverage/.tmp/coverage-34.json +1 -1
- package/coverage/.tmp/coverage-35.json +1 -1
- package/coverage/.tmp/coverage-36.json +1 -1
- package/coverage/.tmp/coverage-37.json +1 -1
- package/coverage/.tmp/coverage-38.json +1 -1
- package/coverage/.tmp/coverage-39.json +1 -1
- package/coverage/.tmp/coverage-4.json +1 -1
- package/coverage/.tmp/coverage-40.json +1 -1
- package/coverage/.tmp/coverage-41.json +1 -1
- package/coverage/.tmp/coverage-42.json +1 -1
- package/coverage/.tmp/coverage-5.json +1 -1
- package/coverage/.tmp/coverage-6.json +1 -1
- package/coverage/.tmp/coverage-7.json +1 -1
- package/coverage/.tmp/coverage-8.json +1 -1
- package/coverage/.tmp/coverage-9.json +1 -1
- package/lib/cjs/components/Slider/Slider.js +26 -22
- package/lib/cjs/components/Slider/Slider.js.map +1 -1
- package/lib/esm/components/Slider/Slider.js +28 -24
- package/lib/esm/components/Slider/Slider.js.map +1 -1
- package/package.json +2 -2
- package/src/components/Slider/Slider.tsx +15 -21
|
@@ -22,18 +22,14 @@ var Slider = function Slider(_ref) {
|
|
|
22
22
|
_ref$dotStyle = _ref.dotStyle,
|
|
23
23
|
dotStyle = _ref$dotStyle === void 0 ? {} : _ref$dotStyle;
|
|
24
24
|
pvCount_useUnmountedProcess.default("Slider");
|
|
25
|
-
var _useState = React.useState(reactNative.
|
|
25
|
+
var _useState = React.useState(reactNative.Dimensions.get("window").width * 0.8),
|
|
26
26
|
_useState2 = _rollupPluginBabelHelpers._slicedToArray(_useState, 2),
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
var _useState3 = React.useState(
|
|
27
|
+
sliderWidth = _useState2[0],
|
|
28
|
+
setSliderWidth = _useState2[1];
|
|
29
|
+
var _useState3 = React.useState(initalValue),
|
|
30
30
|
_useState4 = _rollupPluginBabelHelpers._slicedToArray(_useState3, 2),
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
var _useState5 = React.useState(initalValue),
|
|
34
|
-
_useState6 = _rollupPluginBabelHelpers._slicedToArray(_useState5, 2),
|
|
35
|
-
value = _useState6[0],
|
|
36
|
-
setValue = _useState6[1];
|
|
31
|
+
value = _useState4[0],
|
|
32
|
+
setValue = _useState4[1];
|
|
37
33
|
if (max < min) {
|
|
38
34
|
return;
|
|
39
35
|
}
|
|
@@ -46,7 +42,6 @@ var Slider = function Slider(_ref) {
|
|
|
46
42
|
setSliderWidth(reactNative.Dimensions.get("window").width * 0.8);
|
|
47
43
|
};
|
|
48
44
|
var subscription = reactNative.Dimensions.addEventListener("change", handleOrientationChange);
|
|
49
|
-
createPanResponder();
|
|
50
45
|
return function () {
|
|
51
46
|
subscription.remove();
|
|
52
47
|
};
|
|
@@ -62,22 +57,26 @@ var Slider = function Slider(_ref) {
|
|
|
62
57
|
var handleLayout = function handleLayout(event) {
|
|
63
58
|
setSliderWidth(event.nativeEvent.layout.width);
|
|
64
59
|
};
|
|
65
|
-
var
|
|
66
|
-
|
|
60
|
+
var panResponder = React.useMemo(function () {
|
|
61
|
+
return reactNative.PanResponder.create({
|
|
67
62
|
onStartShouldSetPanResponder: function onStartShouldSetPanResponder() {
|
|
68
63
|
return true;
|
|
69
64
|
},
|
|
70
65
|
onMoveShouldSetPanResponder: function onMoveShouldSetPanResponder() {
|
|
71
66
|
return true;
|
|
72
67
|
},
|
|
73
|
-
onPanResponderGrant: function onPanResponderGrant() {
|
|
74
|
-
|
|
68
|
+
onPanResponderGrant: function onPanResponderGrant() {
|
|
69
|
+
return true;
|
|
70
|
+
},
|
|
71
|
+
onPanResponderRelease: function onPanResponderRelease() {
|
|
72
|
+
return true;
|
|
73
|
+
},
|
|
75
74
|
onPanResponderTerminate: function onPanResponderTerminate() {},
|
|
76
75
|
onPanResponderMove: function onPanResponderMove(evt, gestureState) {
|
|
77
76
|
hanleValueUpdate(gestureState);
|
|
78
77
|
}
|
|
79
|
-
})
|
|
80
|
-
};
|
|
78
|
+
});
|
|
79
|
+
}, []);
|
|
81
80
|
var styles2 = reactNative.StyleSheet.create({
|
|
82
81
|
sliderContainer: {
|
|
83
82
|
flexDirection: "row",
|
|
@@ -113,9 +112,7 @@ var Slider = function Slider(_ref) {
|
|
|
113
112
|
elevation: 2
|
|
114
113
|
}
|
|
115
114
|
});
|
|
116
|
-
return /* @__PURE__ */React.createElement(reactNative.
|
|
117
|
-
onPress: function onPress(e) {}
|
|
118
|
-
}, /* @__PURE__ */React.createElement(reactNative.View, {
|
|
115
|
+
return /* @__PURE__ */React.createElement(reactNative.View, {
|
|
119
116
|
style: styles2.sliderContainer,
|
|
120
117
|
onLayout: handleLayout
|
|
121
118
|
}, /* @__PURE__ */React.createElement(reactNative.View, {
|
|
@@ -124,13 +121,20 @@ var Slider = function Slider(_ref) {
|
|
|
124
121
|
style: [styles2.coloredTrack, {
|
|
125
122
|
width: animatedValue
|
|
126
123
|
}]
|
|
127
|
-
}), /* @__PURE__ */React.createElement(reactNative.Animated.View, _rollupPluginBabelHelpers._objectSpread2({
|
|
124
|
+
}), /* @__PURE__ */React.createElement(reactNative.Animated.View, _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({
|
|
128
125
|
style: [styles2.thumbButton, {
|
|
129
126
|
transform: [{
|
|
130
127
|
translateX: animatedValue
|
|
131
128
|
}]
|
|
132
129
|
}, dotStyle]
|
|
133
|
-
}, panResponder.panHandlers)
|
|
130
|
+
}, panResponder.panHandlers), {}, {
|
|
131
|
+
hitSlop: {
|
|
132
|
+
top: 20,
|
|
133
|
+
bottom: 20,
|
|
134
|
+
left: 20,
|
|
135
|
+
right: 20
|
|
136
|
+
}
|
|
137
|
+
}))));
|
|
134
138
|
};
|
|
135
139
|
Slider.defaultProps = components_Slider_interface_index.SliderDefaultProps;
|
|
136
140
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.js","sources":["../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, useMemo, useCallback } from \"react\";\nimport {\n View,\n TouchableWithoutFeedback,\n Animated,\n StyleSheet,\n Dimensions,\n GestureResponderEvent,\n PanResponder,\n LayoutChangeEvent,\n PanResponderGestureState,\n} from \"react-native\";\n\nimport { RedsSlider, SliderDefaultProps } from \"./interface/index\";\nimport styles from \"./styles\";\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\n\nconst Slider = ({ defaultValue, min = 0, max = 100, initalValue = 0, onValueChange, dotStyle = {} }: RedsSlider) => {\n useMounted(\"Slider\");\n const [
|
|
1
|
+
{"version":3,"file":"Slider.js","sources":["../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, useMemo, useCallback } from \"react\";\nimport {\n View,\n TouchableWithoutFeedback,\n Animated,\n StyleSheet,\n Dimensions,\n GestureResponderEvent,\n PanResponder,\n LayoutChangeEvent,\n PanResponderGestureState,\n} from \"react-native\";\n\nimport { RedsSlider, SliderDefaultProps } from \"./interface/index\";\nimport styles from \"./styles\";\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\n\nconst Slider = ({ defaultValue, min = 0, max = 100, initalValue = 0, onValueChange, dotStyle = {} }: RedsSlider) => {\n useMounted(\"Slider\");\n const [sliderWidth, setSliderWidth] = useState(Dimensions.get(\"window\").width * 0.8);\n const [value, setValue] = useState(initalValue);\n\n if (max < min) {\n return;\n }\n if (value < min || value > max) {\n return;\n }\n\n const thumbPosition = (value / (max - min)) * sliderWidth;\n const step = 1;\n const animatedValue = useRef(new Animated.Value((initalValue * sliderWidth) / (max - min))).current;\n useEffect(() => {\n const handleOrientationChange = () => {\n setSliderWidth(Dimensions.get(\"window\").width * 0.8);\n };\n\n const subscription = Dimensions.addEventListener(\"change\", handleOrientationChange);\n return () => {\n subscription.remove();\n //Dimensions.removeEventListener(\"change\", handleOrientationChange);\n };\n }, []);\n\n // 可以根据需要调整的滑块高度\n const hanleValueUpdate = (gestureState: PanResponderGestureState) => {\n const currentValue = Math.max(min, Math.min(max, (gestureState.dx / sliderWidth) * (max - min) + initalValue));\n\n setValue(currentValue);\n animatedValue.setValue((currentValue * sliderWidth) / (max - min));\n if (onValueChange) {\n onValueChange(currentValue);\n }\n };\n\n const handleLayout = (event: LayoutChangeEvent) => {\n setSliderWidth(event.nativeEvent.layout.width);\n };\n\n const panResponder = useMemo(\n () =>\n PanResponder.create({\n onStartShouldSetPanResponder: () => true,\n onMoveShouldSetPanResponder: () => true,\n onPanResponderGrant: () => true,\n onPanResponderRelease: () => true,\n onPanResponderTerminate: () => {},\n onPanResponderMove: (evt, gestureState) => {\n hanleValueUpdate(gestureState);\n },\n }),\n [],\n );\n\n const styles = StyleSheet.create({\n sliderContainer: {\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n trackContainer: {\n width: \"80%\",\n height: 4,\n backgroundColor: \"rgba(48, 48, 52, 0.20)\",\n borderRadius: 2,\n },\n coloredTrack: {\n height: 4,\n backgroundColor: \"#FF2442\",\n borderRadius: 2,\n },\n thumbButton: {\n width: 16,\n height: 16,\n position: \"absolute\",\n top: -8,\n borderRadius: 10,\n backgroundColor: \"#FFF\",\n shadowColor: \"rgba(0, 0, 0, 0.20)\",\n shadowOffset: { width: 0, height: 1 },\n shadowOpacity: 1,\n shadowRadius: 4,\n //Android\n elevation: 2,\n },\n });\n\n return (\n <View style={styles.sliderContainer} onLayout={handleLayout}>\n <View style={styles.trackContainer}>\n <Animated.View style={[styles.coloredTrack, { width: animatedValue }]} />\n <Animated.View\n style={[styles.thumbButton, { transform: [{ translateX: animatedValue }] }, dotStyle]}\n {...panResponder.panHandlers}\n hitSlop={{ top: 20, bottom: 20, left: 20, right: 20 }}\n />\n </View>\n </View>\n );\n};\n\nSlider.defaultProps = SliderDefaultProps;\nexport default Slider;\n"],"names":["Slider","_ref","defaultValue","_ref$min","min","_ref$max","max","_ref$initalValue","initalValue","onValueChange","_ref$dotStyle","dotStyle","useMounted","_useState","useState","Dimensions","get","width","_useState2","_slicedToArray","sliderWidth","setSliderWidth","_useState3","_useState4","value","setValue","animatedValue","useRef","Animated","Value","current","useEffect","handleOrientationChange","subscription","addEventListener","remove","hanleValueUpdate","gestureState","currentValue","Math","dx","handleLayout","event","nativeEvent","layout","panResponder","useMemo","PanResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderGrant","onPanResponderRelease","onPanResponderTerminate","onPanResponderMove","evt","styles","StyleSheet","sliderContainer","flexDirection","alignItems","justifyContent","trackContainer","height","backgroundColor","borderRadius","coloredTrack","thumbButton","position","top","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","React","createElement","View","style","onLayout","_objectSpread","transform","translateX","panHandlers","hitSlop","bottom","left","right","defaultProps","SliderDefaultProps"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { _ as _slicedToArray, a as _objectSpread2 } from '../../_chunks/CAkwE9ZD.js';
|
|
2
|
-
import React, { useState, useRef, useEffect } from 'react';
|
|
3
|
-
import {
|
|
2
|
+
import React, { useState, useRef, useEffect, useMemo } from 'react';
|
|
3
|
+
import { Dimensions, Animated, PanResponder, StyleSheet, View } from 'react-native';
|
|
4
4
|
import { S as SliderDefaultProps } from '../../_chunks/BwgGhxV7.js';
|
|
5
5
|
import useMounted from '../../pvCount/useUnmountedProcess.js';
|
|
6
6
|
import '@xhs/reds-apm/src/index.native';
|
|
@@ -18,18 +18,14 @@ var Slider = function Slider(_ref) {
|
|
|
18
18
|
_ref$dotStyle = _ref.dotStyle,
|
|
19
19
|
dotStyle = _ref$dotStyle === void 0 ? {} : _ref$dotStyle;
|
|
20
20
|
useMounted("Slider");
|
|
21
|
-
var _useState = useState(
|
|
21
|
+
var _useState = useState(Dimensions.get("window").width * 0.8),
|
|
22
22
|
_useState2 = _slicedToArray(_useState, 2),
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
var _useState3 = useState(
|
|
23
|
+
sliderWidth = _useState2[0],
|
|
24
|
+
setSliderWidth = _useState2[1];
|
|
25
|
+
var _useState3 = useState(initalValue),
|
|
26
26
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
var _useState5 = useState(initalValue),
|
|
30
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
31
|
-
value = _useState6[0],
|
|
32
|
-
setValue = _useState6[1];
|
|
27
|
+
value = _useState4[0],
|
|
28
|
+
setValue = _useState4[1];
|
|
33
29
|
if (max < min) {
|
|
34
30
|
return;
|
|
35
31
|
}
|
|
@@ -42,7 +38,6 @@ var Slider = function Slider(_ref) {
|
|
|
42
38
|
setSliderWidth(Dimensions.get("window").width * 0.8);
|
|
43
39
|
};
|
|
44
40
|
var subscription = Dimensions.addEventListener("change", handleOrientationChange);
|
|
45
|
-
createPanResponder();
|
|
46
41
|
return function () {
|
|
47
42
|
subscription.remove();
|
|
48
43
|
};
|
|
@@ -58,22 +53,26 @@ var Slider = function Slider(_ref) {
|
|
|
58
53
|
var handleLayout = function handleLayout(event) {
|
|
59
54
|
setSliderWidth(event.nativeEvent.layout.width);
|
|
60
55
|
};
|
|
61
|
-
var
|
|
62
|
-
|
|
56
|
+
var panResponder = useMemo(function () {
|
|
57
|
+
return PanResponder.create({
|
|
63
58
|
onStartShouldSetPanResponder: function onStartShouldSetPanResponder() {
|
|
64
59
|
return true;
|
|
65
60
|
},
|
|
66
61
|
onMoveShouldSetPanResponder: function onMoveShouldSetPanResponder() {
|
|
67
62
|
return true;
|
|
68
63
|
},
|
|
69
|
-
onPanResponderGrant: function onPanResponderGrant() {
|
|
70
|
-
|
|
64
|
+
onPanResponderGrant: function onPanResponderGrant() {
|
|
65
|
+
return true;
|
|
66
|
+
},
|
|
67
|
+
onPanResponderRelease: function onPanResponderRelease() {
|
|
68
|
+
return true;
|
|
69
|
+
},
|
|
71
70
|
onPanResponderTerminate: function onPanResponderTerminate() {},
|
|
72
71
|
onPanResponderMove: function onPanResponderMove(evt, gestureState) {
|
|
73
72
|
hanleValueUpdate(gestureState);
|
|
74
73
|
}
|
|
75
|
-
})
|
|
76
|
-
};
|
|
74
|
+
});
|
|
75
|
+
}, []);
|
|
77
76
|
var styles2 = StyleSheet.create({
|
|
78
77
|
sliderContainer: {
|
|
79
78
|
flexDirection: "row",
|
|
@@ -109,9 +108,7 @@ var Slider = function Slider(_ref) {
|
|
|
109
108
|
elevation: 2
|
|
110
109
|
}
|
|
111
110
|
});
|
|
112
|
-
return /* @__PURE__ */React.createElement(
|
|
113
|
-
onPress: function onPress(e) {}
|
|
114
|
-
}, /* @__PURE__ */React.createElement(View, {
|
|
111
|
+
return /* @__PURE__ */React.createElement(View, {
|
|
115
112
|
style: styles2.sliderContainer,
|
|
116
113
|
onLayout: handleLayout
|
|
117
114
|
}, /* @__PURE__ */React.createElement(View, {
|
|
@@ -120,13 +117,20 @@ var Slider = function Slider(_ref) {
|
|
|
120
117
|
style: [styles2.coloredTrack, {
|
|
121
118
|
width: animatedValue
|
|
122
119
|
}]
|
|
123
|
-
}), /* @__PURE__ */React.createElement(Animated.View, _objectSpread2({
|
|
120
|
+
}), /* @__PURE__ */React.createElement(Animated.View, _objectSpread2(_objectSpread2({
|
|
124
121
|
style: [styles2.thumbButton, {
|
|
125
122
|
transform: [{
|
|
126
123
|
translateX: animatedValue
|
|
127
124
|
}]
|
|
128
125
|
}, dotStyle]
|
|
129
|
-
}, panResponder.panHandlers)
|
|
126
|
+
}, panResponder.panHandlers), {}, {
|
|
127
|
+
hitSlop: {
|
|
128
|
+
top: 20,
|
|
129
|
+
bottom: 20,
|
|
130
|
+
left: 20,
|
|
131
|
+
right: 20
|
|
132
|
+
}
|
|
133
|
+
}))));
|
|
130
134
|
};
|
|
131
135
|
Slider.defaultProps = SliderDefaultProps;
|
|
132
136
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.js","sources":["../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, useMemo, useCallback } from \"react\";\nimport {\n View,\n TouchableWithoutFeedback,\n Animated,\n StyleSheet,\n Dimensions,\n GestureResponderEvent,\n PanResponder,\n LayoutChangeEvent,\n PanResponderGestureState,\n} from \"react-native\";\n\nimport { RedsSlider, SliderDefaultProps } from \"./interface/index\";\nimport styles from \"./styles\";\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\n\nconst Slider = ({ defaultValue, min = 0, max = 100, initalValue = 0, onValueChange, dotStyle = {} }: RedsSlider) => {\n useMounted(\"Slider\");\n const [
|
|
1
|
+
{"version":3,"file":"Slider.js","sources":["../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, useMemo, useCallback } from \"react\";\nimport {\n View,\n TouchableWithoutFeedback,\n Animated,\n StyleSheet,\n Dimensions,\n GestureResponderEvent,\n PanResponder,\n LayoutChangeEvent,\n PanResponderGestureState,\n} from \"react-native\";\n\nimport { RedsSlider, SliderDefaultProps } from \"./interface/index\";\nimport styles from \"./styles\";\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\n\nconst Slider = ({ defaultValue, min = 0, max = 100, initalValue = 0, onValueChange, dotStyle = {} }: RedsSlider) => {\n useMounted(\"Slider\");\n const [sliderWidth, setSliderWidth] = useState(Dimensions.get(\"window\").width * 0.8);\n const [value, setValue] = useState(initalValue);\n\n if (max < min) {\n return;\n }\n if (value < min || value > max) {\n return;\n }\n\n const thumbPosition = (value / (max - min)) * sliderWidth;\n const step = 1;\n const animatedValue = useRef(new Animated.Value((initalValue * sliderWidth) / (max - min))).current;\n useEffect(() => {\n const handleOrientationChange = () => {\n setSliderWidth(Dimensions.get(\"window\").width * 0.8);\n };\n\n const subscription = Dimensions.addEventListener(\"change\", handleOrientationChange);\n return () => {\n subscription.remove();\n //Dimensions.removeEventListener(\"change\", handleOrientationChange);\n };\n }, []);\n\n // 可以根据需要调整的滑块高度\n const hanleValueUpdate = (gestureState: PanResponderGestureState) => {\n const currentValue = Math.max(min, Math.min(max, (gestureState.dx / sliderWidth) * (max - min) + initalValue));\n\n setValue(currentValue);\n animatedValue.setValue((currentValue * sliderWidth) / (max - min));\n if (onValueChange) {\n onValueChange(currentValue);\n }\n };\n\n const handleLayout = (event: LayoutChangeEvent) => {\n setSliderWidth(event.nativeEvent.layout.width);\n };\n\n const panResponder = useMemo(\n () =>\n PanResponder.create({\n onStartShouldSetPanResponder: () => true,\n onMoveShouldSetPanResponder: () => true,\n onPanResponderGrant: () => true,\n onPanResponderRelease: () => true,\n onPanResponderTerminate: () => {},\n onPanResponderMove: (evt, gestureState) => {\n hanleValueUpdate(gestureState);\n },\n }),\n [],\n );\n\n const styles = StyleSheet.create({\n sliderContainer: {\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n trackContainer: {\n width: \"80%\",\n height: 4,\n backgroundColor: \"rgba(48, 48, 52, 0.20)\",\n borderRadius: 2,\n },\n coloredTrack: {\n height: 4,\n backgroundColor: \"#FF2442\",\n borderRadius: 2,\n },\n thumbButton: {\n width: 16,\n height: 16,\n position: \"absolute\",\n top: -8,\n borderRadius: 10,\n backgroundColor: \"#FFF\",\n shadowColor: \"rgba(0, 0, 0, 0.20)\",\n shadowOffset: { width: 0, height: 1 },\n shadowOpacity: 1,\n shadowRadius: 4,\n //Android\n elevation: 2,\n },\n });\n\n return (\n <View style={styles.sliderContainer} onLayout={handleLayout}>\n <View style={styles.trackContainer}>\n <Animated.View style={[styles.coloredTrack, { width: animatedValue }]} />\n <Animated.View\n style={[styles.thumbButton, { transform: [{ translateX: animatedValue }] }, dotStyle]}\n {...panResponder.panHandlers}\n hitSlop={{ top: 20, bottom: 20, left: 20, right: 20 }}\n />\n </View>\n </View>\n );\n};\n\nSlider.defaultProps = SliderDefaultProps;\nexport default Slider;\n"],"names":["Slider","_ref","defaultValue","_ref$min","min","_ref$max","max","_ref$initalValue","initalValue","onValueChange","_ref$dotStyle","dotStyle","useMounted","_useState","useState","Dimensions","get","width","_useState2","_slicedToArray","sliderWidth","setSliderWidth","_useState3","_useState4","value","setValue","animatedValue","useRef","Animated","Value","current","useEffect","handleOrientationChange","subscription","addEventListener","remove","hanleValueUpdate","gestureState","currentValue","Math","dx","handleLayout","event","nativeEvent","layout","panResponder","useMemo","PanResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderGrant","onPanResponderRelease","onPanResponderTerminate","onPanResponderMove","evt","styles","StyleSheet","sliderContainer","flexDirection","alignItems","justifyContent","trackContainer","height","backgroundColor","borderRadius","coloredTrack","thumbButton","position","top","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","React","createElement","View","style","onLayout","_objectSpread","transform","translateX","panHandlers","hitSlop","bottom","left","right","defaultProps","SliderDefaultProps"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xhsreds/reds-rn-next",
|
|
3
|
-
"version": "0.10.1-
|
|
3
|
+
"version": "0.10.1-beta202511051512",
|
|
4
4
|
"author": "贾斌(呀哈) <jiabin@xiaohongshu.com>",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"dependencies": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"react-native-fs": "2.20.0",
|
|
27
27
|
"react-native-svg": "13.14.0",
|
|
28
28
|
"@xhs/react-native-harmony": "*",
|
|
29
|
-
"@xhsreds/reds-token-next": "0.10.1-
|
|
29
|
+
"@xhsreds/reds-token-next": "0.10.1-beta202511051512"
|
|
30
30
|
},
|
|
31
31
|
"peerDependenciesMeta": {
|
|
32
32
|
"ozone-schema-web": {
|
|
@@ -17,7 +17,6 @@ import useMounted from "../../pvCount/useUnmountedProcess";
|
|
|
17
17
|
|
|
18
18
|
const Slider = ({ defaultValue, min = 0, max = 100, initalValue = 0, onValueChange, dotStyle = {} }: RedsSlider) => {
|
|
19
19
|
useMounted("Slider");
|
|
20
|
-
const [panResponder, setPanResponder] = useState(PanResponder.create({}));
|
|
21
20
|
const [sliderWidth, setSliderWidth] = useState(Dimensions.get("window").width * 0.8);
|
|
22
21
|
const [value, setValue] = useState(initalValue);
|
|
23
22
|
|
|
@@ -37,7 +36,6 @@ const Slider = ({ defaultValue, min = 0, max = 100, initalValue = 0, onValueChan
|
|
|
37
36
|
};
|
|
38
37
|
|
|
39
38
|
const subscription = Dimensions.addEventListener("change", handleOrientationChange);
|
|
40
|
-
createPanResponder();
|
|
41
39
|
return () => {
|
|
42
40
|
subscription.remove();
|
|
43
41
|
//Dimensions.removeEventListener("change", handleOrientationChange);
|
|
@@ -59,20 +57,20 @@ const Slider = ({ defaultValue, min = 0, max = 100, initalValue = 0, onValueChan
|
|
|
59
57
|
setSliderWidth(event.nativeEvent.layout.width);
|
|
60
58
|
};
|
|
61
59
|
|
|
62
|
-
const
|
|
63
|
-
|
|
60
|
+
const panResponder = useMemo(
|
|
61
|
+
() =>
|
|
64
62
|
PanResponder.create({
|
|
65
63
|
onStartShouldSetPanResponder: () => true,
|
|
66
64
|
onMoveShouldSetPanResponder: () => true,
|
|
67
|
-
onPanResponderGrant: () =>
|
|
68
|
-
onPanResponderRelease: () =>
|
|
65
|
+
onPanResponderGrant: () => true,
|
|
66
|
+
onPanResponderRelease: () => true,
|
|
69
67
|
onPanResponderTerminate: () => {},
|
|
70
68
|
onPanResponderMove: (evt, gestureState) => {
|
|
71
69
|
hanleValueUpdate(gestureState);
|
|
72
70
|
},
|
|
73
71
|
}),
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
[],
|
|
73
|
+
);
|
|
76
74
|
|
|
77
75
|
const styles = StyleSheet.create({
|
|
78
76
|
sliderContainer: {
|
|
@@ -107,21 +105,17 @@ const Slider = ({ defaultValue, min = 0, max = 100, initalValue = 0, onValueChan
|
|
|
107
105
|
},
|
|
108
106
|
});
|
|
109
107
|
|
|
110
|
-
//<View style={[styles.track, { width: sliderWidth }]}>
|
|
111
|
-
//<View style={[styles.thumb, { left: thumbPosition }]} {...panResponder.panHandlers} />
|
|
112
|
-
//</View>
|
|
113
108
|
return (
|
|
114
|
-
<
|
|
115
|
-
<View style={styles.
|
|
116
|
-
<View style={styles.
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
</View>
|
|
109
|
+
<View style={styles.sliderContainer} onLayout={handleLayout}>
|
|
110
|
+
<View style={styles.trackContainer}>
|
|
111
|
+
<Animated.View style={[styles.coloredTrack, { width: animatedValue }]} />
|
|
112
|
+
<Animated.View
|
|
113
|
+
style={[styles.thumbButton, { transform: [{ translateX: animatedValue }] }, dotStyle]}
|
|
114
|
+
{...panResponder.panHandlers}
|
|
115
|
+
hitSlop={{ top: 20, bottom: 20, left: 20, right: 20 }}
|
|
116
|
+
/>
|
|
123
117
|
</View>
|
|
124
|
-
</
|
|
118
|
+
</View>
|
|
125
119
|
);
|
|
126
120
|
};
|
|
127
121
|
|