@ant-design/pro-components 3.1.2-0 → 3.1.3-1
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/dist/pro-components.min.js +1 -1
- package/es/card/components/Actions/style.js +1 -0
- package/es/card/components/Card/index.js +17 -3
- package/es/card/components/CheckCard/style.js +1 -0
- package/es/card/components/Divider/style.js +1 -0
- package/es/card/components/Loading/style.js +1 -0
- package/es/card/components/Operation/style.js +1 -0
- package/es/card/components/Statistic/style.js +1 -0
- package/es/card/components/StatisticCard/style.js +1 -0
- package/es/descriptions/useFetchData.js +17 -2
- package/es/field/components/Cascader/index.js +0 -2
- package/es/field/components/Checkbox/index.js +2 -0
- package/es/field/components/Code/index.js +1 -8
- package/es/field/components/ColorPicker/index.d.ts +1 -1
- package/es/field/components/DatePicker/index.js +3 -5
- package/es/field/components/FromNow/index.d.ts +1 -0
- package/es/field/components/FromNow/index.js +2 -2
- package/es/field/components/Money/index.js +0 -1
- package/es/field/components/Progress/index.js +1 -2
- package/es/field/components/RangePicker/index.js +3 -11
- package/es/field/components/Select/LightSelect/index.d.ts +2 -0
- package/es/field/components/Select/LightSelect/index.js +3 -1
- package/es/field/components/Select/index.d.ts +1 -1
- package/es/field/components/Select/index.js +1 -2
- package/es/field/components/Switch/index.js +2 -1
- package/es/field/components/TimePicker/index.d.ts +2 -0
- package/es/field/components/TimePicker/index.js +9 -8
- package/es/field/components/TreeSelect/index.js +2 -2
- package/es/form/BaseForm/BaseForm.js +16 -2
- package/es/form/BaseForm/LightWrapper/index.js +7 -1
- package/es/form/BaseForm/LightWrapper/style.js +2 -0
- package/es/form/BaseForm/Submitter/index.js +2 -2
- package/es/form/components/DatePicker/DateTimePicker.js +1 -0
- package/es/form/components/DateRangePicker/DateTimeRangePicker.js +1 -3
- package/es/form/components/Digit/DigitRange.d.ts +1 -1
- package/es/form/components/Field/index.d.ts +0 -1
- package/es/form/components/Field/index.js +3 -5
- package/es/form/components/FormItem/FormItemRender/index.d.ts +1 -0
- package/es/form/components/FormItem/Group/index.js +17 -3
- package/es/form/components/FormItem/Group/style.js +1 -0
- package/es/form/components/FormItem/index.d.ts +1 -0
- package/es/form/components/FormItem/index.js +16 -31
- package/es/form/components/FormItem/warpField.js +1 -0
- package/es/form/components/List/style.js +1 -0
- package/es/form/helpers/grid.d.ts +7 -3
- package/es/form/helpers/grid.js +19 -4
- package/es/form/layouts/DrawerForm/index.js +16 -2
- package/es/form/layouts/DrawerForm/style.js +1 -0
- package/es/form/layouts/LightFilter/index.js +7 -4
- package/es/form/layouts/LightFilter/style.js +1 -0
- package/es/form/layouts/LoginForm/style.js +1 -0
- package/es/form/layouts/LoginFormPage/style.js +1 -0
- package/es/form/layouts/ModalForm/index.js +17 -2
- package/es/form/layouts/QueryFilter/index.js +17 -3
- package/es/form/layouts/QueryFilter/style.js +1 -0
- package/es/form/layouts/StepsForm/index.js +16 -2
- package/es/form/layouts/StepsForm/style.js +1 -0
- package/es/layout/ProLayout.js +33 -5
- package/es/layout/components/AppsLogoComponents/style/index.js +1 -0
- package/es/layout/components/CollapsedIcon/style.js +1 -0
- package/es/layout/components/GlobalFooter/style.js +1 -0
- package/es/layout/components/GridContent/style.js +1 -0
- package/es/layout/components/SettingDrawer/index.js +33 -5
- package/es/layout/components/TopNavHeader/style.js +1 -0
- package/es/list/ListView.js +3 -0
- package/es/provider/index.d.ts +0 -4
- package/es/provider/useStyle/index.js +1 -2
- package/es/table/components/Alert/style.js +1 -0
- package/es/table/components/ColumnSetting/style.js +1 -0
- package/es/table/components/DragSortTable/style.js +1 -0
- package/es/table/components/ListToolBar/style.js +1 -0
- package/es/table/useFetchData.js +16 -2
- package/es/utils/components/DropdownFooter/style.js +1 -0
- package/es/utils/components/FieldLabel/index.js +3 -3
- package/es/utils/components/FieldLabel/style.js +32 -4
- package/es/utils/components/FilterDropdown/index.js +1 -1
- package/es/utils/components/FilterDropdown/style.js +10 -0
- package/es/utils/components/InlineErrorFormItem/style.js +1 -0
- package/es/utils/components/LabelIconTip/style.js +1 -0
- package/es/utils/pickProProps/index.js +1 -1
- package/es/utils/useSelection.js +27 -2
- package/lib/card/components/Actions/style.js +1 -0
- package/lib/card/components/Card/index.js +16 -2
- package/lib/card/components/CheckCard/style.js +1 -0
- package/lib/card/components/Divider/style.js +1 -0
- package/lib/card/components/Loading/style.js +1 -0
- package/lib/card/components/Operation/style.js +1 -0
- package/lib/card/components/Statistic/style.js +1 -0
- package/lib/card/components/StatisticCard/style.js +1 -0
- package/lib/descriptions/useFetchData.js +17 -2
- package/lib/field/components/Cascader/index.js +0 -2
- package/lib/field/components/Checkbox/index.js +2 -0
- package/lib/field/components/Code/index.js +1 -8
- package/lib/field/components/DatePicker/index.js +3 -5
- package/lib/field/components/FromNow/index.d.ts +1 -0
- package/lib/field/components/FromNow/index.js +2 -2
- package/lib/field/components/Money/index.js +0 -1
- package/lib/field/components/Progress/index.js +1 -2
- package/lib/field/components/RangePicker/index.js +3 -11
- package/lib/field/components/Select/LightSelect/index.d.ts +2 -0
- package/lib/field/components/Select/LightSelect/index.js +3 -1
- package/lib/field/components/Select/index.js +1 -2
- package/lib/field/components/Switch/index.js +2 -1
- package/lib/field/components/TimePicker/index.d.ts +2 -0
- package/lib/field/components/TimePicker/index.js +9 -8
- package/lib/field/components/TreeSelect/index.js +2 -2
- package/lib/form/BaseForm/BaseForm.js +16 -2
- package/lib/form/BaseForm/LightWrapper/index.js +7 -1
- package/lib/form/BaseForm/LightWrapper/style.js +2 -0
- package/lib/form/BaseForm/Submitter/index.js +2 -2
- package/lib/form/components/DatePicker/DateTimePicker.js +1 -0
- package/lib/form/components/DateRangePicker/DateTimeRangePicker.js +1 -3
- package/lib/form/components/Field/index.d.ts +0 -1
- package/lib/form/components/Field/index.js +1 -3
- package/lib/form/components/FormItem/FormItemRender/index.d.ts +1 -0
- package/lib/form/components/FormItem/Group/index.js +16 -2
- package/lib/form/components/FormItem/Group/style.js +1 -0
- package/lib/form/components/FormItem/index.d.ts +1 -0
- package/lib/form/components/FormItem/index.js +16 -31
- package/lib/form/components/FormItem/warpField.js +1 -0
- package/lib/form/components/List/style.js +1 -0
- package/lib/form/helpers/grid.d.ts +7 -3
- package/lib/form/helpers/grid.js +20 -4
- package/lib/form/layouts/DrawerForm/index.js +16 -2
- package/lib/form/layouts/DrawerForm/style.js +1 -0
- package/lib/form/layouts/LightFilter/index.js +7 -4
- package/lib/form/layouts/LightFilter/style.js +1 -0
- package/lib/form/layouts/LoginForm/style.js +1 -0
- package/lib/form/layouts/LoginFormPage/style.js +1 -0
- package/lib/form/layouts/ModalForm/index.js +17 -2
- package/lib/form/layouts/QueryFilter/index.js +16 -2
- package/lib/form/layouts/QueryFilter/style.js +1 -0
- package/lib/form/layouts/StepsForm/index.js +16 -2
- package/lib/form/layouts/StepsForm/style.js +1 -0
- package/lib/layout/ProLayout.js +32 -4
- package/lib/layout/components/AppsLogoComponents/style/index.js +1 -0
- package/lib/layout/components/CollapsedIcon/style.js +1 -0
- package/lib/layout/components/GlobalFooter/style.js +1 -0
- package/lib/layout/components/GridContent/style.js +1 -0
- package/lib/layout/components/SettingDrawer/index.js +32 -4
- package/lib/layout/components/TopNavHeader/style.js +1 -0
- package/lib/list/ListView.js +3 -0
- package/lib/provider/index.d.ts +0 -4
- package/lib/provider/useStyle/index.js +1 -2
- package/lib/table/components/Alert/style.js +1 -0
- package/lib/table/components/ColumnSetting/style.js +1 -0
- package/lib/table/components/DragSortTable/style.js +1 -0
- package/lib/table/components/ListToolBar/style.js +1 -0
- package/lib/table/useFetchData.js +16 -2
- package/lib/utils/components/DropdownFooter/style.js +1 -0
- package/lib/utils/components/FieldLabel/index.js +3 -3
- package/lib/utils/components/FieldLabel/style.js +32 -4
- package/lib/utils/components/FilterDropdown/index.js +1 -1
- package/lib/utils/components/FilterDropdown/style.js +10 -0
- package/lib/utils/components/InlineErrorFormItem/style.js +1 -0
- package/lib/utils/components/LabelIconTip/style.js +1 -0
- package/lib/utils/pickProProps/index.js +1 -1
- package/lib/utils/useSelection.js +26 -1
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@ import { omit, useControlledState } from '@rc-component/util';
|
|
|
3
3
|
import { useUrlSearchParams } from '@umijs/use-params';
|
|
4
4
|
import { Alert, Button, Divider, Drawer, List, Switch, message } from 'antd';
|
|
5
5
|
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
6
|
-
import { isBrowser, merge } from "../../../utils";
|
|
6
|
+
import { isBrowser, merge, useRefFunction } from "../../../utils";
|
|
7
7
|
import { defaultSettings } from "../../defaultSettings";
|
|
8
8
|
import { gLocaleObject, getLanguage } from "../../locales";
|
|
9
9
|
import { genStringToTheme } from "../../utils/utils";
|
|
@@ -144,25 +144,53 @@ export const SettingDrawer = props => {
|
|
|
144
144
|
} = props;
|
|
145
145
|
const firstRender = useRef(true);
|
|
146
146
|
const [open, setOpenInner] = useControlledState(false, props.collapse);
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* 使用 useRefFunction 包装回调,确保引用稳定
|
|
150
|
+
*/
|
|
151
|
+
const onCollapseChangeCallback = useRefFunction(o => {
|
|
152
|
+
props.onCollapseChange?.(o);
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* 使用 queueMicrotask 延迟回调调用,避免在渲染阶段调用外部回调导致的 React 警告
|
|
157
|
+
* "Cannot update a component while rendering a different component"
|
|
158
|
+
*/
|
|
147
159
|
const setOpen = useCallback(updater => {
|
|
148
160
|
setOpenInner(prev => {
|
|
149
161
|
const next = typeof updater === 'function' ? updater(prev) : updater;
|
|
150
|
-
|
|
162
|
+
queueMicrotask(() => {
|
|
163
|
+
onCollapseChangeCallback(next);
|
|
164
|
+
});
|
|
151
165
|
return next;
|
|
152
166
|
});
|
|
153
|
-
}, [
|
|
167
|
+
}, [onCollapseChangeCallback]);
|
|
154
168
|
const [language, setLanguage] = useState(getLanguage());
|
|
155
169
|
const [urlParams, setUrlParams] = useUrlSearchParams({}, {
|
|
156
170
|
disabled: disableUrlParams
|
|
157
171
|
});
|
|
158
172
|
const [settingState, setSettingStateInner] = useControlledState(() => getParamsFromUrl(urlParams, propsSettings || propsDefaultSettings), propsSettings);
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* 使用 useRefFunction 包装回调,确保引用稳定
|
|
176
|
+
*/
|
|
177
|
+
const onSettingChangeCallback = useRefFunction(settings => {
|
|
178
|
+
onSettingChange?.(settings);
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* 使用 queueMicrotask 延迟回调调用,避免在渲染阶段调用外部回调导致的 React 警告
|
|
183
|
+
* "Cannot update a component while rendering a different component"
|
|
184
|
+
*/
|
|
159
185
|
const setSettingState = useCallback(updater => {
|
|
160
186
|
setSettingStateInner(prev => {
|
|
161
187
|
const next = typeof updater === 'function' ? updater(prev) : updater;
|
|
162
|
-
|
|
188
|
+
queueMicrotask(() => {
|
|
189
|
+
onSettingChangeCallback(next);
|
|
190
|
+
});
|
|
163
191
|
return next;
|
|
164
192
|
});
|
|
165
|
-
}, [
|
|
193
|
+
}, [onSettingChangeCallback]);
|
|
166
194
|
const {
|
|
167
195
|
navTheme,
|
|
168
196
|
colorPrimary,
|
package/es/list/ListView.js
CHANGED
|
@@ -169,6 +169,9 @@ function ListView(props) {
|
|
|
169
169
|
onChange: /*#__PURE__*/React.isValidElement(checkboxDom) ? changeChecked => {
|
|
170
170
|
return checkboxDom?.props?.onChange({
|
|
171
171
|
nativeEvent: {},
|
|
172
|
+
target: {
|
|
173
|
+
checked: changeChecked
|
|
174
|
+
},
|
|
172
175
|
changeChecked
|
|
173
176
|
});
|
|
174
177
|
} : undefined
|
package/es/provider/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { setAlpha, useStyle as useAntdStyle } from "../../../provider";
|
|
|
2
2
|
const genProStyle = token => {
|
|
3
3
|
return {
|
|
4
4
|
[token.componentCls]: {
|
|
5
|
+
boxSizing: 'border-box',
|
|
5
6
|
marginBlockEnd: 16,
|
|
6
7
|
backgroundColor: setAlpha(token.colorTextBase, 0.02),
|
|
7
8
|
borderRadius: token.borderRadius,
|
package/es/table/useFetchData.js
CHANGED
|
@@ -61,13 +61,27 @@ const useFetchData = (getData, defaultData, options) => {
|
|
|
61
61
|
*/
|
|
62
62
|
const tableLoadingValue = typeof options?.loading === 'object' ? options?.loading?.spinning : options?.loading;
|
|
63
63
|
const [tableLoading, setTableLoadingInner] = useControlledState(false, tableLoadingValue);
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* 使用 useRefFunction 包装回调,确保引用稳定
|
|
67
|
+
*/
|
|
68
|
+
const onLoadingChange = useRefFunction(loading => {
|
|
69
|
+
options?.onLoadingChange?.(loading);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* 包装 setTableLoading,使用 queueMicrotask 延迟回调调用
|
|
74
|
+
* 避免在渲染阶段调用外部回调导致的 React 警告
|
|
75
|
+
*/
|
|
64
76
|
const setTableLoading = useCallback(updater => {
|
|
65
77
|
setTableLoadingInner(prev => {
|
|
66
78
|
const next = typeof updater === 'function' ? updater(prev) : updater;
|
|
67
|
-
|
|
79
|
+
queueMicrotask(() => {
|
|
80
|
+
onLoadingChange(next);
|
|
81
|
+
});
|
|
68
82
|
return next;
|
|
69
83
|
});
|
|
70
|
-
}, [
|
|
84
|
+
}, [onLoadingChange]);
|
|
71
85
|
|
|
72
86
|
/**
|
|
73
87
|
* 表示页面信息的类型
|
|
@@ -28,7 +28,6 @@ const FieldLabelFunction = (props, ref) => {
|
|
|
28
28
|
} = ConfigProvider?.useConfig?.() || {
|
|
29
29
|
componentSize: 'middle'
|
|
30
30
|
};
|
|
31
|
-
const size = componentSize;
|
|
32
31
|
const {
|
|
33
32
|
getPrefixCls
|
|
34
33
|
} = useContext(ConfigProvider.ConfigContext);
|
|
@@ -113,10 +112,11 @@ const FieldLabelFunction = (props, ref) => {
|
|
|
113
112
|
return aLabel || placeholder;
|
|
114
113
|
};
|
|
115
114
|
return wrapSSR( /*#__PURE__*/_jsxs("span", {
|
|
116
|
-
className: clsx(prefixCls, hashId, `${prefixCls}-${props.size ??
|
|
115
|
+
className: clsx(prefixCls, hashId, `${prefixCls}-${props.size ?? componentSize ?? 'middle'}`, {
|
|
116
|
+
[`${prefixCls}-${variant || 'borderless'}-active`]: (Array.isArray(value) ? value.length > 0 : !!value) || value === 0,
|
|
117
117
|
[`${prefixCls}-active`]: (Array.isArray(value) ? value.length > 0 : !!value) || value === 0,
|
|
118
118
|
[`${prefixCls}-disabled`]: disabled,
|
|
119
|
-
[`${prefixCls}
|
|
119
|
+
[`${prefixCls}-${variant}`]: variant,
|
|
120
120
|
[`${prefixCls}-allow-clear`]: allowClear
|
|
121
121
|
}, className),
|
|
122
122
|
style: style,
|
|
@@ -2,6 +2,7 @@ import { useStyle as useAntdStyle } from "../../../provider";
|
|
|
2
2
|
const genProStyle = token => {
|
|
3
3
|
return {
|
|
4
4
|
[token.componentCls]: {
|
|
5
|
+
boxSizing: 'border-box',
|
|
5
6
|
display: 'inline-flex',
|
|
6
7
|
gap: token.marginXXS,
|
|
7
8
|
alignItems: 'center',
|
|
@@ -10,7 +11,8 @@ const genProStyle = token => {
|
|
|
10
11
|
paddingInline: 8,
|
|
11
12
|
fontSize: token.fontSize,
|
|
12
13
|
lineHeight: '30px',
|
|
13
|
-
borderRadius:
|
|
14
|
+
borderRadius: token.borderRadius,
|
|
15
|
+
cornerShape: 'squircle',
|
|
14
16
|
cursor: 'pointer',
|
|
15
17
|
'&:hover': {
|
|
16
18
|
backgroundColor: token.colorBgTextHover
|
|
@@ -18,7 +20,6 @@ const genProStyle = token => {
|
|
|
18
20
|
'&-active': {
|
|
19
21
|
paddingBlock: 0,
|
|
20
22
|
paddingInline: 8,
|
|
21
|
-
backgroundColor: token.colorBgTextHover,
|
|
22
23
|
[`&${token.componentCls}-allow-clear:hover:not(${token.componentCls}-disabled)`]: {
|
|
23
24
|
[`${token.componentCls}-arrow`]: {
|
|
24
25
|
display: 'none'
|
|
@@ -83,12 +84,39 @@ const genProStyle = token => {
|
|
|
83
84
|
fontSize: '6px'
|
|
84
85
|
}
|
|
85
86
|
},
|
|
86
|
-
'&-
|
|
87
|
+
'&-outlined': {
|
|
87
88
|
height: '32px',
|
|
88
89
|
paddingBlock: 0,
|
|
89
90
|
paddingInline: 8,
|
|
90
91
|
border: `${token.lineWidth}px solid ${token.colorBorder}`,
|
|
91
|
-
borderRadius:
|
|
92
|
+
borderRadius: token.borderRadius,
|
|
93
|
+
'&-active': {
|
|
94
|
+
backgroundColor: 'none'
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
'&-borderless': {
|
|
98
|
+
height: '32px',
|
|
99
|
+
'&-active': {
|
|
100
|
+
backgroundColor: token.colorBgTextHover
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
'&-filled': {
|
|
104
|
+
height: '32px',
|
|
105
|
+
backgroundColor: token.colorBgTextHover,
|
|
106
|
+
border: `${token.lineWidth}px solid transparent`,
|
|
107
|
+
'&:hover': {
|
|
108
|
+
border: `${token.lineWidth}px solid ${token.colorPrimary}`,
|
|
109
|
+
backgroundColor: token.colorBgTextHover
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
'&-underlined': {
|
|
113
|
+
height: '32px',
|
|
114
|
+
borderRadius: 0,
|
|
115
|
+
borderBottom: `${token.lineWidth}px solid ${token.colorSplit}`,
|
|
116
|
+
'&:hover': {
|
|
117
|
+
borderBottom: `${token.lineWidth}px solid ${token.colorPrimary}`,
|
|
118
|
+
backgroundColor: token.colorBgTextHover
|
|
119
|
+
}
|
|
92
120
|
},
|
|
93
121
|
'&-bordered&-small': {
|
|
94
122
|
height: '24px',
|
|
@@ -4,6 +4,16 @@ const genProStyle = token => {
|
|
|
4
4
|
[`${token.componentCls}-label`]: {
|
|
5
5
|
cursor: 'pointer'
|
|
6
6
|
},
|
|
7
|
+
[`${token.componentCls}-label-bordered`]: {
|
|
8
|
+
display: 'inline-flex',
|
|
9
|
+
alignItems: 'center',
|
|
10
|
+
height: token.controlHeight,
|
|
11
|
+
paddingBlock: 0,
|
|
12
|
+
paddingInline: token.paddingSM,
|
|
13
|
+
border: `${token.lineWidth}px solid ${token.colorBorder}`,
|
|
14
|
+
borderRadius: token.borderRadius,
|
|
15
|
+
boxSizing: 'border-box'
|
|
16
|
+
},
|
|
7
17
|
[`${token.componentCls}-overlay`]: {
|
|
8
18
|
minWidth: '200px',
|
|
9
19
|
marginBlockStart: '4px'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const proFieldProps = `valueType request
|
|
1
|
+
const proFieldProps = `valueType request formItemRender render text formItemProps valueEnum`;
|
|
2
2
|
const proFormProps = `fieldProps isDefaultDom groupProps contentRender submitterProps submitter`;
|
|
3
3
|
export function pickProProps(props, customValueType = false) {
|
|
4
4
|
const propList = `${proFieldProps} ${proFormProps}`.split(/[\s\n]+/);
|
package/es/utils/useSelection.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Checkbox } from 'antd';
|
|
1
|
+
import { Checkbox, Radio } from 'antd';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
4
|
function useSelection(config, rowSelection) {
|
|
@@ -18,6 +18,20 @@ function useSelection(config, rowSelection) {
|
|
|
18
18
|
const selectedKeySet = React.useMemo(() => new Set(innerKeys), [innerKeys]);
|
|
19
19
|
const toggleKey = React.useCallback((key, record, checked) => {
|
|
20
20
|
setInnerKeys(prevKeys => {
|
|
21
|
+
if (rowSelection?.type === 'radio') {
|
|
22
|
+
const nextKeys = [key];
|
|
23
|
+
const selectedRows = [record];
|
|
24
|
+
rowSelection?.onChange?.(nextKeys, selectedRows, {
|
|
25
|
+
type: 'single',
|
|
26
|
+
selectedRows,
|
|
27
|
+
selectedRowKeys: nextKeys
|
|
28
|
+
});
|
|
29
|
+
rowSelection?.onSelect?.(record, checked, selectedRows, {});
|
|
30
|
+
if (!controlledKeys) {
|
|
31
|
+
return nextKeys;
|
|
32
|
+
}
|
|
33
|
+
return prevKeys;
|
|
34
|
+
}
|
|
21
35
|
const prevSet = new Set(prevKeys);
|
|
22
36
|
const next = new Set(prevSet);
|
|
23
37
|
if (checked) {
|
|
@@ -43,10 +57,21 @@ function useSelection(config, rowSelection) {
|
|
|
43
57
|
}, [data, getRowKey, rowSelection, controlledKeys]);
|
|
44
58
|
const selectItemRender = React.useCallback(columns => {
|
|
45
59
|
void columns;
|
|
60
|
+
if (!rowSelection) {
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
46
63
|
return [{
|
|
47
64
|
render: (_text, record, index) => {
|
|
48
65
|
const key = getRowKey(record, index);
|
|
49
66
|
const checked = selectedKeySet.has(key);
|
|
67
|
+
if (rowSelection?.type === 'radio') {
|
|
68
|
+
return /*#__PURE__*/_jsx(Radio, {
|
|
69
|
+
checked: checked,
|
|
70
|
+
onChange: e => {
|
|
71
|
+
toggleKey(key, record, e.target.checked);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
50
75
|
return /*#__PURE__*/_jsx(Checkbox, {
|
|
51
76
|
checked: checked,
|
|
52
77
|
onChange: e => {
|
|
@@ -55,7 +80,7 @@ function useSelection(config, rowSelection) {
|
|
|
55
80
|
});
|
|
56
81
|
}
|
|
57
82
|
}];
|
|
58
|
-
}, [getRowKey, selectedKeySet, toggleKey]);
|
|
83
|
+
}, [getRowKey, selectedKeySet, toggleKey, rowSelection?.type]);
|
|
59
84
|
return [selectItemRender, selectedKeySet];
|
|
60
85
|
}
|
|
61
86
|
export default useSelection;
|
|
@@ -68,13 +68,27 @@ const Card = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
|
|
|
68
68
|
xxl: false
|
|
69
69
|
};
|
|
70
70
|
const [collapsed, setCollapsedInner] = (0, _util.useControlledState)(defaultCollapsed, controlCollapsed);
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* 使用 useRefFunction 包装回调,确保引用稳定
|
|
74
|
+
*/
|
|
75
|
+
const onCollapseCallback = (0, _utils.useRefFunction)(c => {
|
|
76
|
+
onCollapse?.(c);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* 使用 queueMicrotask 延迟回调调用,避免在渲染阶段调用外部回调导致的 React 警告
|
|
81
|
+
* "Cannot update a component while rendering a different component"
|
|
82
|
+
*/
|
|
71
83
|
const setCollapsed = (0, _react.useCallback)(updater => {
|
|
72
84
|
setCollapsedInner(prev => {
|
|
73
85
|
const next = typeof updater === 'function' ? updater(prev) : updater;
|
|
74
|
-
|
|
86
|
+
queueMicrotask(() => {
|
|
87
|
+
onCollapseCallback(next);
|
|
88
|
+
});
|
|
75
89
|
return next;
|
|
76
90
|
});
|
|
77
|
-
}, [
|
|
91
|
+
}, [onCollapseCallback]);
|
|
78
92
|
|
|
79
93
|
// 顺序决定如何进行响应式取值,按最大响应值依次取值,请勿修改。
|
|
80
94
|
const responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _util = require("@rc-component/util");
|
|
8
8
|
var _react = require("react");
|
|
9
|
+
var _utils = require("../utils");
|
|
9
10
|
const useFetchData = (getData, options) => {
|
|
10
11
|
const {
|
|
11
12
|
onRequestError,
|
|
@@ -24,13 +25,27 @@ const useFetchData = (getData, options) => {
|
|
|
24
25
|
});
|
|
25
26
|
}, [onDataSourceChange]);
|
|
26
27
|
const [loading, setLoadingInner] = (0, _util.useControlledState)(options?.loading, options?.loading);
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* 使用 useRefFunction 包装回调,确保引用稳定
|
|
31
|
+
*/
|
|
32
|
+
const onLoadingChange = (0, _utils.useRefFunction)(l => {
|
|
33
|
+
options?.onLoadingChange?.(l);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* 包装 setLoading,使用 queueMicrotask 延迟回调调用
|
|
38
|
+
* 避免在渲染阶段调用外部回调导致的 React 警告
|
|
39
|
+
*/
|
|
27
40
|
const setLoading = (0, _react.useCallback)(updater => {
|
|
28
41
|
setLoadingInner(prev => {
|
|
29
42
|
const next = typeof updater === 'function' ? updater(prev) : updater;
|
|
30
|
-
|
|
43
|
+
queueMicrotask(() => {
|
|
44
|
+
onLoadingChange(next);
|
|
45
|
+
});
|
|
31
46
|
return next;
|
|
32
47
|
});
|
|
33
|
-
}, [
|
|
48
|
+
}, [onLoadingChange]);
|
|
34
49
|
const updateDataAndLoading = data => {
|
|
35
50
|
setEntity(data);
|
|
36
51
|
setLoading(false);
|
|
@@ -20,7 +20,6 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
20
20
|
* @param ref
|
|
21
21
|
*/
|
|
22
22
|
const FieldCascader = ({
|
|
23
|
-
radioType,
|
|
24
23
|
placeholder,
|
|
25
24
|
formItemRender,
|
|
26
25
|
mode,
|
|
@@ -85,7 +84,6 @@ const FieldCascader = ({
|
|
|
85
84
|
if (mode === 'edit') {
|
|
86
85
|
const fieldProps = rest.fieldProps || {};
|
|
87
86
|
let dom = /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Cascader, {
|
|
88
|
-
variant: !light ? variant : 'borderless',
|
|
89
87
|
ref: cascaderRef,
|
|
90
88
|
open: open,
|
|
91
89
|
suffixIcon: loading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.LoadingOutlined, {}) : undefined,
|
|
@@ -107,6 +107,7 @@ const FieldCheckbox = ({
|
|
|
107
107
|
if (mode === 'edit') {
|
|
108
108
|
const {
|
|
109
109
|
fieldNames,
|
|
110
|
+
variant,
|
|
110
111
|
...restFieldProps
|
|
111
112
|
} = rest.fieldProps || {};
|
|
112
113
|
const dom = wrapSSR(
|
|
@@ -114,6 +115,7 @@ const FieldCheckbox = ({
|
|
|
114
115
|
//@ts-ignore
|
|
115
116
|
(0, _jsxRuntime.jsx)(_antd.Checkbox.Group, {
|
|
116
117
|
...restFieldProps,
|
|
118
|
+
variant: variant,
|
|
117
119
|
className: (0, _clsx.clsx)(rest.fieldProps?.className, hashId, `${layoutClassName}-${layout}`, {
|
|
118
120
|
[`${layoutClassName}-error`]: status?.status === 'error',
|
|
119
121
|
[`${layoutClassName}-warning`]: status?.status === 'warning'
|
|
@@ -34,7 +34,6 @@ const FieldCode = ({
|
|
|
34
34
|
render,
|
|
35
35
|
language = 'text',
|
|
36
36
|
formItemRender,
|
|
37
|
-
plain,
|
|
38
37
|
fieldProps
|
|
39
38
|
}, ref) => {
|
|
40
39
|
const code = languageFormat(text, language);
|
|
@@ -72,17 +71,11 @@ const FieldCode = ({
|
|
|
72
71
|
}
|
|
73
72
|
if (mode === 'edit' || mode === 'update') {
|
|
74
73
|
fieldProps.value = code;
|
|
75
|
-
|
|
74
|
+
const dom = /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Input.TextArea, {
|
|
76
75
|
rows: 5,
|
|
77
76
|
...fieldProps,
|
|
78
77
|
ref: ref
|
|
79
78
|
});
|
|
80
|
-
if (plain) {
|
|
81
|
-
dom = /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Input, {
|
|
82
|
-
...fieldProps,
|
|
83
|
-
ref: ref
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
79
|
if (formItemRender) {
|
|
87
80
|
return formItemRender(code, {
|
|
88
81
|
mode,
|
|
@@ -36,12 +36,11 @@ const FieldDatePicker = ({
|
|
|
36
36
|
light,
|
|
37
37
|
render,
|
|
38
38
|
formItemRender,
|
|
39
|
-
plain,
|
|
40
39
|
showTime,
|
|
41
40
|
fieldProps,
|
|
42
41
|
picker,
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
lightLabel,
|
|
43
|
+
variant
|
|
45
44
|
}, ref) => {
|
|
46
45
|
const intl = (0, _provider.useIntl)();
|
|
47
46
|
const [open, setOpen] = (0, _react.useState)(false);
|
|
@@ -89,7 +88,6 @@ const FieldDatePicker = ({
|
|
|
89
88
|
setOpen(isOpen);
|
|
90
89
|
fieldProps?.onOpenChange?.(isOpen);
|
|
91
90
|
},
|
|
92
|
-
variant: "borderless",
|
|
93
91
|
open: open
|
|
94
92
|
}) : undefined,
|
|
95
93
|
allowClear: false,
|
|
@@ -103,7 +101,7 @@ const FieldDatePicker = ({
|
|
|
103
101
|
showTime: showTime,
|
|
104
102
|
format: format,
|
|
105
103
|
placeholder: placeholder,
|
|
106
|
-
variant:
|
|
104
|
+
variant: variant,
|
|
107
105
|
ref: ref,
|
|
108
106
|
...fieldProps,
|
|
109
107
|
value: dayValue
|
|
@@ -2,5 +2,6 @@ import React from 'react';
|
|
|
2
2
|
declare const _default: React.ForwardRefExoticComponent<import("../../../provider").BaseProFieldFC & import("../../../provider").ProRenderFieldPropsType & {
|
|
3
3
|
text: string;
|
|
4
4
|
format?: string | undefined;
|
|
5
|
+
variant?: "outlined" | "filled" | "borderless" | "underlined" | undefined;
|
|
5
6
|
} & React.RefAttributes<any>>;
|
|
6
7
|
export default _default;
|
|
@@ -21,7 +21,7 @@ _dayjs.default.extend(_relativeTime.default);
|
|
|
21
21
|
const FieldFromNow = ({
|
|
22
22
|
text,
|
|
23
23
|
mode,
|
|
24
|
-
|
|
24
|
+
variant,
|
|
25
25
|
render,
|
|
26
26
|
formItemRender,
|
|
27
27
|
format,
|
|
@@ -52,7 +52,7 @@ const FieldFromNow = ({
|
|
|
52
52
|
ref: ref,
|
|
53
53
|
placeholder: placeholder,
|
|
54
54
|
showTime: true,
|
|
55
|
-
variant:
|
|
55
|
+
variant: variant ?? fieldProps?.variant ?? 'outlined',
|
|
56
56
|
...fieldProps,
|
|
57
57
|
value: momentValue
|
|
58
58
|
});
|