@xhsreds/reds-rn-next 0.10.1-beta202511241537 → 0.10.1-beta202512021041

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 (91) hide show
  1. package/coverage/.tmp/coverage-0.json +1 -1
  2. package/coverage/.tmp/coverage-1.json +1 -1
  3. package/coverage/.tmp/coverage-10.json +1 -1
  4. package/coverage/.tmp/coverage-11.json +1 -1
  5. package/coverage/.tmp/coverage-12.json +1 -1
  6. package/coverage/.tmp/coverage-13.json +1 -1
  7. package/coverage/.tmp/coverage-14.json +1 -1
  8. package/coverage/.tmp/coverage-15.json +1 -1
  9. package/coverage/.tmp/coverage-16.json +1 -1
  10. package/coverage/.tmp/coverage-17.json +1 -1
  11. package/coverage/.tmp/coverage-18.json +1 -1
  12. package/coverage/.tmp/coverage-19.json +1 -1
  13. package/coverage/.tmp/coverage-2.json +1 -1
  14. package/coverage/.tmp/coverage-20.json +1 -1
  15. package/coverage/.tmp/coverage-21.json +1 -1
  16. package/coverage/.tmp/coverage-22.json +1 -1
  17. package/coverage/.tmp/coverage-23.json +1 -1
  18. package/coverage/.tmp/coverage-24.json +1 -1
  19. package/coverage/.tmp/coverage-25.json +1 -1
  20. package/coverage/.tmp/coverage-27.json +1 -1
  21. package/coverage/.tmp/coverage-29.json +1 -1
  22. package/coverage/.tmp/coverage-3.json +1 -1
  23. package/coverage/.tmp/coverage-30.json +1 -1
  24. package/coverage/.tmp/coverage-32.json +1 -1
  25. package/coverage/.tmp/coverage-33.json +1 -1
  26. package/coverage/.tmp/coverage-34.json +1 -1
  27. package/coverage/.tmp/coverage-36.json +1 -1
  28. package/coverage/.tmp/coverage-37.json +1 -1
  29. package/coverage/.tmp/coverage-38.json +1 -1
  30. package/coverage/.tmp/coverage-39.json +1 -1
  31. package/coverage/.tmp/coverage-4.json +1 -1
  32. package/coverage/.tmp/coverage-40.json +1 -1
  33. package/coverage/.tmp/coverage-41.json +1 -1
  34. package/coverage/.tmp/coverage-5.json +1 -1
  35. package/coverage/.tmp/coverage-6.json +1 -1
  36. package/coverage/.tmp/coverage-7.json +1 -1
  37. package/coverage/.tmp/coverage-8.json +1 -1
  38. package/coverage/.tmp/coverage-9.json +1 -1
  39. package/lib/cjs/_chunks/hA3qoGpS.js.map +1 -1
  40. package/lib/cjs/components/ActionablePopover/ActionablePopover.js +2 -2
  41. package/lib/cjs/components/ActionablePopover/ActionablePopover.js.map +1 -1
  42. package/lib/cjs/components/Divider/Divider.js +33 -12
  43. package/lib/cjs/components/Divider/Divider.js.map +1 -1
  44. package/lib/cjs/components/Divider/index.js +3 -3
  45. package/lib/cjs/components/Divider/styles.js +36 -30
  46. package/lib/cjs/components/Divider/styles.js.map +1 -1
  47. package/lib/cjs/components/List/ListItem/ListItem.js +4 -2
  48. package/lib/cjs/components/List/ListItem/ListItem.js.map +1 -1
  49. package/lib/cjs/components/PickerView/Wheel.js +57 -16
  50. package/lib/cjs/components/PickerView/Wheel.js.map +1 -1
  51. package/lib/cjs/components/Stepper/Stepper.js +1 -1
  52. package/lib/cjs/components/Stepper/Stepper.js.map +1 -1
  53. package/lib/cjs/components/Stepper/styles.js +2 -2
  54. package/lib/cjs/components/Stepper/styles.js.map +1 -1
  55. package/lib/esm/_chunks/C0MWVrjO.js.map +1 -1
  56. package/lib/esm/components/ActionablePopover/ActionablePopover.js +1 -1
  57. package/lib/esm/components/ActionablePopover/ActionablePopover.js.map +1 -1
  58. package/lib/esm/components/Divider/Divider.js +35 -14
  59. package/lib/esm/components/Divider/Divider.js.map +1 -1
  60. package/lib/esm/components/Divider/index.js +3 -3
  61. package/lib/esm/components/Divider/styles.js +36 -30
  62. package/lib/esm/components/Divider/styles.js.map +1 -1
  63. package/lib/esm/components/List/ListItem/ListItem.js +5 -3
  64. package/lib/esm/components/List/ListItem/ListItem.js.map +1 -1
  65. package/lib/esm/components/PickerView/Wheel.js +57 -16
  66. package/lib/esm/components/PickerView/Wheel.js.map +1 -1
  67. package/lib/esm/components/Stepper/Stepper.js +1 -1
  68. package/lib/esm/components/Stepper/Stepper.js.map +1 -1
  69. package/lib/esm/components/Stepper/styles.js +2 -2
  70. package/lib/esm/components/Stepper/styles.js.map +1 -1
  71. package/lib/src/components/Divider/styles.d.ts +3 -2
  72. package/lib/src/components/List/ListItem/ListItem.d.ts +2 -0
  73. package/lib/src/components/Stepper/interface/index.d.ts +1 -0
  74. package/lib/src/components/Stepper/styles.d.ts +2 -2
  75. package/lib/types/components/Divider/styles.d.ts +3 -2
  76. package/lib/types/components/List/ListItem/ListItem.d.ts +2 -0
  77. package/lib/types/components/Stepper/interface/index.d.ts +1 -0
  78. package/lib/types/components/Stepper/styles.d.ts +2 -2
  79. package/package.json +2 -2
  80. package/src/components/ActionablePopover/ActionablePopover.tsx +10 -1
  81. package/src/components/Divider/Divider.tsx +29 -9
  82. package/src/components/Divider/demo/index.tsx +12 -6
  83. package/src/components/Divider/styles.ts +33 -30
  84. package/src/components/List/ListItem/ListItem.tsx +12 -1
  85. package/src/components/List/demo/index.tsx +2 -0
  86. package/src/components/PickerView/Wheel.tsx +59 -12
  87. package/src/components/Stepper/Stepper.tsx +1 -1
  88. package/src/components/Stepper/demo/index.tsx +1 -1
  89. package/src/components/Stepper/doc/index.mdx +1 -0
  90. package/src/components/Stepper/interface/index.ts +1 -0
  91. package/src/components/Stepper/styles.ts +2 -2
@@ -15,31 +15,71 @@ const Wheel = (props: RedsWheel) => {
15
15
  */
16
16
  const scrollerRef = useRef();
17
17
 
18
- /**
19
- * themeColor
20
- */
21
- const themeColor = useThemeColor();
18
+ const [scrollEnded, setScrollEnded] = useState(false);
19
+
20
+ const [scrollHeight, setScrollHeight] = useState(0);
22
21
 
23
22
  const [lastValue, setLastValue] = useState(value);
24
23
 
24
+ const onScrollEndDrag = () => {
25
+ setScrollEnded(true);
26
+ };
27
+
25
28
  /**
26
29
  * 初始化滚动高度
27
30
  */
28
31
  useEffect(() => {
29
32
  if (value !== lastValue) {
30
33
  const idx = getSelectIndex(column, value);
31
- handleScroll(idx);
34
+ setIndex(idx);
32
35
  }
33
36
  }, [column, value]);
34
37
 
35
- const handleScroll = (idx: number) => {
36
- const newVal = column?.[idx]?.value;
37
- scrollTo(idx * itemHeight);
38
+ /**
39
+ * themeColor
40
+ */
41
+ const themeColor = useThemeColor();
42
+
43
+ /**
44
+ * index
45
+ */
46
+ const [index, setIndex] = useState<any>();
47
+
48
+ const timer = useRef<any>();
49
+
50
+ /**
51
+ * 初始化滚动高度
52
+ */
53
+ useEffect(() => {
54
+ value && setIndex(getSelectIndex(column, value));
55
+ }, [column, value]);
56
+
57
+ useEffect(() => {
58
+ const newVal = column?.[index]?.value;
59
+ scrollTo(index * itemHeight);
38
60
  if (newVal) {
39
- setLastValue(newVal);
40
61
  onSelect(newVal, props.index);
62
+ setLastValue(newVal);
41
63
  }
42
- };
64
+ }, [index, props.index]);
65
+
66
+ useEffect(() => {
67
+ if (scrollEnded) {
68
+ // @ts-ignore
69
+ if (scrollHeight != null) {
70
+ timer.current = setTimeout(() => {
71
+ const selectIndex = Math.round(scrollHeight / itemHeight);
72
+ if (selectIndex >= 0 && selectIndex < column.length) {
73
+ setIndex(selectIndex);
74
+ }
75
+ }, 0);
76
+ }
77
+ setScrollEnded(false);
78
+ }
79
+ return () => {
80
+ timer.current && clearTimeout(timer.current);
81
+ };
82
+ }, [scrollEnded]);
43
83
 
44
84
  /**
45
85
  * 滚动ScrollView
@@ -84,13 +124,17 @@ const Wheel = (props: RedsWheel) => {
84
124
  e.persist?.();
85
125
  let contentOffset = e.nativeEvent.contentOffset;
86
126
  const selectIndex = Math.round(contentOffset.y / itemHeight);
127
+ setIndex(selectIndex);
87
128
  const newVal = column?.[selectIndex]?.value;
88
129
  setLastValue(newVal);
89
- onSelect(newVal, props.index);
130
+ };
131
+
132
+ const onScroll = (e: NativeSyntheticEvent<NativeScrollEvent>) => {
133
+ setScrollHeight(e.nativeEvent.contentOffset.y);
90
134
  };
91
135
 
92
136
  const handleClick = (index: number) => {
93
- handleScroll(index);
137
+ setIndex(index);
94
138
  };
95
139
 
96
140
  /**
@@ -127,6 +171,9 @@ const Wheel = (props: RedsWheel) => {
127
171
  decelerationRate="fast"
128
172
  snapToInterval={itemHeight}
129
173
  onMomentumScrollEnd={onMomentumScrollEnd}
174
+ onScrollEndDrag={onScrollEndDrag}
175
+ onScroll={onScroll}
176
+ scrollEventThrottle={16}
130
177
  testID={`wheel${props.index}`}
131
178
  {...accessibility}
132
179
  >
@@ -84,7 +84,7 @@ const Stepper = (props: RedsStepper) => {
84
84
  }, [colorMode]);
85
85
 
86
86
  return (
87
- <View style={styles.container}>
87
+ <View style={[styles.container, props.style]}>
88
88
  <TouchableWithoutFeedback onPress={() => handleNumber("min")}>
89
89
  <View style={[styles.icon, minus]}>
90
90
  <Image source={{ uri: minusImage }} style={[styles.minus]} />
@@ -21,7 +21,7 @@ export default function App() {
21
21
  return (
22
22
  <View style={styles.container}>
23
23
  <Text>基础用法</Text>
24
- <Stepper value={value} onChange={handleChange} />
24
+ <Stepper value={value} onChange={handleChange} style={{ width: 200 }} />
25
25
 
26
26
  <Text>基础用法(非受控)</Text>
27
27
  <Stepper isControl={false} />
@@ -17,6 +17,7 @@ import BaseDemo from "!!raw-loader!../demo/index.tsx";
17
17
  | min | 最小值 | number | |
18
18
  | disable | disable | boolean | false |
19
19
  | isControl | 是否受控 | boolean | true |
20
+ | style | style | any | |
20
21
 
21
22
  ### Events
22
23
 
@@ -7,6 +7,7 @@ export interface RedsStepper {
7
7
  disable?: boolean;
8
8
  onChange?: (value: number) => any;
9
9
  isControl?: boolean;
10
+ style?: any;
10
11
  }
11
12
 
12
13
  export interface RedsStepperEvent {}
@@ -5,7 +5,8 @@ export const getStyles = (themeColor: any, typography: any) => {
5
5
  display: "flex",
6
6
  flexDirection: "row",
7
7
  alignItems: "center",
8
- justifyContent: "center",
8
+ justifyContent: "space-between",
9
+ width: 72,
9
10
  },
10
11
  opacity: {
11
12
  opacity: 0.5,
@@ -21,7 +22,6 @@ export const getStyles = (themeColor: any, typography: any) => {
21
22
  lineHeight: 20,
22
23
  },
23
24
  text: {
24
- paddingHorizontal: 8,
25
25
  fontWeight: typography.B1LooseFontWeight,
26
26
  fontSize: typography.T3FontSize,
27
27
  color: themeColor.Title,