@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.
- package/coverage/.tmp/coverage-0.json +1 -1
- 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-13.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-24.json +1 -1
- package/coverage/.tmp/coverage-25.json +1 -1
- package/coverage/.tmp/coverage-27.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-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-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/_chunks/hA3qoGpS.js.map +1 -1
- package/lib/cjs/components/ActionablePopover/ActionablePopover.js +2 -2
- package/lib/cjs/components/ActionablePopover/ActionablePopover.js.map +1 -1
- package/lib/cjs/components/Divider/Divider.js +33 -12
- package/lib/cjs/components/Divider/Divider.js.map +1 -1
- package/lib/cjs/components/Divider/index.js +3 -3
- package/lib/cjs/components/Divider/styles.js +36 -30
- package/lib/cjs/components/Divider/styles.js.map +1 -1
- package/lib/cjs/components/List/ListItem/ListItem.js +4 -2
- package/lib/cjs/components/List/ListItem/ListItem.js.map +1 -1
- package/lib/cjs/components/PickerView/Wheel.js +57 -16
- package/lib/cjs/components/PickerView/Wheel.js.map +1 -1
- package/lib/cjs/components/Stepper/Stepper.js +1 -1
- package/lib/cjs/components/Stepper/Stepper.js.map +1 -1
- package/lib/cjs/components/Stepper/styles.js +2 -2
- package/lib/cjs/components/Stepper/styles.js.map +1 -1
- package/lib/esm/_chunks/C0MWVrjO.js.map +1 -1
- package/lib/esm/components/ActionablePopover/ActionablePopover.js +1 -1
- package/lib/esm/components/ActionablePopover/ActionablePopover.js.map +1 -1
- package/lib/esm/components/Divider/Divider.js +35 -14
- package/lib/esm/components/Divider/Divider.js.map +1 -1
- package/lib/esm/components/Divider/index.js +3 -3
- package/lib/esm/components/Divider/styles.js +36 -30
- package/lib/esm/components/Divider/styles.js.map +1 -1
- package/lib/esm/components/List/ListItem/ListItem.js +5 -3
- package/lib/esm/components/List/ListItem/ListItem.js.map +1 -1
- package/lib/esm/components/PickerView/Wheel.js +57 -16
- package/lib/esm/components/PickerView/Wheel.js.map +1 -1
- package/lib/esm/components/Stepper/Stepper.js +1 -1
- package/lib/esm/components/Stepper/Stepper.js.map +1 -1
- package/lib/esm/components/Stepper/styles.js +2 -2
- package/lib/esm/components/Stepper/styles.js.map +1 -1
- package/lib/src/components/Divider/styles.d.ts +3 -2
- package/lib/src/components/List/ListItem/ListItem.d.ts +2 -0
- package/lib/src/components/Stepper/interface/index.d.ts +1 -0
- package/lib/src/components/Stepper/styles.d.ts +2 -2
- package/lib/types/components/Divider/styles.d.ts +3 -2
- package/lib/types/components/List/ListItem/ListItem.d.ts +2 -0
- package/lib/types/components/Stepper/interface/index.d.ts +1 -0
- package/lib/types/components/Stepper/styles.d.ts +2 -2
- package/package.json +2 -2
- package/src/components/ActionablePopover/ActionablePopover.tsx +10 -1
- package/src/components/Divider/Divider.tsx +29 -9
- package/src/components/Divider/demo/index.tsx +12 -6
- package/src/components/Divider/styles.ts +33 -30
- package/src/components/List/ListItem/ListItem.tsx +12 -1
- package/src/components/List/demo/index.tsx +2 -0
- package/src/components/PickerView/Wheel.tsx +59 -12
- package/src/components/Stepper/Stepper.tsx +1 -1
- package/src/components/Stepper/demo/index.tsx +1 -1
- package/src/components/Stepper/doc/index.mdx +1 -0
- package/src/components/Stepper/interface/index.ts +1 -0
- 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
|
-
|
|
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
|
-
|
|
34
|
+
setIndex(idx);
|
|
32
35
|
}
|
|
33
36
|
}, [column, value]);
|
|
34
37
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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} />
|
|
@@ -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: "
|
|
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,
|