@xhsreds/reds-rn-next 0.2.2 → 0.2.3-beta202411091721
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-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-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-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-26.json +1 -1
- package/coverage/.tmp/coverage-27.json +1 -1
- package/coverage/.tmp/coverage-28.json +1 -1
- package/coverage/.tmp/coverage-29.json +1 -1
- package/coverage/.tmp/coverage-30.json +1 -1
- package/coverage/.tmp/coverage-31.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-5.json +1 -1
- package/coverage/.tmp/coverage-8.json +1 -1
- package/coverage/.tmp/coverage-9.json +1 -1
- package/lib/cjs/_chunks/1m42z2Mz.js.map +1 -1
- package/lib/cjs/_chunks/{BZY8fLHP.js → BRcYv_kj.js} +3 -2
- package/lib/cjs/_chunks/BRcYv_kj.js.map +1 -0
- package/lib/cjs/_chunks/{G5T1hGVo.js → BmmacXcR.js} +4 -2
- package/lib/cjs/_chunks/BmmacXcR.js.map +1 -0
- package/lib/cjs/_chunks/{ZbRoGP_k.js → DY75DWu0.js} +4 -2
- package/lib/cjs/_chunks/DY75DWu0.js.map +1 -0
- package/lib/cjs/_chunks/{CnvQUDZP.js → SPLAvS-C.js} +3 -2
- package/lib/cjs/_chunks/SPLAvS-C.js.map +1 -0
- package/lib/cjs/_chunks/{SEcsCrAk.js → aU6iuR1W.js} +2 -2
- package/lib/cjs/_chunks/aU6iuR1W.js.map +1 -0
- package/lib/cjs/_chunks/{CbnkUMH9.js → dM-QhrnE.js} +11 -9
- package/lib/cjs/_chunks/dM-QhrnE.js.map +1 -0
- package/lib/cjs/components/ActionSheets/ActionSheets.js +13 -7
- package/lib/cjs/components/ActionSheets/ActionSheets.js.map +1 -1
- package/lib/cjs/components/ActionSheets/index.js +1 -1
- package/lib/cjs/components/ActionSheets/styles.js +6 -3
- package/lib/cjs/components/ActionSheets/styles.js.map +1 -1
- package/lib/cjs/components/Alert/Alert.js +6 -6
- package/lib/cjs/components/Alert/hooks/alert.js +6 -6
- package/lib/cjs/components/Alert/index.js +6 -6
- package/lib/cjs/components/AvatarGroup/AvatarGroup.js +6 -6
- package/lib/cjs/components/AvatarGroup/index.js +6 -6
- package/lib/cjs/components/CheckBoxGroup/CheckBox.js +5 -1
- package/lib/cjs/components/CheckBoxGroup/CheckBox.js.map +1 -1
- package/lib/cjs/components/CheckBoxGroup/CheckBoxGroup.js +2 -1
- package/lib/cjs/components/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
- package/lib/cjs/components/DatePicker/DatePicker.js +1 -1
- package/lib/cjs/components/DatePicker/index.js +1 -1
- package/lib/cjs/components/Form/Form.js +21 -17
- package/lib/cjs/components/Form/Form.js.map +1 -1
- package/lib/cjs/components/Form/FormItem.js +4 -4
- package/lib/cjs/components/Form/FormItem.js.map +1 -1
- package/lib/cjs/components/Form/index.js +2 -2
- package/lib/cjs/components/Form/interface/index.js +1 -1
- package/lib/cjs/components/Form/styles.js +1 -1
- package/lib/cjs/components/Icon/Icon.js +3 -1
- package/lib/cjs/components/Icon/Icon.js.map +1 -1
- package/lib/cjs/components/ImagePreview/ImagePreview.js +6 -6
- package/lib/cjs/components/ImagePreview/index.js +6 -6
- package/lib/cjs/components/List/ListItem/ListItem.js +6 -6
- package/lib/cjs/components/List/index.js +6 -6
- package/lib/cjs/components/Picker/Picker.js +1 -1
- package/lib/cjs/components/Picker/index.js +1 -1
- package/lib/cjs/components/Radio/Radio.js +6 -6
- package/lib/cjs/components/Radio/RadioGroup.js +4 -2
- package/lib/cjs/components/Radio/RadioGroup.js.map +1 -1
- package/lib/cjs/components/Radio/index.js +6 -6
- package/lib/cjs/components/Radio/interface/index.js +1 -1
- package/lib/cjs/components/Rate/Rate.js +2 -2
- package/lib/cjs/components/Rate/Rate.js.map +1 -1
- package/lib/cjs/components/Rate/index.js +1 -1
- package/lib/cjs/components/Rate/interface/index.js +1 -1
- package/lib/cjs/components/Sheets/AnimatedSheets.js +4 -2
- package/lib/cjs/components/Sheets/AnimatedSheets.js.map +1 -1
- package/lib/cjs/components/Sheets/Sheets.js +22 -13
- package/lib/cjs/components/Sheets/Sheets.js.map +1 -1
- package/lib/cjs/components/Sheets/api.js +1 -1
- package/lib/cjs/components/Sheets/index.js +1 -1
- package/lib/cjs/components/Sheets/interface/index.js +1 -1
- package/lib/cjs/components/Stepper/Stepper.js +4 -2
- package/lib/cjs/components/Stepper/Stepper.js.map +1 -1
- package/lib/cjs/components/Stepper/index.js +1 -1
- package/lib/cjs/components/Stepper/interface/index.js +1 -1
- package/lib/cjs/components/Tab/Tabs.js +98 -35
- package/lib/cjs/components/Tab/Tabs.js.map +1 -1
- package/lib/cjs/components/Tab/styles.js +11 -10
- package/lib/cjs/components/Tab/styles.js.map +1 -1
- package/lib/cjs/components/Uploader/Uploader.js +6 -6
- package/lib/cjs/components/Uploader/Uploader.js.map +1 -1
- package/lib/cjs/components/Uploader/styles.js +8 -5
- package/lib/cjs/components/Uploader/styles.js.map +1 -1
- package/lib/cjs/index.js +6 -6
- package/lib/esm/_chunks/{BKfYslcc.js → B92MXD-p.js} +3 -2
- package/lib/esm/_chunks/B92MXD-p.js.map +1 -0
- package/lib/esm/_chunks/{DIXhEK8L.js → B_rJA32w.js} +11 -9
- package/lib/esm/_chunks/B_rJA32w.js.map +1 -0
- package/lib/esm/_chunks/{DGYdiQBr.js → BaWeXDzj.js} +4 -2
- package/lib/esm/_chunks/BaWeXDzj.js.map +1 -0
- package/lib/esm/_chunks/CC8nLpzS.js.map +1 -1
- package/lib/esm/_chunks/{ClyMQ8-p.js → CQDVLUyF.js} +3 -3
- package/lib/esm/_chunks/CQDVLUyF.js.map +1 -0
- package/lib/esm/_chunks/{CQokOKfj.js → CqcNLT67.js} +4 -2
- package/lib/esm/_chunks/CqcNLT67.js.map +1 -0
- package/lib/esm/_chunks/{DR1NAacd.js → DGI1A77J.js} +3 -2
- package/lib/esm/_chunks/DGI1A77J.js.map +1 -0
- package/lib/esm/components/ActionSheets/ActionSheets.js +13 -7
- package/lib/esm/components/ActionSheets/ActionSheets.js.map +1 -1
- package/lib/esm/components/ActionSheets/index.js +1 -1
- package/lib/esm/components/ActionSheets/styles.js +6 -3
- package/lib/esm/components/ActionSheets/styles.js.map +1 -1
- package/lib/esm/components/Alert/Alert.js +6 -6
- package/lib/esm/components/Alert/hooks/alert.js +6 -6
- package/lib/esm/components/Alert/index.js +7 -7
- package/lib/esm/components/AvatarGroup/AvatarGroup.js +6 -6
- package/lib/esm/components/AvatarGroup/index.js +6 -6
- package/lib/esm/components/CheckBoxGroup/CheckBox.js +5 -1
- package/lib/esm/components/CheckBoxGroup/CheckBox.js.map +1 -1
- package/lib/esm/components/CheckBoxGroup/CheckBoxGroup.js +2 -1
- package/lib/esm/components/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
- package/lib/esm/components/DatePicker/DatePicker.js +1 -1
- package/lib/esm/components/DatePicker/index.js +1 -1
- package/lib/esm/components/Form/Form.js +22 -18
- package/lib/esm/components/Form/Form.js.map +1 -1
- package/lib/esm/components/Form/FormItem.js +4 -4
- package/lib/esm/components/Form/FormItem.js.map +1 -1
- package/lib/esm/components/Form/index.js +2 -2
- package/lib/esm/components/Form/interface/index.js +1 -1
- package/lib/esm/components/Form/styles.js +1 -1
- package/lib/esm/components/Icon/Icon.js +4 -2
- package/lib/esm/components/Icon/Icon.js.map +1 -1
- package/lib/esm/components/ImagePreview/ImagePreview.js +6 -6
- package/lib/esm/components/ImagePreview/index.js +6 -6
- package/lib/esm/components/List/ListItem/ListItem.js +6 -6
- package/lib/esm/components/List/index.js +6 -6
- package/lib/esm/components/Picker/Picker.js +1 -1
- package/lib/esm/components/Picker/index.js +1 -1
- package/lib/esm/components/Radio/Radio.js +6 -6
- package/lib/esm/components/Radio/RadioGroup.js +4 -2
- package/lib/esm/components/Radio/RadioGroup.js.map +1 -1
- package/lib/esm/components/Radio/index.js +6 -6
- package/lib/esm/components/Radio/interface/index.js +1 -1
- package/lib/esm/components/Rate/Rate.js +2 -2
- package/lib/esm/components/Rate/Rate.js.map +1 -1
- package/lib/esm/components/Rate/index.js +1 -1
- package/lib/esm/components/Rate/interface/index.js +1 -1
- package/lib/esm/components/Sheets/AnimatedSheets.js +4 -2
- package/lib/esm/components/Sheets/AnimatedSheets.js.map +1 -1
- package/lib/esm/components/Sheets/Sheets.js +22 -13
- package/lib/esm/components/Sheets/Sheets.js.map +1 -1
- package/lib/esm/components/Sheets/api.js +1 -1
- package/lib/esm/components/Sheets/index.js +1 -1
- package/lib/esm/components/Sheets/interface/index.js +1 -1
- package/lib/esm/components/Stepper/Stepper.js +4 -2
- package/lib/esm/components/Stepper/Stepper.js.map +1 -1
- package/lib/esm/components/Stepper/index.js +1 -1
- package/lib/esm/components/Stepper/interface/index.js +1 -1
- package/lib/esm/components/Tab/Tabs.js +100 -37
- package/lib/esm/components/Tab/Tabs.js.map +1 -1
- package/lib/esm/components/Tab/styles.js +11 -10
- package/lib/esm/components/Tab/styles.js.map +1 -1
- package/lib/esm/components/Uploader/Uploader.js +6 -6
- package/lib/esm/components/Uploader/Uploader.js.map +1 -1
- package/lib/esm/components/Uploader/styles.js +8 -5
- package/lib/esm/components/Uploader/styles.js.map +1 -1
- package/lib/esm/index.js +6 -6
- package/lib/types/components/ActionSheets/styles.d.ts +4 -1
- package/lib/types/components/CheckBoxGroup/interface/index.d.ts +1 -0
- package/lib/types/components/Form/Form.d.ts +1 -7
- package/lib/types/components/Form/interface/index.d.ts +15 -3
- package/lib/types/components/Radio/interface/index.d.ts +7 -0
- package/lib/types/components/Rate/Rate.d.ts +1 -0
- package/lib/types/components/Rate/interface/index.d.ts +2 -0
- package/lib/types/components/Sheets/AnimatedSheets.d.ts +2 -4
- package/lib/types/components/Sheets/Sheets.d.ts +1 -1
- package/lib/types/components/Sheets/interface/index.d.ts +2 -2
- package/lib/types/components/Stepper/Stepper.d.ts +1 -0
- package/lib/types/components/Stepper/interface/index.d.ts +2 -0
- package/lib/types/components/Tab/styles.d.ts +7 -6
- package/lib/types/components/Uploader/styles.d.ts +5 -2
- package/package.json +1 -1
- package/src/components/ActionSheets/ActionSheets.tsx +12 -9
- package/src/components/ActionSheets/demo/index.tsx +27 -1
- package/src/components/ActionSheets/styles.ts +4 -1
- package/src/components/CheckBoxGroup/CheckBox.tsx +5 -1
- package/src/components/CheckBoxGroup/CheckBoxGroup.tsx +1 -0
- package/src/components/CheckBoxGroup/interface/index.ts +1 -0
- package/src/components/Form/Form.tsx +24 -13
- package/src/components/Form/FormItem.tsx +8 -3
- package/src/components/Form/demo/index.tsx +63 -7
- package/src/components/Form/doc/index.mdx +9 -7
- package/src/components/Form/interface/index.ts +15 -3
- package/src/components/Icon/Icon.tsx +5 -3
- package/src/components/Icon/demo/index.tsx +0 -1
- package/src/components/Radio/Radio.tsx +8 -2
- package/src/components/Radio/RadioGroup.tsx +2 -1
- package/src/components/Radio/doc/index.mdx +11 -8
- package/src/components/Radio/interface/index.ts +7 -0
- package/src/components/Rate/Rate.tsx +1 -1
- package/src/components/Rate/doc/index.mdx +10 -9
- package/src/components/Rate/interface/index.ts +2 -0
- package/src/components/Sheets/AnimatedSheets.tsx +1 -1
- package/src/components/Sheets/Sheets.tsx +27 -13
- package/src/components/Sheets/demo/index.tsx +23 -0
- package/src/components/Sheets/doc/index.mdx +1 -1
- package/src/components/Sheets/interface/index.ts +2 -2
- package/src/components/Stepper/Stepper.tsx +11 -9
- package/src/components/Stepper/doc/index.mdx +7 -6
- package/src/components/Stepper/interface/index.ts +2 -0
- package/src/components/Tab/Tabs.tsx +147 -88
- package/src/components/Tab/demo/index.tsx +33 -11
- package/src/components/Tab/styles.ts +8 -6
- package/src/components/Uploader/Uploader.tsx +6 -6
- package/src/components/Uploader/styles.ts +5 -2
- package/types/src/components/ActionSheets/styles.d.ts +4 -1
- package/types/src/components/CheckBoxGroup/interface/index.d.ts +1 -0
- package/types/src/components/Form/Form.d.ts +1 -7
- package/types/src/components/Form/interface/index.d.ts +15 -3
- package/types/src/components/Radio/interface/index.d.ts +7 -0
- package/types/src/components/Rate/Rate.d.ts +1 -0
- package/types/src/components/Rate/interface/index.d.ts +2 -0
- package/types/src/components/Sheets/AnimatedSheets.d.ts +2 -4
- package/types/src/components/Sheets/Sheets.d.ts +1 -1
- package/types/src/components/Sheets/interface/index.d.ts +2 -2
- package/types/src/components/Stepper/Stepper.d.ts +1 -0
- package/types/src/components/Stepper/interface/index.d.ts +2 -0
- package/types/src/components/Tab/styles.d.ts +7 -6
- package/types/src/components/Uploader/styles.d.ts +5 -2
- package/lib/cjs/_chunks/BZY8fLHP.js.map +0 -1
- package/lib/cjs/_chunks/CbnkUMH9.js.map +0 -1
- package/lib/cjs/_chunks/CnvQUDZP.js.map +0 -1
- package/lib/cjs/_chunks/G5T1hGVo.js.map +0 -1
- package/lib/cjs/_chunks/SEcsCrAk.js.map +0 -1
- package/lib/cjs/_chunks/ZbRoGP_k.js.map +0 -1
- package/lib/esm/_chunks/BKfYslcc.js.map +0 -1
- package/lib/esm/_chunks/CQokOKfj.js.map +0 -1
- package/lib/esm/_chunks/ClyMQ8-p.js.map +0 -1
- package/lib/esm/_chunks/DGYdiQBr.js.map +0 -1
- package/lib/esm/_chunks/DIXhEK8L.js.map +0 -1
- package/lib/esm/_chunks/DR1NAacd.js.map +0 -1
|
@@ -22,15 +22,19 @@ export interface RedsForm {
|
|
|
22
22
|
data: FormData;
|
|
23
23
|
rules: FormRules;
|
|
24
24
|
onSubmit?: (value: FormData) => any;
|
|
25
|
-
children: ReactNode[];
|
|
25
|
+
children: ReactNode[] | ReactNode;
|
|
26
26
|
layout?: LAYOUT;
|
|
27
27
|
align?: ALIGN;
|
|
28
|
+
showSubmit?: boolean;
|
|
29
|
+
submitText?: string;
|
|
28
30
|
}
|
|
29
31
|
export interface RedsFormEvent {
|
|
30
32
|
}
|
|
31
33
|
export declare const FormDefaultProps: {
|
|
32
34
|
layout: LAYOUT;
|
|
33
35
|
align: ALIGN;
|
|
36
|
+
showSubmit: boolean;
|
|
37
|
+
submitText: string;
|
|
34
38
|
};
|
|
35
39
|
export interface RedsFormItem {
|
|
36
40
|
/**
|
|
@@ -52,7 +56,7 @@ export interface RedsFormItem {
|
|
|
52
56
|
/**
|
|
53
57
|
* label
|
|
54
58
|
*/
|
|
55
|
-
label
|
|
59
|
+
label?: string;
|
|
56
60
|
/**
|
|
57
61
|
* value
|
|
58
62
|
*/
|
|
@@ -76,11 +80,19 @@ export interface RedsFormItem {
|
|
|
76
80
|
/**
|
|
77
81
|
* label styles
|
|
78
82
|
*/
|
|
79
|
-
labelStyle?:
|
|
83
|
+
labelStyle?: ViewStyle;
|
|
84
|
+
/**
|
|
85
|
+
* label text styles
|
|
86
|
+
*/
|
|
87
|
+
labelTextStyle?: TextStyle;
|
|
80
88
|
/**
|
|
81
89
|
* formItem slot styles
|
|
82
90
|
*/
|
|
83
91
|
formItemSlotStyles?: ViewStyle;
|
|
92
|
+
/**
|
|
93
|
+
* label slot
|
|
94
|
+
*/
|
|
95
|
+
LabelComponent?: ReactNode;
|
|
84
96
|
}
|
|
85
97
|
export interface RedsFormItemEvent {
|
|
86
98
|
(e: "validate", value: Event): any;
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
import React, { ReactNode } from "react";
|
|
2
|
+
import { ViewStyle } from "react-native";
|
|
2
3
|
export interface RedsRadio {
|
|
3
4
|
name?: string;
|
|
4
5
|
size?: "small" | "medium" | "large";
|
|
5
6
|
disabled?: boolean;
|
|
6
7
|
checkedColor?: string;
|
|
7
8
|
type?: "default" | "line";
|
|
9
|
+
customIcon?: string;
|
|
10
|
+
customIconStyle?: ViewStyle;
|
|
8
11
|
children?: React.ReactNode;
|
|
9
12
|
onClick?: (value: string) => void;
|
|
13
|
+
textStyle?: ViewStyle;
|
|
10
14
|
}
|
|
11
15
|
export declare const RadioDefaultProps: {
|
|
12
16
|
disabled: boolean;
|
|
17
|
+
customIconStyle: {};
|
|
18
|
+
textStyle: {};
|
|
13
19
|
};
|
|
14
20
|
export interface RedsRadioGroup {
|
|
15
21
|
modelValue: string | number;
|
|
@@ -21,6 +27,7 @@ export interface RedsRadioGroup {
|
|
|
21
27
|
type?: "default" | "line";
|
|
22
28
|
children?: ReactNode;
|
|
23
29
|
onChange?: (value: string | number) => void;
|
|
30
|
+
style?: ViewStyle;
|
|
24
31
|
}
|
|
25
32
|
export interface RadioGroupContextProps {
|
|
26
33
|
modelValue: string | number;
|
|
@@ -25,6 +25,7 @@ export interface RedsRate {
|
|
|
25
25
|
texts?: string[];
|
|
26
26
|
value?: number;
|
|
27
27
|
onChange?: (value: number) => void;
|
|
28
|
+
isControl?: boolean;
|
|
28
29
|
}
|
|
29
30
|
export interface RedsRateEvent {
|
|
30
31
|
}
|
|
@@ -35,4 +36,5 @@ export declare const RateDefaultProps: {
|
|
|
35
36
|
descType: RateDescType;
|
|
36
37
|
pattern: RatePattern;
|
|
37
38
|
texts: string[];
|
|
39
|
+
isControl: boolean;
|
|
38
40
|
};
|
|
@@ -9,13 +9,11 @@ declare const Sheets: {
|
|
|
9
9
|
sheetsType: SheetsType;
|
|
10
10
|
cancel: boolean;
|
|
11
11
|
close: boolean;
|
|
12
|
-
zIndex:
|
|
12
|
+
zIndex: number;
|
|
13
13
|
cancelType: SheetsActionType;
|
|
14
14
|
closeType: SheetsActionType;
|
|
15
15
|
cancelText: string;
|
|
16
|
-
closeText: string;
|
|
17
|
-
* 标题区域高度
|
|
18
|
-
*/
|
|
16
|
+
closeText: string;
|
|
19
17
|
iconType: SheetsIconType;
|
|
20
18
|
size: SheetsSize;
|
|
21
19
|
onCancel: () => void;
|
|
@@ -29,7 +29,7 @@ export interface RedsSheets {
|
|
|
29
29
|
sheetsType?: SheetsType;
|
|
30
30
|
cancel?: boolean;
|
|
31
31
|
close?: boolean;
|
|
32
|
-
zIndex?:
|
|
32
|
+
zIndex?: number;
|
|
33
33
|
cancelType?: SheetsActionType;
|
|
34
34
|
closeType?: SheetsActionType;
|
|
35
35
|
cancelText?: string;
|
|
@@ -50,7 +50,7 @@ export declare const SheetsDefaultProps: {
|
|
|
50
50
|
sheetsType: SheetsType;
|
|
51
51
|
cancel: boolean;
|
|
52
52
|
close: boolean;
|
|
53
|
-
zIndex:
|
|
53
|
+
zIndex: number;
|
|
54
54
|
cancelType: SheetsActionType;
|
|
55
55
|
closeType: SheetsActionType;
|
|
56
56
|
cancelText: string;
|
|
@@ -4,9 +4,11 @@ export interface RedsStepper {
|
|
|
4
4
|
min?: number;
|
|
5
5
|
disable?: boolean;
|
|
6
6
|
onChange?: (value: number) => any;
|
|
7
|
+
isControl?: boolean;
|
|
7
8
|
}
|
|
8
9
|
export interface RedsStepperEvent {
|
|
9
10
|
}
|
|
10
11
|
export declare const StepperDefaultProps: {
|
|
11
12
|
disable: boolean;
|
|
13
|
+
isControl: boolean;
|
|
12
14
|
};
|
|
@@ -5,10 +5,15 @@ declare const styles: {
|
|
|
5
5
|
flexDirection: "row";
|
|
6
6
|
alignItems: "center";
|
|
7
7
|
justifyContent: "center";
|
|
8
|
+
width: "100%";
|
|
8
9
|
};
|
|
9
10
|
tabLeftContainer: {
|
|
10
11
|
width: "100%";
|
|
11
12
|
height: number;
|
|
13
|
+
display: "flex";
|
|
14
|
+
flexDirection: "row";
|
|
15
|
+
alignItems: "center";
|
|
16
|
+
justifyContent: "flex-start";
|
|
12
17
|
};
|
|
13
18
|
tabSpaceContainer: {
|
|
14
19
|
width: "100%";
|
|
@@ -29,9 +34,10 @@ declare const styles: {
|
|
|
29
34
|
};
|
|
30
35
|
underline: {
|
|
31
36
|
height: number;
|
|
32
|
-
width: "90%";
|
|
33
37
|
borderRadius: number;
|
|
34
38
|
paddingHorizontal: number;
|
|
39
|
+
position: "absolute";
|
|
40
|
+
bottom: number;
|
|
35
41
|
};
|
|
36
42
|
smallText: {
|
|
37
43
|
fontSize: number;
|
|
@@ -64,7 +70,6 @@ declare const styles: {
|
|
|
64
70
|
flexDirection: "column";
|
|
65
71
|
justifyContent: "center";
|
|
66
72
|
alignItems: "center";
|
|
67
|
-
position: "relative";
|
|
68
73
|
};
|
|
69
74
|
leftIcon: {
|
|
70
75
|
marginRight: number;
|
|
@@ -97,10 +102,6 @@ declare const styles: {
|
|
|
97
102
|
alignItems: "center";
|
|
98
103
|
flexDirection: "row";
|
|
99
104
|
};
|
|
100
|
-
columnFlex: {
|
|
101
|
-
display: "flex";
|
|
102
|
-
alignItems: "center";
|
|
103
|
-
};
|
|
104
105
|
};
|
|
105
106
|
export declare const getRedsDropDownVariantStyles: () => {
|
|
106
107
|
color: {
|
|
@@ -14,6 +14,7 @@ declare function getUploaderStyle(props: RedsUploader, themeColor: any): {
|
|
|
14
14
|
height: number;
|
|
15
15
|
marginRight: number;
|
|
16
16
|
marginTop: number;
|
|
17
|
+
borderRadius: number;
|
|
17
18
|
};
|
|
18
19
|
identityView: {
|
|
19
20
|
position: "relative";
|
|
@@ -49,10 +50,12 @@ declare function getUploaderStyle(props: RedsUploader, themeColor: any): {
|
|
|
49
50
|
identityImage: {
|
|
50
51
|
width: number;
|
|
51
52
|
height: number;
|
|
53
|
+
borderRadius: number;
|
|
52
54
|
};
|
|
53
55
|
image: {
|
|
54
56
|
width: "100%";
|
|
55
57
|
height: "100%";
|
|
58
|
+
borderRadius: number;
|
|
56
59
|
};
|
|
57
60
|
close: {
|
|
58
61
|
width: number;
|
|
@@ -120,7 +123,7 @@ declare function getUploaderStyle(props: RedsUploader, themeColor: any): {
|
|
|
120
123
|
flexDirection: "column";
|
|
121
124
|
alignItems: "center";
|
|
122
125
|
justifyContent: "center";
|
|
123
|
-
backgroundColor:
|
|
126
|
+
backgroundColor: string;
|
|
124
127
|
};
|
|
125
128
|
identityProgressIndicator: {
|
|
126
129
|
width: number;
|
|
@@ -134,7 +137,7 @@ declare function getUploaderStyle(props: RedsUploader, themeColor: any): {
|
|
|
134
137
|
flexDirection: "column";
|
|
135
138
|
alignItems: "center";
|
|
136
139
|
justifyContent: "center";
|
|
137
|
-
backgroundColor:
|
|
140
|
+
backgroundColor: string;
|
|
138
141
|
};
|
|
139
142
|
progressDesc: {
|
|
140
143
|
color: any;
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React, { useState, useRef, useEffect, useMemo, useCallback } from "react";
|
|
2
|
-
import { View, TouchableWithoutFeedback, Text } from "react-native";
|
|
2
|
+
import { View, TouchableWithoutFeedback, Text, ScrollView } from "react-native";
|
|
3
3
|
import { RedsActionSheets, ActionSheetsDefaultProps } from "./interface/index";
|
|
4
4
|
import styles from "./styles";
|
|
5
5
|
import { useThemeColor } from "../ConfigProvider";
|
|
6
|
-
import Sheets,
|
|
6
|
+
import { Sheets, SheetsType } from "../Sheets";
|
|
7
7
|
import { ActionType } from "./interface";
|
|
8
8
|
|
|
9
9
|
const ActionSheets = (props: RedsActionSheets) => {
|
|
@@ -33,6 +33,7 @@ const ActionSheets = (props: RedsActionSheets) => {
|
|
|
33
33
|
visible={props.visible}
|
|
34
34
|
cancel={false}
|
|
35
35
|
close={false}
|
|
36
|
+
size={SheetsType.SheetsSize.half}
|
|
36
37
|
sheetsType={SheetsType.SheetsType.normal}
|
|
37
38
|
onCancel={handleClose}
|
|
38
39
|
>
|
|
@@ -44,13 +45,15 @@ const ActionSheets = (props: RedsActionSheets) => {
|
|
|
44
45
|
) : (
|
|
45
46
|
<></>
|
|
46
47
|
)}
|
|
47
|
-
{
|
|
48
|
-
|
|
49
|
-
<
|
|
50
|
-
<
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
48
|
+
<ScrollView contentContainerStyle={{ flex: 1 }}>
|
|
49
|
+
{props?.data?.map((item) => (
|
|
50
|
+
<TouchableWithoutFeedback onPress={() => handleClick(item.value)} key={`${item.label}${item.value}`}>
|
|
51
|
+
<View style={[styles.action, { backgroundColor: themeColor.Bg2 }]}>
|
|
52
|
+
<Text style={getActionStyles(item.type as ActionType)}>{item.label}</Text>
|
|
53
|
+
</View>
|
|
54
|
+
</TouchableWithoutFeedback>
|
|
55
|
+
))}
|
|
56
|
+
</ScrollView>
|
|
54
57
|
<TouchableWithoutFeedback onPress={handleClose}>
|
|
55
58
|
<View style={[styles.cancel, { backgroundColor: themeColor.Bg2 }]}>
|
|
56
59
|
<Text style={{ color: themeColor.Title }}>取消</Text>
|
|
@@ -2,6 +2,16 @@ import React, { useRef, useEffect, useState } from "react";
|
|
|
2
2
|
import { View, Text, StyleSheet, FlatList, ScrollView } from "react-native";
|
|
3
3
|
import { ActionSheets, Button, ActionSheetsType } from "@xhs/reds-rn-next";
|
|
4
4
|
|
|
5
|
+
const styles = StyleSheet.create({
|
|
6
|
+
container: {
|
|
7
|
+
flex: 1,
|
|
8
|
+
justifyContent: "center",
|
|
9
|
+
paddingTop: 100,
|
|
10
|
+
paddingBottom: 100,
|
|
11
|
+
backgroundColor: "#eee",
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
|
|
5
15
|
export default function App() {
|
|
6
16
|
const [visible1, setVisible1] = useState(false);
|
|
7
17
|
const [visible2, setVisible2] = useState(false);
|
|
@@ -26,6 +36,22 @@ export default function App() {
|
|
|
26
36
|
label: "操作",
|
|
27
37
|
value: "5",
|
|
28
38
|
},
|
|
39
|
+
{
|
|
40
|
+
label: "操作",
|
|
41
|
+
value: "6",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
label: "操作",
|
|
45
|
+
value: "7",
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
label: "操作",
|
|
49
|
+
value: "8",
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
label: "操作",
|
|
53
|
+
value: "9",
|
|
54
|
+
},
|
|
29
55
|
];
|
|
30
56
|
|
|
31
57
|
const list1 = [
|
|
@@ -49,7 +75,7 @@ export default function App() {
|
|
|
49
75
|
console.log("handleChange", value);
|
|
50
76
|
};
|
|
51
77
|
return (
|
|
52
|
-
<View>
|
|
78
|
+
<View style={styles.container}>
|
|
53
79
|
<Button onClick={() => setVisible1(true)}>有描述的ActionSheet</Button>
|
|
54
80
|
<ActionSheets
|
|
55
81
|
visible={visible1}
|
|
@@ -3,9 +3,11 @@ import { StyleSheet } from "react-native";
|
|
|
3
3
|
const styles = StyleSheet.create({
|
|
4
4
|
ActionSheetsContainer: {
|
|
5
5
|
width: "100%",
|
|
6
|
-
overflowY: "scroll",
|
|
7
6
|
borderTopLeftRadius: 12,
|
|
8
7
|
borderTopRightRadius: 12,
|
|
8
|
+
display: "flex",
|
|
9
|
+
height: "100%",
|
|
10
|
+
flexDirection: "column",
|
|
9
11
|
},
|
|
10
12
|
description: {
|
|
11
13
|
height: 42,
|
|
@@ -18,6 +20,7 @@ const styles = StyleSheet.create({
|
|
|
18
20
|
justifyContent: "center",
|
|
19
21
|
borderTopLeftRadius: 12,
|
|
20
22
|
borderTopRightRadius: 12,
|
|
23
|
+
flexShrink: 0,
|
|
21
24
|
},
|
|
22
25
|
descriptionText: {
|
|
23
26
|
fontSize: 12,
|
|
@@ -25,7 +25,11 @@ const CheckBox = (props: RedsCheckBox) => {
|
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
useEffect(() => {
|
|
28
|
-
|
|
28
|
+
if (props?.isControl) {
|
|
29
|
+
setChecked(props.checked!);
|
|
30
|
+
} else {
|
|
31
|
+
setChecked((checkList as string[]).includes(props.value as string));
|
|
32
|
+
}
|
|
29
33
|
}, [props.checked]);
|
|
30
34
|
|
|
31
35
|
return (
|
|
@@ -1,26 +1,25 @@
|
|
|
1
|
-
import React, { useState, useRef, useEffect, useMemo, useCallback } from "react";
|
|
1
|
+
import React, { useState, useRef, useEffect, useMemo, useCallback, forwardRef, useImperativeHandle } from "react";
|
|
2
2
|
import { View, TouchableWithoutFeedback } from "react-native";
|
|
3
3
|
import { RedsForm, FormDefaultProps, RedsFormItem } from "./interface/index";
|
|
4
4
|
import { Button } from "../Button";
|
|
5
5
|
import styles from "./styles";
|
|
6
6
|
|
|
7
|
-
const Form = (props: RedsForm) => {
|
|
7
|
+
const Form = forwardRef((props: RedsForm, ref) => {
|
|
8
8
|
const refs = useRef<React.Ref<any>[]>([]);
|
|
9
|
-
|
|
10
9
|
/**
|
|
11
10
|
* 默认插槽内容
|
|
12
11
|
*/
|
|
13
12
|
const formItems = useMemo(() => {
|
|
14
|
-
return props.children
|
|
13
|
+
return props.children
|
|
15
14
|
? React.Children.map(props.children, (child, index) => {
|
|
16
15
|
if (React.isValidElement(child)) {
|
|
17
16
|
return React.cloneElement(child, {
|
|
18
|
-
// @ts-ignore
|
|
19
17
|
rules: props.rules[(child?.props as RedsFormItem)?.name],
|
|
20
18
|
value: props.data[(child?.props as RedsFormItem)?.name],
|
|
21
19
|
layout: props.layout,
|
|
22
20
|
align: props.align,
|
|
23
21
|
ref: (el: any) => (refs.current[index] = el),
|
|
22
|
+
...child?.props,
|
|
24
23
|
});
|
|
25
24
|
}
|
|
26
25
|
})
|
|
@@ -28,26 +27,38 @@ const Form = (props: RedsForm) => {
|
|
|
28
27
|
}, [props.children, props.rules, props.data]);
|
|
29
28
|
|
|
30
29
|
const handleSubmit = () => {
|
|
31
|
-
refs?.current
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
for (let i = 0; i < refs?.current.length; i++) {
|
|
31
|
+
// @ts-expect-error
|
|
32
|
+
if (refs.current[i]?.handleValidate) {
|
|
33
|
+
// @ts-expect-error
|
|
34
|
+
const validate = refs.current[i].handleValidate?.();
|
|
34
35
|
if (!validate) {
|
|
35
36
|
return;
|
|
36
37
|
}
|
|
37
38
|
}
|
|
38
|
-
}
|
|
39
|
+
}
|
|
39
40
|
props?.onSubmit?.(props.data);
|
|
40
41
|
};
|
|
41
42
|
|
|
43
|
+
useImperativeHandle(ref, () => {
|
|
44
|
+
return {
|
|
45
|
+
handleSubmit,
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
|
|
42
49
|
return (
|
|
43
50
|
<>
|
|
44
51
|
{formItems}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
52
|
+
{props.showSubmit ? (
|
|
53
|
+
<Button onClick={handleSubmit} type={"primary"} variant={"fill"} block>
|
|
54
|
+
{props.submitText}
|
|
55
|
+
</Button>
|
|
56
|
+
) : (
|
|
57
|
+
<></>
|
|
58
|
+
)}
|
|
48
59
|
</>
|
|
49
60
|
);
|
|
50
|
-
};
|
|
61
|
+
});
|
|
51
62
|
|
|
52
63
|
Form.defaultProps = FormDefaultProps;
|
|
53
64
|
|
|
@@ -12,6 +12,7 @@ import styles, {
|
|
|
12
12
|
const FormItem = forwardRef((props: RedsFormItem, ref) => {
|
|
13
13
|
const themeColor = useThemeColor();
|
|
14
14
|
const [warning, setWarning] = useState("");
|
|
15
|
+
|
|
15
16
|
/**
|
|
16
17
|
* 提交前校验
|
|
17
18
|
*/
|
|
@@ -41,16 +42,20 @@ const FormItem = forwardRef((props: RedsFormItem, ref) => {
|
|
|
41
42
|
useImperativeHandle(ref, () => ({
|
|
42
43
|
handleValidate,
|
|
43
44
|
}));
|
|
44
|
-
|
|
45
45
|
return (
|
|
46
46
|
<View style={[computedFormItemStyle(props, themeColor), props.styles]}>
|
|
47
47
|
{/** label */}
|
|
48
|
-
<View style={computedLabelContainerStyle(props)}>
|
|
48
|
+
<View style={[computedLabelContainerStyle(props), props.labelStyle]}>
|
|
49
49
|
<View style={{ position: "relative" }}>
|
|
50
|
-
|
|
50
|
+
{props?.LabelComponent ? (
|
|
51
|
+
props?.LabelComponent
|
|
52
|
+
) : (
|
|
53
|
+
<Text style={[computedLabelStyle(themeColor), props.labelTextStyle]}>{props.label}</Text>
|
|
54
|
+
)}
|
|
51
55
|
{props.required ? <Text style={styles(themeColor).require}>{"*"}</Text> : <></>}
|
|
52
56
|
</View>
|
|
53
57
|
</View>
|
|
58
|
+
|
|
54
59
|
{/** formItem插槽 */}
|
|
55
60
|
<View style={[computedChildrenStyle(props), props.formItemSlotStyles]}>
|
|
56
61
|
{props.children}
|
|
@@ -1,15 +1,28 @@
|
|
|
1
1
|
import React, { useRef, useEffect, useState } from "react";
|
|
2
2
|
import { View, Text, StyleSheet, FlatList, ScrollView } from "react-native";
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
Form,
|
|
5
|
+
FormItem,
|
|
6
|
+
CheckBoxGroup,
|
|
7
|
+
CheckBox,
|
|
8
|
+
FormType,
|
|
9
|
+
Rate,
|
|
10
|
+
Stepper,
|
|
11
|
+
RadioGroup,
|
|
12
|
+
Radio,
|
|
13
|
+
Button,
|
|
14
|
+
} from "@xhs/reds-rn-next";
|
|
4
15
|
|
|
5
16
|
export default function App() {
|
|
6
17
|
const [formData, setFormData] = useState({
|
|
7
18
|
rate: 0,
|
|
8
19
|
stepper: 3,
|
|
9
|
-
radio: "
|
|
20
|
+
radio: "",
|
|
10
21
|
checkbox: [1, 2, 3],
|
|
11
22
|
});
|
|
12
23
|
|
|
24
|
+
const formRef = useRef();
|
|
25
|
+
|
|
13
26
|
const [formRules, setFormRules] = useState({
|
|
14
27
|
rate: [{ validator: (val: any) => val <= 4, message: "值不能超过4" }],
|
|
15
28
|
stepper: [{ validator: (val: any) => val <= 3, message: "值不能大于3" }],
|
|
@@ -24,9 +37,10 @@ export default function App() {
|
|
|
24
37
|
console.log("handleSubmit", value);
|
|
25
38
|
};
|
|
26
39
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
40
|
+
const handleSubmitCustom = () => {
|
|
41
|
+
// @ts-expect-error
|
|
42
|
+
formRef?.current?.handleSubmit?.();
|
|
43
|
+
};
|
|
30
44
|
|
|
31
45
|
return (
|
|
32
46
|
<ScrollView style={{ paddingHorizontal: 16 }}>
|
|
@@ -36,7 +50,6 @@ export default function App() {
|
|
|
36
50
|
<Rate
|
|
37
51
|
value={formData.rate}
|
|
38
52
|
onChange={(value) => {
|
|
39
|
-
console.log("Rate", value);
|
|
40
53
|
setFormData((data) => ({ ...data, ...{ rate: value } }));
|
|
41
54
|
}}
|
|
42
55
|
/>
|
|
@@ -47,7 +60,7 @@ export default function App() {
|
|
|
47
60
|
onChange={(value) => setFormData((data) => ({ ...data, ...{ stepper: value } }))}
|
|
48
61
|
/>
|
|
49
62
|
</FormItem>
|
|
50
|
-
<FormItem label="radio输入" name="radio" value={formData.radio} key="radio">
|
|
63
|
+
<FormItem label="radio输入" name="radio" value={formData.radio} key="radio" required>
|
|
51
64
|
<RadioGroup
|
|
52
65
|
modelValue={formData.radio}
|
|
53
66
|
onChange={(value: string | number) => setFormData((data) => ({ ...data, ...{ radio: value as string } }))}
|
|
@@ -136,6 +149,49 @@ export default function App() {
|
|
|
136
149
|
</CheckBoxGroup>
|
|
137
150
|
</FormItem>
|
|
138
151
|
</Form>
|
|
152
|
+
|
|
153
|
+
<Text>部分垂直布局</Text>
|
|
154
|
+
<Form data={formData} rules={formRules} onSubmit={handleSubmit} showSubmit={false} ref={formRef}>
|
|
155
|
+
<FormItem label="rate" name="rate" value={formData.rate} required key="rate" layout={FormType.LAYOUT.VERTICAL}>
|
|
156
|
+
<Rate value={formData.rate} onChange={(value) => setFormData((data) => ({ ...data, ...{ rate: value } }))} />
|
|
157
|
+
</FormItem>
|
|
158
|
+
<FormItem label="stepper" name="stepper" value={formData.stepper} required key="stepper">
|
|
159
|
+
<Stepper
|
|
160
|
+
value={formData.stepper}
|
|
161
|
+
onChange={(value) => setFormData((data) => ({ ...data, ...{ stepper: value } }))}
|
|
162
|
+
/>
|
|
163
|
+
</FormItem>
|
|
164
|
+
<FormItem label="radio输入" name="radio" value={formData.radio} key="radio">
|
|
165
|
+
<RadioGroup
|
|
166
|
+
modelValue={formData.radio}
|
|
167
|
+
onChange={(value: string | number) => setFormData((data) => ({ ...data, ...{ radio: value as string } }))}
|
|
168
|
+
>
|
|
169
|
+
<Radio name="A">选项</Radio>
|
|
170
|
+
<Radio name="B">选项</Radio>
|
|
171
|
+
<Radio name="C">选项</Radio>
|
|
172
|
+
</RadioGroup>
|
|
173
|
+
</FormItem>
|
|
174
|
+
<FormItem
|
|
175
|
+
label="checkbox输入"
|
|
176
|
+
name="checkbox"
|
|
177
|
+
value={formData.checkbox}
|
|
178
|
+
key="checkbox"
|
|
179
|
+
LabelComponent={<Text>自定义label</Text>}
|
|
180
|
+
>
|
|
181
|
+
<CheckBoxGroup
|
|
182
|
+
onChange={(val) => setFormData((data) => ({ ...data, checkbox: val as number[] }))}
|
|
183
|
+
value={formData.checkbox}
|
|
184
|
+
>
|
|
185
|
+
<CheckBox label="多选" value={1} />
|
|
186
|
+
<CheckBox label="多选" value={2} />
|
|
187
|
+
<CheckBox label="多选" value={3} />
|
|
188
|
+
<CheckBox label="多选" value={4} />
|
|
189
|
+
</CheckBoxGroup>
|
|
190
|
+
</FormItem>
|
|
191
|
+
</Form>
|
|
192
|
+
<Button onClick={handleSubmitCustom} type={"primary"} variant={"fill"} block>
|
|
193
|
+
自定义提交按钮
|
|
194
|
+
</Button>
|
|
139
195
|
</ScrollView>
|
|
140
196
|
);
|
|
141
197
|
}
|
|
@@ -10,13 +10,15 @@ import BaseDemo from "!!raw-loader!../demo/index.tsx";
|
|
|
10
10
|
|
|
11
11
|
### Props
|
|
12
12
|
|
|
13
|
-
| 属性
|
|
14
|
-
|
|
|
15
|
-
| data
|
|
16
|
-
| rules
|
|
17
|
-
| children
|
|
18
|
-
| layout
|
|
19
|
-
| align
|
|
13
|
+
| 属性 | 描述 | 类型 | 默认值 |
|
|
14
|
+
| ---------- | ------------ | ---------------------------- | ----------------- |
|
|
15
|
+
| data | 表单数据 | FormData | |
|
|
16
|
+
| rules | 表单校验规则 | FormRules | |
|
|
17
|
+
| children | FormItem节点 | ReactNode[] | ReactNode | |
|
|
18
|
+
| layout | 布局 | LAYOUT | LAYOUT.HORIZONTAL |
|
|
19
|
+
| align | 方向 | ALIGN | ALIGN.LEFT |
|
|
20
|
+
| showSubmit | 是否需要按钮 | boolean | true |
|
|
21
|
+
| submitText | 提交按钮文案 | string | 提交 |
|
|
20
22
|
|
|
21
23
|
### Events
|
|
22
24
|
|