@ant-design/pro-components 3.1.1-1 → 3.1.3-0

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 (165) hide show
  1. package/dist/pro-components.min.js +1 -1
  2. package/es/card/components/Card/index.js +17 -3
  3. package/es/descriptions/index.d.ts +0 -2
  4. package/es/descriptions/index.js +1 -5
  5. package/es/descriptions/useFetchData.js +17 -2
  6. package/es/field/components/Cascader/index.d.ts +3 -3
  7. package/es/field/components/Cascader/index.js +0 -2
  8. package/es/field/components/Checkbox/index.d.ts +2 -2
  9. package/es/field/components/Checkbox/index.js +2 -0
  10. package/es/field/components/Code/index.js +1 -8
  11. package/es/field/components/ColorPicker/index.d.ts +2 -2
  12. package/es/field/components/DatePicker/index.d.ts +2 -2
  13. package/es/field/components/DatePicker/index.js +3 -5
  14. package/es/field/components/FromNow/index.d.ts +1 -0
  15. package/es/field/components/FromNow/index.js +2 -2
  16. package/es/field/components/Money/index.js +0 -1
  17. package/es/field/components/Progress/index.js +1 -2
  18. package/es/field/components/Radio/index.d.ts +1 -1
  19. package/es/field/components/RangePicker/index.d.ts +2 -2
  20. package/es/field/components/RangePicker/index.js +3 -11
  21. package/es/field/components/Segmented/index.d.ts +1 -1
  22. package/es/field/components/Select/LightSelect/index.d.ts +3 -1
  23. package/es/field/components/Select/LightSelect/index.js +3 -1
  24. package/es/field/components/Select/index.d.ts +2 -2
  25. package/es/field/components/Select/index.js +1 -4
  26. package/es/field/components/Switch/index.d.ts +1 -1
  27. package/es/field/components/Switch/index.js +2 -1
  28. package/es/field/components/TimePicker/index.d.ts +2 -0
  29. package/es/field/components/TimePicker/index.js +9 -8
  30. package/es/field/components/TreeSelect/index.d.ts +3 -3
  31. package/es/field/components/TreeSelect/index.js +2 -2
  32. package/es/form/BaseForm/BaseForm.js +16 -2
  33. package/es/form/BaseForm/LightWrapper/index.js +7 -1
  34. package/es/form/BaseForm/Submitter/index.js +2 -2
  35. package/es/form/components/Cascader/index.d.ts +1 -1
  36. package/es/form/components/ColorPicker/index.d.ts +1 -1
  37. package/es/form/components/DatePicker/DateTimePicker.js +1 -0
  38. package/es/form/components/DateRangePicker/DateTimeRangePicker.d.ts +1 -1
  39. package/es/form/components/DateRangePicker/DateTimeRangePicker.js +1 -3
  40. package/es/form/components/Digit/DigitRange.d.ts +2 -2
  41. package/es/form/components/Digit/index.d.ts +1 -1
  42. package/es/form/components/Field/index.d.ts +0 -1
  43. package/es/form/components/Field/index.js +3 -5
  44. package/es/form/components/FormItem/FormItemRender/index.d.ts +1 -0
  45. package/es/form/components/FormItem/Group/index.js +17 -3
  46. package/es/form/components/FormItem/index.d.ts +1 -0
  47. package/es/form/components/FormItem/index.js +16 -31
  48. package/es/form/components/FormItem/warpField.js +1 -0
  49. package/es/form/components/Money/index.d.ts +1 -1
  50. package/es/form/components/Radio/index.d.ts +2 -2
  51. package/es/form/components/Rate/index.d.ts +1 -1
  52. package/es/form/components/Slider/index.d.ts +1 -1
  53. package/es/form/components/TextArea/index.d.ts +1 -1
  54. package/es/form/helpers/grid.d.ts +7 -3
  55. package/es/form/helpers/grid.js +19 -4
  56. package/es/form/layouts/DrawerForm/index.js +16 -2
  57. package/es/form/layouts/LightFilter/index.js +7 -4
  58. package/es/form/layouts/ModalForm/index.js +17 -2
  59. package/es/form/layouts/ProForm/index.d.ts +1 -1
  60. package/es/form/layouts/QueryFilter/index.js +17 -3
  61. package/es/form/layouts/StepsForm/index.js +16 -2
  62. package/es/layout/ProLayout.js +33 -5
  63. package/es/layout/components/AppsLogoComponents/style/index.js +1 -0
  64. package/es/layout/components/SettingDrawer/index.js +33 -5
  65. package/es/layout/components/SiderMenu/BaseMenu.js +0 -2
  66. package/es/list/ListView.js +6 -3
  67. package/es/provider/index.d.ts +0 -4
  68. package/es/provider/index.js +1 -1
  69. package/es/table/Store/Provide.d.ts +0 -1
  70. package/es/table/Store/Provide.js +1 -1
  71. package/es/table/Table.js +0 -1
  72. package/es/table/typing.d.ts +0 -4
  73. package/es/table/useFetchData.js +16 -2
  74. package/es/table/utils/cellRenderToFromItem.d.ts +1 -1
  75. package/es/table/utils/columnRender.d.ts +1 -1
  76. package/es/table/utils/columnRender.js +1 -4
  77. package/es/table/utils/genProColumnToColumn.d.ts +2 -2
  78. package/es/table/utils/index.d.ts +0 -10
  79. package/es/table/utils/index.js +0 -12
  80. package/es/utils/components/FieldLabel/index.js +3 -3
  81. package/es/utils/components/FieldLabel/style.js +23 -4
  82. package/es/utils/components/FilterDropdown/index.js +1 -1
  83. package/es/utils/components/FilterDropdown/style.js +10 -0
  84. package/es/utils/pickProProps/index.js +1 -1
  85. package/es/utils/useEditableArray/index.d.ts +1 -1
  86. package/es/utils/useEditableArray/index.js +1 -1
  87. package/es/utils/useLazyKVMap.d.ts +5 -0
  88. package/es/utils/useLazyKVMap.js +28 -0
  89. package/es/utils/useMediaQuery/index.d.ts +2 -2
  90. package/es/utils/usePagination.d.ts +8 -0
  91. package/es/utils/usePagination.js +67 -0
  92. package/es/utils/useSelection.d.ts +19 -0
  93. package/es/utils/useSelection.js +86 -0
  94. package/lib/card/components/Card/index.js +16 -2
  95. package/lib/descriptions/index.d.ts +0 -2
  96. package/lib/descriptions/index.js +1 -5
  97. package/lib/descriptions/useFetchData.js +17 -2
  98. package/lib/field/components/Cascader/index.js +0 -2
  99. package/lib/field/components/Checkbox/index.js +2 -0
  100. package/lib/field/components/Code/index.js +1 -8
  101. package/lib/field/components/DatePicker/index.js +3 -5
  102. package/lib/field/components/FromNow/index.d.ts +1 -0
  103. package/lib/field/components/FromNow/index.js +2 -2
  104. package/lib/field/components/Money/index.js +0 -1
  105. package/lib/field/components/Progress/index.js +1 -2
  106. package/lib/field/components/RangePicker/index.js +3 -11
  107. package/lib/field/components/Select/LightSelect/index.d.ts +2 -0
  108. package/lib/field/components/Select/LightSelect/index.js +3 -1
  109. package/lib/field/components/Select/index.js +1 -4
  110. package/lib/field/components/Switch/index.js +2 -1
  111. package/lib/field/components/TimePicker/index.d.ts +2 -0
  112. package/lib/field/components/TimePicker/index.js +9 -8
  113. package/lib/field/components/TreeSelect/index.js +2 -2
  114. package/lib/form/BaseForm/BaseForm.js +16 -2
  115. package/lib/form/BaseForm/LightWrapper/index.js +7 -1
  116. package/lib/form/BaseForm/Submitter/index.js +2 -2
  117. package/lib/form/components/DatePicker/DateTimePicker.js +1 -0
  118. package/lib/form/components/DateRangePicker/DateTimeRangePicker.d.ts +1 -1
  119. package/lib/form/components/DateRangePicker/DateTimeRangePicker.js +1 -3
  120. package/lib/form/components/Field/index.d.ts +0 -1
  121. package/lib/form/components/Field/index.js +1 -3
  122. package/lib/form/components/FormItem/FormItemRender/index.d.ts +1 -0
  123. package/lib/form/components/FormItem/Group/index.js +16 -2
  124. package/lib/form/components/FormItem/index.d.ts +1 -0
  125. package/lib/form/components/FormItem/index.js +16 -31
  126. package/lib/form/components/FormItem/warpField.js +1 -0
  127. package/lib/form/helpers/grid.d.ts +7 -3
  128. package/lib/form/helpers/grid.js +20 -4
  129. package/lib/form/layouts/DrawerForm/index.js +16 -2
  130. package/lib/form/layouts/LightFilter/index.js +7 -4
  131. package/lib/form/layouts/ModalForm/index.js +17 -2
  132. package/lib/form/layouts/QueryFilter/index.js +16 -2
  133. package/lib/form/layouts/StepsForm/index.js +16 -2
  134. package/lib/layout/ProLayout.js +32 -4
  135. package/lib/layout/components/AppsLogoComponents/style/index.js +1 -0
  136. package/lib/layout/components/SettingDrawer/index.js +32 -4
  137. package/lib/layout/components/SiderMenu/BaseMenu.js +0 -2
  138. package/lib/list/ListView.js +7 -4
  139. package/lib/provider/index.d.ts +0 -4
  140. package/lib/provider/index.js +1 -1
  141. package/lib/table/Store/Provide.d.ts +0 -1
  142. package/lib/table/Store/Provide.js +1 -1
  143. package/lib/table/Table.js +0 -1
  144. package/lib/table/typing.d.ts +0 -4
  145. package/lib/table/useFetchData.js +16 -2
  146. package/lib/table/utils/cellRenderToFromItem.d.ts +1 -1
  147. package/lib/table/utils/columnRender.d.ts +1 -1
  148. package/lib/table/utils/columnRender.js +1 -4
  149. package/lib/table/utils/genProColumnToColumn.d.ts +2 -2
  150. package/lib/table/utils/index.d.ts +0 -10
  151. package/lib/table/utils/index.js +3 -15
  152. package/lib/utils/components/FieldLabel/index.js +3 -3
  153. package/lib/utils/components/FieldLabel/style.js +23 -4
  154. package/lib/utils/components/FilterDropdown/index.js +1 -1
  155. package/lib/utils/components/FilterDropdown/style.js +10 -0
  156. package/lib/utils/pickProProps/index.js +1 -1
  157. package/lib/utils/useEditableArray/index.d.ts +1 -1
  158. package/lib/utils/useEditableArray/index.js +2 -2
  159. package/lib/utils/useLazyKVMap.d.ts +5 -0
  160. package/lib/utils/useLazyKVMap.js +34 -0
  161. package/lib/utils/usePagination.d.ts +8 -0
  162. package/lib/utils/usePagination.js +74 -0
  163. package/lib/utils/useSelection.d.ts +19 -0
  164. package/lib/utils/useSelection.js +93 -0
  165. package/package.json +2 -1
@@ -5,7 +5,6 @@ export type ProFormFieldProps<T = any, FiledProps = Record<string, any>> = ProSc
5
5
  mode?: 'edit' | 'read' | 'update';
6
6
  isDefaultDom?: boolean;
7
7
  ref?: any;
8
- plain?: boolean;
9
8
  text?: any;
10
9
  getFieldProps?: () => Record<string, any>;
11
10
  getFormItemProps?: () => Record<string, any>;
@@ -93,7 +93,5 @@ const BaseProFormField = props => {
93
93
  params: propsParams
94
94
  });
95
95
  };
96
- const ProFormField = (0, _warpField.default)?.( /*#__PURE__*/(0, _react.memo)(BaseProFormField, (prevProps, nextProps) => {
97
- return (0, _utils.isDeepEqualReact)(nextProps, prevProps, ['onChange', 'onBlur']);
98
- }));
96
+ const ProFormField = (0, _warpField.default)?.(BaseProFormField);
99
97
  var _default = exports.default = ProFormField;
@@ -130,6 +130,7 @@ export declare const ProFormItemRender: React.FC<Omit<import("antd").FormItemPro
130
130
  dataFormat?: string | undefined;
131
131
  lightProps?: import("src/form").LightWrapperProps | undefined;
132
132
  proFormFieldKey?: any;
133
+ fieldProps?: Record<string, any> | undefined;
133
134
  } & {
134
135
  addonBefore?: React.ReactNode;
135
136
  addonAfter?: React.ReactNode;
@@ -41,13 +41,27 @@ const Group = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
41
41
  ...props
42
42
  };
43
43
  const [collapsed, setCollapsedInner] = (0, _util.useControlledState)(() => defaultCollapsed || false, props.collapsed);
44
+
45
+ /**
46
+ * 使用 useRefFunction 包装回调,确保引用稳定
47
+ */
48
+ const onCollapseCallback = (0, _utils.useRefFunction)(c => {
49
+ props.onCollapse?.(c);
50
+ });
51
+
52
+ /**
53
+ * 使用 queueMicrotask 延迟回调调用,避免在渲染阶段调用外部回调导致的 React 警告
54
+ * "Cannot update a component while rendering a different component"
55
+ */
44
56
  const setCollapsed = (0, _react.useCallback)(updater => {
45
57
  setCollapsedInner(prev => {
46
58
  const next = typeof updater === 'function' ? updater(prev) : updater;
47
- props.onCollapse?.(next);
59
+ queueMicrotask(() => {
60
+ onCollapseCallback(next);
61
+ });
48
62
  return next;
49
63
  });
50
- }, [props.onCollapse]);
64
+ }, [onCollapseCallback]);
51
65
  const {
52
66
  getPrefixCls
53
67
  } = (0, _react.useContext)(_antd.ConfigProvider.ConfigContext);
@@ -56,6 +56,7 @@ export type ProFormItemProps = FormItemProps & {
56
56
  dataFormat?: string;
57
57
  lightProps?: LightWrapperProps;
58
58
  proFormFieldKey?: any;
59
+ fieldProps?: Record<string, any>;
59
60
  } & WarpFormItemProps;
60
61
  declare const ProFormItem: React.FC<ProFormItemProps>;
61
62
  export { FormItemProvide };
@@ -81,12 +81,23 @@ const WithValueFomFiledProps = formFieldProps => {
81
81
  if (! /*#__PURE__*/_react.default.isValidElement(filedChildren)) return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
82
82
  children: filedChildren
83
83
  });
84
+
85
+ // restProps 可能来自 LightWrapper 的 cloneElement(light 模式下传入 variant/fieldProps),需保留以覆盖 filedChildren.props,避免内层控件线框双线
86
+ const variantFromRest = restProps.variant;
87
+ const fieldPropsFromRest = restProps.fieldProps;
84
88
  return /*#__PURE__*/_react.default.cloneElement(filedChildren, (0, _utils.omitUndefined)({
85
89
  ...restProps,
86
90
  [valuePropName]: formFieldProps[valuePropName],
87
91
  ...filedChildren.props,
88
92
  onChange: finalChange,
89
- fieldProps,
93
+ fieldProps: {
94
+ ...filedChildren.props?.fieldProps,
95
+ ...fieldPropsFromRest,
96
+ ...fieldProps
97
+ },
98
+ ...(variantFromRest !== undefined && {
99
+ variant: variantFromRest
100
+ }),
90
101
  onBlur: isProFormComponent && !isValidElementForFiledChildren && onBlur
91
102
  }));
92
103
  };
@@ -120,36 +131,8 @@ const WarpFormItem = ({
120
131
  if (!addonAfter && !addonBefore) {
121
132
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Form.Item, {
122
133
  ...props,
123
- //help={typeof help !== 'function' ? help : undefined}
124
134
  valuePropName: valuePropName,
125
- getValueProps: getValuePropsFunc
126
- // @ts-ignore
127
- // _internalItemRender={{
128
- // mark: 'pro_table_render',
129
- // render: (
130
- // inputProps: FormItemProps & {
131
- // errors: React.ReactNode[];
132
- // warnings: React.ReactNode[];
133
- // },
134
- // doms: {
135
- // input: JSX.Element;
136
- // errorList: JSX.Element;
137
- // extra: JSX.Element;
138
- // },
139
- // ) => (
140
- // <>
141
- // {doms.input}
142
- // {typeof help === 'function'
143
- // ? help({
144
- // errors: inputProps.errors,
145
- // warnings: inputProps.warnings,
146
- // })
147
- // : doms.errorList}
148
- // {doms.extra}
149
- // </>
150
- // ),
151
- // }}
152
- ,
135
+ getValueProps: getValuePropsFunc,
153
136
  children: children
154
137
  });
155
138
  }
@@ -215,6 +198,7 @@ const ProFormItem = props => {
215
198
  ignoreFormItem,
216
199
  lightProps,
217
200
  children: unusedChildren,
201
+ fieldProps,
218
202
  ...rest
219
203
  } = props;
220
204
  const formListField = (0, _react.useContext)(_List.FormListContext);
@@ -268,8 +252,9 @@ const ProFormItem = props => {
268
252
  valuePropName: props.valuePropName,
269
253
  children: props.children
270
254
  }, rest.proFormFieldKey || rest.name?.toString());
255
+ const lightPropsForWrapper = (0, _utils.omitUndefined)(lightProps || {});
271
256
  const lightDom = noLightFormItem ? children : /*#__PURE__*/(0, _react.createElement)(_BaseForm.LightWrapper, {
272
- ...lightProps,
257
+ ...lightPropsForWrapper,
273
258
  key: rest.proFormFieldKey || rest.name?.toString(),
274
259
  size: size
275
260
  }, children);
@@ -234,6 +234,7 @@ function warpField(Field, config) {
234
234
  convertValue: convertValue,
235
235
  lightProps: (0, _utils.omitUndefined)({
236
236
  ...fieldProps,
237
+ variant: rest.variant ?? fieldProps?.variant,
237
238
  valueType,
238
239
  bordered,
239
240
  allowClear: field?.props?.allowClear ?? allowClear,
@@ -1,13 +1,17 @@
1
- /// <reference types="react" />
2
1
  import type { ColProps, RowProps } from 'antd';
2
+ import React from 'react';
3
3
  import type { ProFormGridConfig } from '../typing';
4
- export declare const GridContext: import("react").Context<ProFormGridConfig>;
4
+ export declare const GridContext: React.Context<ProFormGridConfig>;
5
5
  interface CommonProps {
6
6
  Wrapper?: React.FC<any>;
7
7
  }
8
+ interface ColWrapperProps extends ColProps, CommonProps {
9
+ variant?: string;
10
+ fieldProps?: Record<string, any>;
11
+ }
8
12
  export interface GridHelpers {
9
13
  RowWrapper: React.FC<RowProps & CommonProps>;
10
- ColWrapper: React.FC<ColProps & CommonProps>;
14
+ ColWrapper: React.FC<ColWrapperProps>;
11
15
  grid: boolean;
12
16
  }
13
17
  export declare const gridHelpers: (config: ProFormGridConfig & CommonProps) => GridHelpers;
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.useGridHelpers = exports.gridHelpers = exports.GridContext = void 0;
7
8
  var _antd = require("antd");
8
- var _react = require("react");
9
+ var _react = _interopRequireWildcard(require("react"));
9
10
  var _jsxRuntime = require("react/jsx-runtime");
10
11
  const GridContext = exports.GridContext = /*#__PURE__*/(0, _react.createContext)({
11
12
  grid: false,
@@ -38,6 +39,8 @@ const gridHelpers = ({
38
39
  ColWrapper({
39
40
  children,
40
41
  Wrapper,
42
+ variant,
43
+ fieldProps,
41
44
  ...rest
42
45
  } = {}) {
43
46
  const props = (0, _react.useMemo)(() => {
@@ -55,14 +58,27 @@ const gridHelpers = ({
55
58
  }
56
59
  return originProps;
57
60
  }, [rest]);
61
+
62
+ // LightFilter clone 传入的 variant/fieldProps 需透传给 ProFormItem,否则 lightProps 无 variant
63
+ const childrenWithProps = (variant !== undefined || fieldProps !== undefined) && _react.default.Children.count(children) === 1 && /*#__PURE__*/_react.default.isValidElement(children) ? /*#__PURE__*/_react.default.cloneElement(children, {
64
+ ...(variant !== undefined && {
65
+ variant
66
+ }),
67
+ ...(fieldProps && {
68
+ fieldProps: {
69
+ ...children?.props?.fieldProps,
70
+ ...fieldProps
71
+ }
72
+ })
73
+ }) : children;
58
74
  if (!grid) {
59
75
  return Wrapper ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapper, {
60
- children: children
61
- }) : children;
76
+ children: childrenWithProps
77
+ }) : childrenWithProps;
62
78
  }
63
79
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Col, {
64
80
  ...props,
65
- children: children
81
+ children: childrenWithProps
66
82
  });
67
83
  }
68
84
  });
@@ -64,13 +64,27 @@ function DrawerForm({
64
64
  const [resizableDrawer, setResizableDrawer] = (0, _react.useState)(false);
65
65
  const [drawerWidth, setDrawerWidth] = (0, _react.useState)(width ? width : resize ? resizeInfo?.minWidth : 800);
66
66
  const [open, setOpenInner] = (0, _util.useControlledState)(!!propsOpen, propsOpen);
67
+
68
+ /**
69
+ * 使用 useRefFunction 包装回调,确保引用稳定
70
+ */
71
+ const onOpenChangeCallback = (0, _utils.useRefFunction)(o => {
72
+ onOpenChange?.(o);
73
+ });
74
+
75
+ /**
76
+ * 使用 queueMicrotask 延迟回调调用,避免在渲染阶段调用外部回调导致的 React 警告
77
+ * "Cannot update a component while rendering a different component"
78
+ */
67
79
  const setOpen = (0, _react.useCallback)(updater => {
68
80
  setOpenInner(prev => {
69
81
  const next = typeof updater === 'function' ? updater(prev) : updater;
70
- onOpenChange?.(next);
82
+ queueMicrotask(() => {
83
+ onOpenChangeCallback(next);
84
+ });
71
85
  return next;
72
86
  });
73
- }, [onOpenChange]);
87
+ }, [onOpenChangeCallback]);
74
88
  const footerRef = (0, _react.useRef)(null);
75
89
  const footerDomRef = (0, _react.useCallback)(element => {
76
90
  if (footerRef.current === null && element) {
@@ -28,7 +28,7 @@ const LightFilterContainer = props => {
28
28
  collapse,
29
29
  collapseLabel,
30
30
  onValuesChange,
31
- variant,
31
+ variant = 'borderless',
32
32
  values,
33
33
  footerRender,
34
34
  placement,
@@ -83,6 +83,7 @@ const LightFilterContainer = props => {
83
83
  });
84
84
  }
85
85
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_utils.FieldLabel, {
86
+ variant: variant,
86
87
  size: size,
87
88
  label: intl.getMessage('form.lightFilter.more', '更多筛选')
88
89
  });
@@ -109,7 +110,8 @@ const LightFilterContainer = props => {
109
110
  children: /*#__PURE__*/_react.default.cloneElement(child, {
110
111
  fieldProps: {
111
112
  ...child.props.fieldProps,
112
- placement: newPlacement
113
+ placement: newPlacement,
114
+ variant: 'borderless'
113
115
  },
114
116
  // proFieldProps 会直接作为 ProField 的 props 传递过去
115
117
  proFieldProps: {
@@ -178,7 +180,8 @@ const LightFilterContainer = props => {
178
180
  children: /*#__PURE__*/_react.default.cloneElement(child, {
179
181
  fieldProps: {
180
182
  ...newFieldProps,
181
- placement: newPlacement
183
+ placement: newPlacement,
184
+ variant
182
185
  }
183
186
  })
184
187
  }, key);
@@ -229,7 +232,7 @@ function LightFilter(props) {
229
232
  return item;
230
233
  }),
231
234
  size: size,
232
- variant: variant,
235
+ variant: variant || 'borderless',
233
236
  collapse: collapse,
234
237
  collapseLabel: collapseLabel,
235
238
  placement: placement,
@@ -10,6 +10,7 @@ var _antd = require("antd");
10
10
  var _lodashEs = require("lodash-es");
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _reactDom = require("react-dom");
13
+ var _utils = require("../../../utils");
13
14
  var _BaseForm = require("../../BaseForm");
14
15
  var _jsxRuntime = require("react/jsx-runtime");
15
16
  const {
@@ -34,13 +35,27 @@ function ModalForm({
34
35
  const [, forceUpdate] = (0, _react.useState)([]);
35
36
  const [loading, setLoading] = (0, _react.useState)(false);
36
37
  const [open, setOpenInner] = (0, _util.useControlledState)(false, propsOpen);
38
+
39
+ /**
40
+ * 使用 useRefFunction 包装回调,确保引用稳定
41
+ */
42
+ const onOpenChangeCallback = (0, _utils.useRefFunction)(o => {
43
+ onOpenChange?.(o);
44
+ });
45
+
46
+ /**
47
+ * 使用 queueMicrotask 延迟回调调用,避免在渲染阶段调用外部回调导致的 React 警告
48
+ * "Cannot update a component while rendering a different component"
49
+ */
37
50
  const setOpen = (0, _react.useCallback)(updater => {
38
51
  setOpenInner(prev => {
39
52
  const next = typeof updater === 'function' ? updater(prev) : updater;
40
- onOpenChange?.(next);
53
+ queueMicrotask(() => {
54
+ onOpenChangeCallback(next);
55
+ });
41
56
  return next;
42
57
  });
43
- }, [onOpenChange]);
58
+ }, [onOpenChangeCallback]);
44
59
  const footerRef = (0, _react.useRef)(null);
45
60
  const footerDomRef = (0, _react.useCallback)(element => {
46
61
  if (footerRef.current === null && element) {
@@ -87,13 +87,27 @@ const QueryFilterContent = props => {
87
87
  const resetText = props.resetText || intl.getMessage('tableForm.reset', '重置');
88
88
  const searchText = props.searchText || intl.getMessage('tableForm.search', '搜索');
89
89
  const [collapsed, setCollapsedInner] = (0, _util.useControlledState)(() => props.defaultCollapsed && !!props.submitter, props.collapsed);
90
+
91
+ /**
92
+ * 使用 useRefFunction 包装回调,确保引用稳定
93
+ */
94
+ const onCollapseCallback = (0, _utils.useRefFunction)(c => {
95
+ props.onCollapse?.(c);
96
+ });
97
+
98
+ /**
99
+ * 使用 queueMicrotask 延迟回调调用,避免在渲染阶段调用外部回调导致的 React 警告
100
+ * "Cannot update a component while rendering a different component"
101
+ */
90
102
  const setCollapsed = (0, _react.useCallback)(updater => {
91
103
  setCollapsedInner(prev => {
92
104
  const next = typeof updater === 'function' ? updater(prev) : updater;
93
- props.onCollapse?.(next);
105
+ queueMicrotask(() => {
106
+ onCollapseCallback(next);
107
+ });
94
108
  return next;
95
109
  });
96
- }, [props.onCollapse]);
110
+ }, [onCollapseCallback]);
97
111
  const {
98
112
  optionRender,
99
113
  collapseRender,
@@ -126,13 +126,27 @@ function StepsForm(props) {
126
126
  * 受控的方式来操作表单
127
127
  */
128
128
  const [step, setStepInner] = (0, _util.useControlledState)(0, props.current);
129
+
130
+ /**
131
+ * 使用 useRefFunction 包装回调,确保引用稳定
132
+ */
133
+ const onCurrentChangeCallback = (0, _utils.useRefFunction)(current => {
134
+ props.onCurrentChange?.(current);
135
+ });
136
+
137
+ /**
138
+ * 使用 queueMicrotask 延迟回调调用,避免在渲染阶段调用外部回调导致的 React 警告
139
+ * "Cannot update a component while rendering a different component"
140
+ */
129
141
  const setStep = (0, _react.useCallback)(updater => {
130
142
  setStepInner(prev => {
131
143
  const next = typeof updater === 'function' ? updater(prev) : updater;
132
- props.onCurrentChange?.(next);
144
+ queueMicrotask(() => {
145
+ onCurrentChangeCallback(next);
146
+ });
133
147
  return next;
134
148
  });
135
- }, [props.onCurrentChange]);
149
+ }, [onCurrentChangeCallback]);
136
150
  const layoutRender = (0, _react.useMemo)(() => {
137
151
  return StepsLayoutStrategy[stepsProps?.direction || 'horizontal'];
138
152
  }, [stepsProps?.direction]);
@@ -170,13 +170,27 @@ const BaseProLayout = props => {
170
170
  const context = (0, _react.useContext)(_antd.ConfigProvider.ConfigContext);
171
171
  const prefixCls = props.prefixCls ?? context.getPrefixCls('pro');
172
172
  const [menuLoading, setMenuLoadingInner] = (0, _util.useControlledState)(false, menu?.loading);
173
+
174
+ /**
175
+ * 使用 useRefFunction 包装回调,确保引用稳定
176
+ */
177
+ const menuOnLoadingChange = (0, _utils.useRefFunction)(loading => {
178
+ menu?.onLoadingChange?.(loading);
179
+ });
180
+
181
+ /**
182
+ * 包装 setMenuLoading,使用 queueMicrotask 延迟回调调用
183
+ * 避免在渲染阶段调用外部回调导致的 React 警告
184
+ */
173
185
  const setMenuLoading = (0, _react.useCallback)(updater => {
174
186
  setMenuLoadingInner(prev => {
175
187
  const next = typeof updater === 'function' ? updater(prev) : updater;
176
- menu?.onLoadingChange?.(next);
188
+ queueMicrotask(() => {
189
+ menuOnLoadingChange(next);
190
+ });
177
191
  return next;
178
192
  });
179
- }, [menu?.onLoadingChange]);
193
+ }, [menuOnLoadingChange]);
180
194
 
181
195
  // give a default key for swr
182
196
  const [defaultId] = (0, _react.useState)(() => {
@@ -277,13 +291,27 @@ const BaseProLayout = props => {
277
291
  if (colSize === 'md') return true;
278
292
  return false;
279
293
  }, props.collapsed);
294
+
295
+ /**
296
+ * 使用 useRefFunction 包装回调,确保引用稳定
297
+ */
298
+ const onCollapseCallback = (0, _utils.useRefFunction)(c => {
299
+ propsOnCollapse?.(c);
300
+ });
301
+
302
+ /**
303
+ * 使用 queueMicrotask 延迟回调调用,避免在渲染阶段调用外部回调导致的 React 警告
304
+ * "Cannot update a component while rendering a different component"
305
+ */
280
306
  const onCollapse = (0, _react.useCallback)(updater => {
281
307
  onCollapseInner(prev => {
282
308
  const next = typeof updater === 'function' ? updater(prev) : updater;
283
- propsOnCollapse?.(next);
309
+ queueMicrotask(() => {
310
+ onCollapseCallback(next);
311
+ });
284
312
  return next;
285
313
  });
286
- }, [propsOnCollapse]);
314
+ }, [onCollapseCallback]);
287
315
 
288
316
  // Splicing parameters, adding menuData and formatMessage in props
289
317
  const defaultProps = (0, _util.omit)({
@@ -28,6 +28,7 @@ const genAppsLogoComponentsStyle = token => {
28
28
  backgroundColor: token.layout?.colorBgAppListIconHover
29
29
  },
30
30
  '&-active': {
31
+ borderRadius: token.borderRadius,
31
32
  color: token.layout?.colorTextAppListIconHover,
32
33
  backgroundColor: token.layout?.colorBgAppListIconHover
33
34
  }
@@ -150,25 +150,53 @@ const SettingDrawer = props => {
150
150
  } = props;
151
151
  const firstRender = (0, _react.useRef)(true);
152
152
  const [open, setOpenInner] = (0, _util.useControlledState)(false, props.collapse);
153
+
154
+ /**
155
+ * 使用 useRefFunction 包装回调,确保引用稳定
156
+ */
157
+ const onCollapseChangeCallback = (0, _utils.useRefFunction)(o => {
158
+ props.onCollapseChange?.(o);
159
+ });
160
+
161
+ /**
162
+ * 使用 queueMicrotask 延迟回调调用,避免在渲染阶段调用外部回调导致的 React 警告
163
+ * "Cannot update a component while rendering a different component"
164
+ */
153
165
  const setOpen = (0, _react.useCallback)(updater => {
154
166
  setOpenInner(prev => {
155
167
  const next = typeof updater === 'function' ? updater(prev) : updater;
156
- props.onCollapseChange?.(next);
168
+ queueMicrotask(() => {
169
+ onCollapseChangeCallback(next);
170
+ });
157
171
  return next;
158
172
  });
159
- }, [props.onCollapseChange]);
173
+ }, [onCollapseChangeCallback]);
160
174
  const [language, setLanguage] = (0, _react.useState)((0, _locales.getLanguage)());
161
175
  const [urlParams, setUrlParams] = (0, _useParams.useUrlSearchParams)({}, {
162
176
  disabled: disableUrlParams
163
177
  });
164
178
  const [settingState, setSettingStateInner] = (0, _util.useControlledState)(() => getParamsFromUrl(urlParams, propsSettings || propsDefaultSettings), propsSettings);
179
+
180
+ /**
181
+ * 使用 useRefFunction 包装回调,确保引用稳定
182
+ */
183
+ const onSettingChangeCallback = (0, _utils.useRefFunction)(settings => {
184
+ onSettingChange?.(settings);
185
+ });
186
+
187
+ /**
188
+ * 使用 queueMicrotask 延迟回调调用,避免在渲染阶段调用外部回调导致的 React 警告
189
+ * "Cannot update a component while rendering a different component"
190
+ */
165
191
  const setSettingState = (0, _react.useCallback)(updater => {
166
192
  setSettingStateInner(prev => {
167
193
  const next = typeof updater === 'function' ? updater(prev) : updater;
168
- onSettingChange?.(next);
194
+ queueMicrotask(() => {
195
+ onSettingChangeCallback(next);
196
+ });
169
197
  return next;
170
198
  });
171
- }, [onSettingChange]);
199
+ }, [onSettingChangeCallback]);
172
200
  const {
173
201
  navTheme,
174
202
  colorPrimary,
@@ -16,8 +16,6 @@ var _defaultSettings = require("../../defaultSettings");
16
16
  var _utils2 = require("../../utils/utils");
17
17
  var _menu = require("./style/menu");
18
18
  var _jsxRuntime = require("react/jsx-runtime");
19
- // todo
20
-
21
19
  const MenuItemTooltip = props => {
22
20
  const [collapsed, setCollapsed] = (0, _react.useState)(props.collapsed);
23
21
  const [open, setOpen] = (0, _react.useState)(false);
@@ -1,19 +1,19 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
9
  var _util = require("@rc-component/util");
10
10
  var _antd = require("antd");
11
- var _useLazyKVMap = _interopRequireDefault(require("antd/lib/table/hooks/useLazyKVMap"));
12
- var _usePagination = _interopRequireDefault(require("antd/lib/table/hooks/usePagination"));
13
- var _useSelection = _interopRequireDefault(require("antd/lib/table/hooks/useSelection"));
14
11
  var _clsx = require("clsx");
15
12
  var _react = _interopRequireWildcard(require("react"));
16
13
  var _provider = require("../provider");
14
+ var _useLazyKVMap = _interopRequireDefault(require("../utils/useLazyKVMap"));
15
+ var _usePagination = _interopRequireDefault(require("../utils/usePagination"));
16
+ var _useSelection = _interopRequireDefault(require("../utils/useSelection"));
17
17
  var _constants = require("./constants");
18
18
  var _Item = _interopRequireDefault(require("./Item"));
19
19
  var _jsxRuntime = require("react/jsx-runtime");
@@ -177,6 +177,9 @@ function ListView(props) {
177
177
  onChange: /*#__PURE__*/_react.default.isValidElement(checkboxDom) ? changeChecked => {
178
178
  return checkboxDom?.props?.onChange({
179
179
  nativeEvent: {},
180
+ target: {
181
+ checked: changeChecked
182
+ },
180
183
  changeChecked
181
184
  });
182
185
  } : undefined
@@ -50,10 +50,6 @@ export type BaseProFieldFC = {
50
50
  * @option edit 渲染编辑模式
51
51
  * */
52
52
  mode?: ProFieldFCMode;
53
- /**
54
- * 简约模式
55
- */
56
- plain?: boolean;
57
53
  /** 轻量模式 */
58
54
  light?: boolean;
59
55
  /** Label */
@@ -16,7 +16,7 @@ exports.isNeedOpenHash = exports.default = exports.ProProvider = exports.ProConf
16
16
  exports.useIntl = useIntl;
17
17
  var _cssinjs = require("@ant-design/cssinjs");
18
18
  var _antd = require("antd");
19
- var _zh_CN = _interopRequireDefault(require("antd/lib/locale/zh_CN"));
19
+ var _zh_CN = _interopRequireDefault(require("antd/es/locale/zh_CN"));
20
20
  var _dayjs = _interopRequireDefault(require("dayjs"));
21
21
  require("dayjs/locale/zh-cn");
22
22
  var _react = _interopRequireWildcard(require("react"));
@@ -13,7 +13,6 @@ export type ColumnsState = {
13
13
  };
14
14
  export type ProTableColumn<T> = ColumnsState & TableColumnType<T>;
15
15
  export type UseContainerProps<T = any> = {
16
- onColumnsStateChange?: (map: Record<string, ColumnsState>) => void;
17
16
  size?: DensitySize;
18
17
  defaultSize?: DensitySize;
19
18
  onSizeChange?: (size: DensitySize) => void;
@@ -76,7 +76,7 @@ function useContainer(props = {}) {
76
76
  }
77
77
  return props.columnsState?.value || props.columnsState?.defaultValue || defaultColumnKeyMap;
78
78
  }, props.columnsState?.value);
79
- const onColumnsMapChange = props.columnsState?.onChange || props.onColumnsStateChange;
79
+ const onColumnsMapChange = props.columnsState?.onChange;
80
80
  const setColumnsMap = (0, _react.useCallback)(updater => {
81
81
  setColumnsMapInner(prev => {
82
82
  const next = typeof updater === 'function' ? updater(prev) : updater;
@@ -791,7 +791,6 @@ const ProviderTableContainer = props => {
791
791
  ...props,
792
792
  columnsState: props.columnsState,
793
793
  columns: props.columns,
794
- onColumnsStateChange: props.onColumnsStateChange,
795
794
  onSizeChange: props.onSizeChange,
796
795
  size: props.size,
797
796
  defaultSize: props.defaultSize
@@ -162,10 +162,6 @@ export type ProTableProps<DataSource, U, ValueType = 'text'> = {
162
162
  params?: U;
163
163
  /** @name 列状态的配置,可以用来操作列功能 */
164
164
  columnsState?: ColumnStateType;
165
- /**
166
- * @deprecated 请使用 columnsState.onChange。保留兼容,后续版本将移除。
167
- */
168
- onColumnsStateChange?: (map: Record<string, ColumnsState>) => void;
169
165
  onSizeChange?: (size: DensitySize) => void;
170
166
  /**
171
167
  * @name table 外面卡片的设置