@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.
Files changed (41) hide show
  1. package/coverage/.tmp/coverage-1.json +1 -1
  2. package/coverage/.tmp/coverage-10.json +1 -1
  3. package/coverage/.tmp/coverage-11.json +1 -1
  4. package/coverage/.tmp/coverage-12.json +1 -1
  5. package/coverage/.tmp/coverage-14.json +1 -1
  6. package/coverage/.tmp/coverage-15.json +1 -1
  7. package/coverage/.tmp/coverage-16.json +1 -1
  8. package/coverage/.tmp/coverage-17.json +1 -1
  9. package/coverage/.tmp/coverage-18.json +1 -1
  10. package/coverage/.tmp/coverage-19.json +1 -1
  11. package/coverage/.tmp/coverage-2.json +1 -1
  12. package/coverage/.tmp/coverage-20.json +1 -1
  13. package/coverage/.tmp/coverage-21.json +1 -1
  14. package/coverage/.tmp/coverage-22.json +1 -1
  15. package/coverage/.tmp/coverage-23.json +1 -1
  16. package/coverage/.tmp/coverage-29.json +1 -1
  17. package/coverage/.tmp/coverage-3.json +1 -1
  18. package/coverage/.tmp/coverage-30.json +1 -1
  19. package/coverage/.tmp/coverage-32.json +1 -1
  20. package/coverage/.tmp/coverage-33.json +1 -1
  21. package/coverage/.tmp/coverage-34.json +1 -1
  22. package/coverage/.tmp/coverage-35.json +1 -1
  23. package/coverage/.tmp/coverage-36.json +1 -1
  24. package/coverage/.tmp/coverage-37.json +1 -1
  25. package/coverage/.tmp/coverage-38.json +1 -1
  26. package/coverage/.tmp/coverage-39.json +1 -1
  27. package/coverage/.tmp/coverage-4.json +1 -1
  28. package/coverage/.tmp/coverage-40.json +1 -1
  29. package/coverage/.tmp/coverage-41.json +1 -1
  30. package/coverage/.tmp/coverage-42.json +1 -1
  31. package/coverage/.tmp/coverage-5.json +1 -1
  32. package/coverage/.tmp/coverage-6.json +1 -1
  33. package/coverage/.tmp/coverage-7.json +1 -1
  34. package/coverage/.tmp/coverage-8.json +1 -1
  35. package/coverage/.tmp/coverage-9.json +1 -1
  36. package/lib/cjs/components/Slider/Slider.js +26 -22
  37. package/lib/cjs/components/Slider/Slider.js.map +1 -1
  38. package/lib/esm/components/Slider/Slider.js +28 -24
  39. package/lib/esm/components/Slider/Slider.js.map +1 -1
  40. package/package.json +2 -2
  41. 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.PanResponder.create({})),
25
+ var _useState = React.useState(reactNative.Dimensions.get("window").width * 0.8),
26
26
  _useState2 = _rollupPluginBabelHelpers._slicedToArray(_useState, 2),
27
- panResponder = _useState2[0],
28
- setPanResponder = _useState2[1];
29
- var _useState3 = React.useState(reactNative.Dimensions.get("window").width * 0.8),
27
+ sliderWidth = _useState2[0],
28
+ setSliderWidth = _useState2[1];
29
+ var _useState3 = React.useState(initalValue),
30
30
  _useState4 = _rollupPluginBabelHelpers._slicedToArray(_useState3, 2),
31
- sliderWidth = _useState4[0],
32
- setSliderWidth = _useState4[1];
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 createPanResponder = function createPanResponder() {
66
- setPanResponder(reactNative.PanResponder.create({
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
- onPanResponderRelease: function onPanResponderRelease() {},
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.TouchableWithoutFeedback, {
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 [panResponder, setPanResponder] = useState(PanResponder.create({}));\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 createPanResponder();\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 createPanResponder = () => {\n setPanResponder(\n PanResponder.create({\n onStartShouldSetPanResponder: () => true,\n onMoveShouldSetPanResponder: () => true,\n onPanResponderGrant: () => {},\n onPanResponderRelease: () => {},\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 //<View style={[styles.track, { width: sliderWidth }]}>\n //<View style={[styles.thumb, { left: thumbPosition }]} {...panResponder.panHandlers} />\n //</View>\n return (\n <TouchableWithoutFeedback onPress={(e) => {}}>\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 />\n </View>\n </View>\n </TouchableWithoutFeedback>\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","PanResponder","create","_useState2","_slicedToArray","panResponder","setPanResponder","_useState3","Dimensions","get","width","_useState4","sliderWidth","setSliderWidth","_useState5","_useState6","value","setValue","animatedValue","useRef","Animated","Value","current","useEffect","handleOrientationChange","subscription","addEventListener","createPanResponder","remove","hanleValueUpdate","gestureState","currentValue","Math","dx","handleLayout","event","nativeEvent","layout","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","TouchableWithoutFeedback","onPress","e","View","style","onLayout","_objectSpread","transform","translateX","panHandlers","defaultProps","SliderDefaultProps"],"mappings":"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"}
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 { PanResponder, Dimensions, Animated, StyleSheet, TouchableWithoutFeedback, View } from 'react-native';
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(PanResponder.create({})),
21
+ var _useState = useState(Dimensions.get("window").width * 0.8),
22
22
  _useState2 = _slicedToArray(_useState, 2),
23
- panResponder = _useState2[0],
24
- setPanResponder = _useState2[1];
25
- var _useState3 = useState(Dimensions.get("window").width * 0.8),
23
+ sliderWidth = _useState2[0],
24
+ setSliderWidth = _useState2[1];
25
+ var _useState3 = useState(initalValue),
26
26
  _useState4 = _slicedToArray(_useState3, 2),
27
- sliderWidth = _useState4[0],
28
- setSliderWidth = _useState4[1];
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 createPanResponder = function createPanResponder() {
62
- setPanResponder(PanResponder.create({
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
- onPanResponderRelease: function onPanResponderRelease() {},
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(TouchableWithoutFeedback, {
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 [panResponder, setPanResponder] = useState(PanResponder.create({}));\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 createPanResponder();\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 createPanResponder = () => {\n setPanResponder(\n PanResponder.create({\n onStartShouldSetPanResponder: () => true,\n onMoveShouldSetPanResponder: () => true,\n onPanResponderGrant: () => {},\n onPanResponderRelease: () => {},\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 //<View style={[styles.track, { width: sliderWidth }]}>\n //<View style={[styles.thumb, { left: thumbPosition }]} {...panResponder.panHandlers} />\n //</View>\n return (\n <TouchableWithoutFeedback onPress={(e) => {}}>\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 />\n </View>\n </View>\n </TouchableWithoutFeedback>\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","PanResponder","create","_useState2","_slicedToArray","panResponder","setPanResponder","_useState3","Dimensions","get","width","_useState4","sliderWidth","setSliderWidth","_useState5","_useState6","value","setValue","animatedValue","useRef","Animated","Value","current","useEffect","handleOrientationChange","subscription","addEventListener","createPanResponder","remove","hanleValueUpdate","gestureState","currentValue","Math","dx","handleLayout","event","nativeEvent","layout","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","TouchableWithoutFeedback","onPress","e","View","style","onLayout","_objectSpread","transform","translateX","panHandlers","defaultProps","SliderDefaultProps"],"mappings":"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"}
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-beta202511041914",
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-beta202511041914"
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 createPanResponder = () => {
63
- setPanResponder(
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
- <TouchableWithoutFeedback onPress={(e) => {}}>
115
- <View style={styles.sliderContainer} onLayout={handleLayout}>
116
- <View style={styles.trackContainer}>
117
- <Animated.View style={[styles.coloredTrack, { width: animatedValue }]} />
118
- <Animated.View
119
- style={[styles.thumbButton, { transform: [{ translateX: animatedValue }] }, dotStyle]}
120
- {...panResponder.panHandlers}
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
- </TouchableWithoutFeedback>
118
+ </View>
125
119
  );
126
120
  };
127
121