@zat-design/sisyphus-react 4.5.9 → 4.5.10-beta.2

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 (280) hide show
  1. package/dist/index.esm.css +1 -1
  2. package/dist/less.esm.css +1 -1
  3. package/es/FormsProvider/index.js +14 -21
  4. package/es/ProAction/components/CheckModalContent/index.js +12 -26
  5. package/es/ProAction/index.js +79 -83
  6. package/es/ProAction/propsType.js +0 -1
  7. package/es/ProConfigProvider/index.js +63 -110
  8. package/es/ProConfigProvider/propsType.js +0 -1
  9. package/es/ProDownload/index.d.ts +2 -1
  10. package/es/ProDownload/index.js +74 -69
  11. package/es/ProDownload/propsType.js +0 -1
  12. package/es/ProDownload/utils.d.ts +10 -5
  13. package/es/ProDownload/utils.js +63 -95
  14. package/es/ProDrawerForm/components/ProDrawer/index.js +83 -113
  15. package/es/ProDrawerForm/components/ProModal/index.js +77 -108
  16. package/es/ProDrawerForm/components/index.js +6 -2
  17. package/es/ProDrawerForm/hooks/useConfirmClose.js +20 -39
  18. package/es/ProDrawerForm/index.js +29 -38
  19. package/es/ProDrawerForm/propsType.js +0 -1
  20. package/es/ProDrawerForm/utils/index.js +18 -36
  21. package/es/ProEditLabel/components/RenderProForm.js +45 -49
  22. package/es/ProEditLabel/index.js +126 -163
  23. package/es/ProEditLabel/propsType.js +0 -1
  24. package/es/ProEditLabel/utils/index.js +5 -8
  25. package/es/ProEditTable/components/ActionButton/index.js +111 -119
  26. package/es/ProEditTable/components/RcTable/BaseTable.js +38 -51
  27. package/es/ProEditTable/components/RcTable/DraggableTable.js +97 -129
  28. package/es/ProEditTable/components/RcTable/index.js +6 -4
  29. package/es/ProEditTable/components/RenderField/ListChangedWrapper.js +77 -95
  30. package/es/ProEditTable/components/RenderField/index.js +490 -587
  31. package/es/ProEditTable/components/RenderField/propsType.js +0 -1
  32. package/es/ProEditTable/components/RenderField/tools.js +115 -112
  33. package/es/ProEditTable/components/RenderToolbar/index.js +47 -73
  34. package/es/ProEditTable/components/Summary/index.js +38 -64
  35. package/es/ProEditTable/components/Validator/index.js +46 -46
  36. package/es/ProEditTable/components/index.js +12 -5
  37. package/es/ProEditTable/index.js +456 -378
  38. package/es/ProEditTable/propsType.js +0 -1
  39. package/es/ProEditTable/utils/config.js +60 -122
  40. package/es/ProEditTable/utils/diffOriginal.js +45 -82
  41. package/es/ProEditTable/utils/getDefaultProps.js +19 -24
  42. package/es/ProEditTable/utils/index.js +154 -235
  43. package/es/ProEditTable/utils/tools.js +149 -286
  44. package/es/ProEditTable/utils/transform.js +25 -30
  45. package/es/ProEditTable/utils/useEditTableError.js +30 -43
  46. package/es/ProEditTable/utils/useShouldUpdateForTable.js +42 -72
  47. package/es/ProEditTable/utils/validateAll.js +87 -154
  48. package/es/ProEnum/components/Group.js +38 -30
  49. package/es/ProEnum/components/Tag.js +22 -26
  50. package/es/ProEnum/hooks/useEnum.js +48 -116
  51. package/es/ProEnum/hooks/useEnumRequest.js +182 -212
  52. package/es/ProEnum/hooks/useFrequentEnumRequest.js +40 -48
  53. package/es/ProEnum/index.js +162 -172
  54. package/es/ProEnum/propsType.js +0 -1
  55. package/es/ProEnum/utils/eventCenter.js +10 -12
  56. package/es/ProEnum/utils/frequentEnum.js +35 -92
  57. package/es/ProEnum/utils/getEnum.js +32 -90
  58. package/es/ProEnum/utils/getEnumLabel.js +44 -49
  59. package/es/ProEnum/utils/index.js +93 -207
  60. package/es/ProForm/components/Container.js +13 -28
  61. package/es/ProForm/components/FormFooter/index.js +36 -44
  62. package/es/ProForm/components/FormFooter/propsType.js +0 -1
  63. package/es/ProForm/components/base/Checkbox/index.js +32 -59
  64. package/es/ProForm/components/base/DatePicker/index.js +49 -71
  65. package/es/ProForm/components/base/Input/index.js +63 -97
  66. package/es/ProForm/components/base/Input/propsType.js +0 -1
  67. package/es/ProForm/components/base/InputNumber/index.js +118 -172
  68. package/es/ProForm/components/base/Radio/index.js +39 -52
  69. package/es/ProForm/components/base/RangePicker/index.js +109 -127
  70. package/es/ProForm/components/base/RangePicker/useDateRange.js +20 -17
  71. package/es/ProForm/components/base/Select/index.js +63 -89
  72. package/es/ProForm/components/base/Switch/index.js +27 -35
  73. package/es/ProForm/components/base/SwitchCheckbox/index.js +36 -54
  74. package/es/ProForm/components/base/TextArea/index.js +30 -41
  75. package/es/ProForm/components/base/TimePicker/index.js +27 -37
  76. package/es/ProForm/components/combination/Container/index.js +37 -47
  77. package/es/ProForm/components/combination/Container/propsType.js +0 -1
  78. package/es/ProForm/components/combination/FormList/components/ActionButton.js +165 -237
  79. package/es/ProForm/components/combination/FormList/components/BlockFields.js +98 -102
  80. package/es/ProForm/components/combination/FormList/components/Empty.js +28 -55
  81. package/es/ProForm/components/combination/FormList/components/LineFields.js +57 -54
  82. package/es/ProForm/components/combination/FormList/components/ToolbarButton.js +61 -109
  83. package/es/ProForm/components/combination/FormList/index.js +151 -161
  84. package/es/ProForm/components/combination/FormList/propsType.js +0 -1
  85. package/es/ProForm/components/combination/FormList/style/index.less +6 -0
  86. package/es/ProForm/components/combination/FormList/utils.js +22 -38
  87. package/es/ProForm/components/combination/Group/component/AddonWrapper/index.js +12 -28
  88. package/es/ProForm/components/combination/Group/component/ComRender.js +50 -111
  89. package/es/ProForm/components/combination/Group/component/FlexibleGroup.js +106 -213
  90. package/es/ProForm/components/combination/Group/hooks/index.js +69 -129
  91. package/es/ProForm/components/combination/Group/index.js +87 -126
  92. package/es/ProForm/components/combination/Group/propsType.js +0 -1
  93. package/es/ProForm/components/combination/Group/utils/index.js +124 -239
  94. package/es/ProForm/components/combination/ProCascader/index.js +156 -199
  95. package/es/ProForm/components/combination/ProCascader/propsType.js +0 -1
  96. package/es/ProForm/components/combination/ProCascader/utils/index.js +12 -21
  97. package/es/ProForm/components/combination/ProModalSelect/hooks/useRequestList.js +72 -70
  98. package/es/ProForm/components/combination/ProModalSelect/index.js +309 -347
  99. package/es/ProForm/components/combination/ProModalSelect/propsType.js +0 -1
  100. package/es/ProForm/components/combination/ProModalSelect/utils/index.js +32 -39
  101. package/es/ProForm/components/combination/ProNumberRange/index.js +100 -156
  102. package/es/ProForm/components/combination/ProNumberRange/propsType.js +0 -1
  103. package/es/ProForm/components/combination/ProRangeLimit/index.js +104 -115
  104. package/es/ProForm/components/combination/ProRangeLimit/propsType.js +0 -1
  105. package/es/ProForm/components/combination/ProTimeLimit/hooks/useControlled.js +16 -16
  106. package/es/ProForm/components/combination/ProTimeLimit/index.js +75 -109
  107. package/es/ProForm/components/index.js +56 -34
  108. package/es/ProForm/components/render/ChangedWrapper.js +85 -94
  109. package/es/ProForm/components/render/ConfirmWrapper.js +27 -39
  110. package/es/ProForm/components/render/CustomComponentViewWrapper.js +65 -82
  111. package/es/ProForm/components/render/Render.js +223 -329
  112. package/es/ProForm/components/render/RenderFields.js +76 -113
  113. package/es/ProForm/components/render/propsType.js +0 -1
  114. package/es/ProForm/hooks/useControlled.js +8 -10
  115. package/es/ProForm/hooks/useDeepCompareMemo.js +11 -11
  116. package/es/ProForm/hooks/useFieldProps.js +8 -4
  117. package/es/ProForm/hooks/useForm.js +50 -110
  118. package/es/ProForm/hooks/useRules.js +17 -33
  119. package/es/ProForm/hooks/useShouldUpdate.js +77 -152
  120. package/es/ProForm/hooks/useWatch.js +62 -134
  121. package/es/ProForm/index.js +157 -194
  122. package/es/ProForm/propsType.js +15 -7
  123. package/es/ProForm/utils/buildFormItemProps.js +51 -58
  124. package/es/ProForm/utils/diffOriginal.js +43 -73
  125. package/es/ProForm/utils/getDefaultProps.js +18 -24
  126. package/es/ProForm/utils/index.js +160 -235
  127. package/es/ProForm/utils/processDependencies.js +21 -60
  128. package/es/ProForm/utils/reactiveValues.js +20 -34
  129. package/es/ProForm/utils/rulesCreator.js +42 -40
  130. package/es/ProForm/utils/transformNames.js +10 -13
  131. package/es/ProForm/utils/transformValue.js +16 -29
  132. package/es/ProForm/utils/valueType.js +96 -178
  133. package/es/ProIcon/config/index.js +340 -274
  134. package/es/ProIcon/index.js +135 -209
  135. package/es/ProIcon/propsTypes.js +0 -1
  136. package/es/ProIcon/utils/index.js +24 -39
  137. package/es/ProLayout/components/Layout/Header/index.js +108 -141
  138. package/es/ProLayout/components/Layout/Menu/FoldMenu/index.js +134 -190
  139. package/es/ProLayout/components/Layout/Menu/OpenMenu/index.js +113 -139
  140. package/es/ProLayout/components/Layout/Menu/OpenMenu/propsType.js +0 -1
  141. package/es/ProLayout/components/Layout/Menu/SideMenu/index.js +23 -31
  142. package/es/ProLayout/components/Layout/Menu/index.js +92 -89
  143. package/es/ProLayout/components/Layout/Notice/index.js +13 -27
  144. package/es/ProLayout/components/Layout/index.js +8 -3
  145. package/es/ProLayout/components/ProCollapse/PropTypes.js +0 -1
  146. package/es/ProLayout/components/ProCollapse/index.js +89 -111
  147. package/es/ProLayout/components/ProFooter/PropTypes.js +0 -1
  148. package/es/ProLayout/components/ProFooter/index.js +27 -24
  149. package/es/ProLayout/components/ProHeader/PropTypes.js +0 -1
  150. package/es/ProLayout/components/ProHeader/components/Copy/index.js +23 -21
  151. package/es/ProLayout/components/ProHeader/components/Describe/index.js +67 -84
  152. package/es/ProLayout/components/ProHeader/components/ProBackBtn/index.js +18 -21
  153. package/es/ProLayout/components/ProHeader/components/ProBackBtn/propsType.js +0 -1
  154. package/es/ProLayout/components/ProHeader/components/index.js +6 -2
  155. package/es/ProLayout/components/ProHeader/index.js +216 -356
  156. package/es/ProLayout/components/ProHeader/utils/index.js +19 -26
  157. package/es/ProLayout/components/TabsManager/components/TabContextMenu.js +92 -85
  158. package/es/ProLayout/components/TabsManager/components/TabItem.js +53 -63
  159. package/es/ProLayout/components/TabsManager/components/TabsContext.js +5 -5
  160. package/es/ProLayout/components/TabsManager/components/TabsHeader.js +42 -52
  161. package/es/ProLayout/components/TabsManager/hooks/useActiveTab.js +8 -9
  162. package/es/ProLayout/components/TabsManager/hooks/useIframeRoute.js +19 -32
  163. package/es/ProLayout/components/TabsManager/hooks/useProLayoutTabs.js +6 -20
  164. package/es/ProLayout/components/TabsManager/hooks/useTabsCache.js +25 -42
  165. package/es/ProLayout/components/TabsManager/hooks/useTabsState.js +320 -350
  166. package/es/ProLayout/components/TabsManager/hooks/useTabsUrlSync.d.ts +19 -0
  167. package/es/ProLayout/components/TabsManager/hooks/useTabsUrlSync.js +332 -0
  168. package/es/ProLayout/components/TabsManager/index.js +407 -351
  169. package/es/ProLayout/components/TabsManager/propTypes.d.ts +4 -0
  170. package/es/ProLayout/components/TabsManager/propTypes.js +7 -15
  171. package/es/ProLayout/components/TabsManager/style/index.less +1 -1
  172. package/es/ProLayout/components/TabsManager/utils/historyObserver.d.ts +7 -0
  173. package/es/ProLayout/components/TabsManager/utils/historyObserver.js +65 -0
  174. package/es/ProLayout/components/TabsManager/utils/index.d.ts +15 -2
  175. package/es/ProLayout/components/TabsManager/utils/index.js +156 -159
  176. package/es/ProLayout/components/index.js +8 -3
  177. package/es/ProLayout/index.js +173 -228
  178. package/es/ProLayout/propTypes.d.ts +28 -1
  179. package/es/ProLayout/propTypes.js +12 -52
  180. package/es/ProLayout/utils/index.js +48 -128
  181. package/es/ProSelect/components/AdaptiveTooltip.js +26 -25
  182. package/es/ProSelect/index.js +187 -223
  183. package/es/ProSelect/propsType.js +0 -1
  184. package/es/ProSelect/style/index.less +13 -0
  185. package/es/ProSelect/utils/index.js +100 -146
  186. package/es/ProStep/components/Anchor/index.js +71 -82
  187. package/es/ProStep/components/Item/index.js +49 -56
  188. package/es/ProStep/components/LazyLoad/index.js +23 -29
  189. package/es/ProStep/components/Listener/index.js +20 -33
  190. package/es/ProStep/components/Step/index.js +31 -38
  191. package/es/ProStep/constants.js +4 -1
  192. package/es/ProStep/index.js +166 -153
  193. package/es/ProStep/propsType.js +0 -1
  194. package/es/ProStep/style/index.less +1 -1
  195. package/es/ProStep/utils/index.js +29 -55
  196. package/es/ProStepTab/index.js +83 -138
  197. package/es/ProStepTab/propsType.js +0 -1
  198. package/es/ProTable/components/EditableCell/EditIcon.js +10 -14
  199. package/es/ProTable/components/EditableCell/index.js +37 -71
  200. package/es/ProTable/components/EditableCell/propsType.js +0 -1
  201. package/es/ProTable/components/FormatColumn/index.js +209 -340
  202. package/es/ProTable/components/FormatColumn/propsType.js +0 -1
  203. package/es/ProTable/components/RcTable/components/BaseTable/index.js +35 -39
  204. package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.js +80 -107
  205. package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/utils/index.js +54 -48
  206. package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/utils/propsType.js +0 -1
  207. package/es/ProTable/components/RcTable/components/DraggableTable/index.js +47 -54
  208. package/es/ProTable/components/RcTable/index.js +6 -4
  209. package/es/ProTable/components/RenderColumn/index.js +158 -186
  210. package/es/ProTable/components/RenderEmptyText/index.js +12 -21
  211. package/es/ProTable/components/RenderFooter/index.js +15 -15
  212. package/es/ProTable/components/RenderSummary/index.js +33 -50
  213. package/es/ProTable/components/RenderTableHeader/index.js +44 -46
  214. package/es/ProTable/components/RenderTabs/index.js +47 -51
  215. package/es/ProTable/components/TableResizable/index.js +56 -72
  216. package/es/ProTable/components/TooltipTitle/index.js +13 -21
  217. package/es/ProTable/components/index.js +16 -36
  218. package/es/ProTable/hooks/useAntdTable.js +191 -224
  219. package/es/ProTable/index.js +232 -249
  220. package/es/ProTable/propsType.js +0 -1
  221. package/es/ProTable/utils/columnStorage.js +63 -88
  222. package/es/ProTable/utils/index.js +57 -90
  223. package/es/ProTabs/components/Card/index.js +20 -48
  224. package/es/ProTabs/components/index.js +4 -1
  225. package/es/ProTabs/index.js +41 -58
  226. package/es/ProTabs/propType.js +0 -1
  227. package/es/ProThemeTools/component/ProTools/index.js +106 -158
  228. package/es/ProThemeTools/component/index.js +4 -1
  229. package/es/ProThemeTools/context/ThemeContext.js +67 -146
  230. package/es/ProThemeTools/index.js +103 -156
  231. package/es/ProThemeTools/propsType.js +0 -1
  232. package/es/ProThemeTools/utils/index.js +60 -109
  233. package/es/ProTooltip/index.js +132 -168
  234. package/es/ProTooltip/propsType.js +0 -1
  235. package/es/ProTree/components/AdaptiveTooltip.js +15 -17
  236. package/es/ProTree/components/CloseIcon.js +18 -26
  237. package/es/ProTree/components/List.js +28 -47
  238. package/es/ProTree/components/ProTree.js +152 -211
  239. package/es/ProTree/components/ProTreeSelect/index.js +255 -459
  240. package/es/ProTree/components/ProTreeSelect/propsType.js +0 -1
  241. package/es/ProTree/components/SearchTitle.js +23 -42
  242. package/es/ProTree/components/Tree.js +147 -195
  243. package/es/ProTree/components/index.js +10 -5
  244. package/es/ProTree/index.js +12 -16
  245. package/es/ProTree/propsType.js +0 -1
  246. package/es/ProTree/utils.js +46 -118
  247. package/es/ProTreeModal/components/Cascader.js +56 -64
  248. package/es/ProTreeModal/components/CloseIcon.js +18 -26
  249. package/es/ProTreeModal/components/List.js +114 -180
  250. package/es/ProTreeModal/components/SearchTitle.js +15 -18
  251. package/es/ProTreeModal/components/SortableItem.js +29 -58
  252. package/es/ProTreeModal/components/Tree.js +99 -113
  253. package/es/ProTreeModal/components/Trigger.js +87 -121
  254. package/es/ProTreeModal/components/index.js +14 -6
  255. package/es/ProTreeModal/index.js +397 -438
  256. package/es/ProTreeModal/propsType.js +0 -1
  257. package/es/ProTreeModal/utils.js +52 -95
  258. package/es/ProUpload/components/ButtonRender.js +44 -54
  259. package/es/ProUpload/components/DragRender.js +94 -148
  260. package/es/ProUpload/components/DraggableUploadListItem.js +12 -25
  261. package/es/ProUpload/components/Example.js +27 -31
  262. package/es/ProUpload/components/FileItem.js +69 -163
  263. package/es/ProUpload/components/ImageRender.js +134 -170
  264. package/es/ProUpload/index.js +68 -100
  265. package/es/ProUpload/propsType.js +0 -1
  266. package/es/ProUpload/uitls.js +8 -4
  267. package/es/ProUtils/utils/index.js +17 -13
  268. package/es/ProViewer/index.js +154 -175
  269. package/es/ProViewer/propsType.js +0 -5
  270. package/es/ProWaterMark/index.js +9 -16
  271. package/es/ProWaterMark/propsType.js +0 -1
  272. package/es/hooks/useDraggableRow.js +25 -53
  273. package/es/index.js +57 -77
  274. package/es/locale/en_US.js +153 -142
  275. package/es/locale/index.js +23 -36
  276. package/es/locale/zh_CN.js +145 -142
  277. package/es/tokens.js +84 -83
  278. package/es/utils/index.js +24 -51
  279. package/package.json +4 -2
  280. package/es/ProConfigProvider/demo/locale.js +0 -58
@@ -1,41 +1,29 @@
1
- import _cloneDeep from "lodash/cloneDeep";
2
- import _isEqual from "lodash/isEqual";
3
- import _debounce from "lodash/debounce";
4
- import warning from 'rc-util/lib/warning';
5
- import { useState, useEffect, useRef, useMemo } from 'react';
1
+ import debounce from "lodash/debounce";
2
+ import isEqual from "lodash/isEqual";
3
+ import cloneDeep from "lodash/cloneDeep";
4
+ import warning from "rc-util/lib/warning";
5
+ import { useState, useEffect, useRef, useMemo } from "react";
6
6
  import { toArray } from "../utils";
7
-
8
- // 从一个对象或Form值中获取特定路径的值
9
7
  function get(source, path) {
10
8
  if (!source || path.length === 0) {
11
9
  return source;
12
10
  }
13
11
  let current = source;
14
12
  for (let i = 0; i < path.length; i++) {
15
- if (current === undefined || current === null) {
16
- return undefined;
13
+ if (current === void 0 || current === null) {
14
+ return void 0;
17
15
  }
18
16
  current = current[path[i]];
19
17
  }
20
18
  return current;
21
19
  }
22
-
23
- /**
24
- * 将值设置到指定路径的嵌套对象中
25
- * @param obj 目标对象
26
- * @param path 路径数组
27
- * @param value 要设置的值
28
- */
29
20
  function setValueByPath(obj, path, value) {
30
- if (path.length === 0) return;
31
-
32
- // 处理单层路径
21
+ if (path.length === 0)
22
+ return;
33
23
  if (path.length === 1) {
34
24
  obj[path[0]] = value;
35
25
  return;
36
26
  }
37
-
38
- // 处理多层嵌套路径
39
27
  let current = obj;
40
28
  for (let i = 0; i < path.length - 1; i++) {
41
29
  const key = path[i];
@@ -46,115 +34,73 @@ function setValueByPath(obj, path, value) {
46
34
  }
47
35
  current[path[path.length - 1]] = value;
48
36
  }
49
-
50
- // 创建之后namepath就不可变的警告
51
- // selector 模式(dependencies 为函数)下跳过:函数引用每次渲染不同,无法稳定 stringify
52
- const useWatchWarning = process.env.NODE_ENV !== 'production' ? dependencies => {
53
- const isSelector = typeof dependencies === 'function';
54
- const depsStr = isSelector ? '__selector__' : JSON.stringify(dependencies);
37
+ const useWatchWarning = (dependencies) => {
38
+ const isSelector = typeof dependencies === "function";
39
+ const depsStr = isSelector ? "__selector__" : JSON.stringify(dependencies);
55
40
  const depsStrRef = useRef(depsStr);
56
41
  if (!isSelector) {
57
- warning(depsStrRef.current === depsStr, '`useWatch` is not support dynamic `namePath`. Please provide static instead.');
42
+ warning(
43
+ depsStrRef.current === depsStr,
44
+ "`useWatch` is not support dynamic `namePath`. Please provide static instead."
45
+ );
58
46
  }
59
- } : () => {};
60
-
61
- /**
62
- * selector 函数:接收所有表单值,返回派生值
63
- * 与 antd 5.12.0+ Form.useWatch selector 行为一致
64
- */
65
-
66
- /**
67
- * ProForm的useWatch hook,用于监听表单字段变化
68
- * 支持三种依赖形式:
69
- * 1. 字符串路径:useWatch('fieldName', form)
70
- * 2. 路径数组:useWatch(['a', 'b'], form) 或 useWatch([['a', 'b'], 'c'], form)
71
- * 3. selector 函数:useWatch((values) => values.a + values.b, form)
72
- *
73
- * @param dependencies 监听的字段路径或 selector 函数
74
- * @param form 表单实例
75
- * @param wait 防抖等待时间
76
- * @returns 表单值或 selector 返回的派生值
77
- */
78
-
47
+ };
79
48
  function useWatch(dependencies, form, wait) {
80
- const isSelector = typeof dependencies === 'function';
81
-
82
- // 无条件调用,内部按 isSelector 决定是否真正执行警告逻辑,保证 Hook 顺序稳定
49
+ const isSelector = typeof dependencies === "function";
83
50
  useWatchWarning(dependencies);
84
-
85
- // 获取表单实例
86
51
  const formInstance = form;
87
-
88
- // 用于存储最终结果(selector 模式下值类型由 selector 决定)
89
- const [state, setState] = useState(isSelector ? undefined : {});
90
-
91
- // 使用ref存储中间状态,避免不必要的渲染
92
- const valueRef = useRef(isSelector ? undefined : {});
93
- const prevStateRef = useRef(isSelector ? undefined : {});
94
-
95
- // 标准化依赖为路径数组的数组(selector 模式下为空数组,不参与)
96
- const namePaths = useMemo(() => {
97
- const paths = [];
98
- if (isSelector) {
99
- return paths;
100
- }
101
-
102
- // 字符串形式: 'fieldName'
103
- if (typeof dependencies === 'string') {
104
- paths.push(dependencies);
105
- // 数组形式
106
- } else if (Array.isArray(dependencies)) {
107
- // 检查是否是路径数组的集合,例如:[['a', 'number'], 'fieldName']
108
- const isPathsCollection = dependencies.length > 0 && (typeof dependencies[0] === 'string' || Array.isArray(dependencies[0]));
109
- if (isPathsCollection) {
110
- // 每个元素都是一个路径
111
- dependencies.forEach(path => {
112
- paths.push(path);
113
- });
114
- } else {
115
- // 整个数组是一个单一路径
52
+ const [state, setState] = useState(isSelector ? void 0 : {});
53
+ const valueRef = useRef(isSelector ? void 0 : {});
54
+ const prevStateRef = useRef(isSelector ? void 0 : {});
55
+ const namePaths = useMemo(
56
+ () => {
57
+ const paths = [];
58
+ if (isSelector) {
59
+ return paths;
60
+ }
61
+ if (typeof dependencies === "string") {
116
62
  paths.push(dependencies);
63
+ } else if (Array.isArray(dependencies)) {
64
+ const isPathsCollection = dependencies.length > 0 && (typeof dependencies[0] === "string" || Array.isArray(dependencies[0]));
65
+ if (isPathsCollection) {
66
+ dependencies.forEach((path) => {
67
+ paths.push(path);
68
+ });
69
+ } else {
70
+ paths.push(dependencies);
71
+ }
117
72
  }
118
- }
119
- return paths;
120
- }, [
121
- /* dependencies 故意忽略,与原实现一致 */
122
- ]);
123
-
124
- // selector 函数 ref:使最新 selector 始终被调用,但不触发 useEffect 重订阅
73
+ return paths;
74
+ },
75
+ [
76
+ /* dependencies 故意忽略,与原实现一致 */
77
+ ]
78
+ );
125
79
  const selectorRef = useRef(null);
126
80
  if (isSelector) {
127
81
  selectorRef.current = dependencies;
128
82
  }
129
-
130
- // 保存防抖函数引用,避免重复创建
131
83
  const debouncedFn = useMemo(() => {
132
84
  if (wait) {
133
- return _debounce(value => {
134
- // 只在值真正变化时才更新状态
135
- if (!_isEqual(prevStateRef.current, value)) {
136
- prevStateRef.current = _cloneDeep(value);
85
+ return debounce((value) => {
86
+ if (!isEqual(prevStateRef.current, value)) {
87
+ prevStateRef.current = cloneDeep(value);
137
88
  setState(value);
138
89
  }
139
90
  }, wait);
140
91
  }
141
-
142
- // 非防抖版本
143
- return value => {
144
- if (!_isEqual(prevStateRef.current, value)) {
145
- prevStateRef.current = _cloneDeep(value);
92
+ return (value) => {
93
+ if (!isEqual(prevStateRef.current, value)) {
94
+ prevStateRef.current = cloneDeep(value);
146
95
  setState(value);
147
96
  }
148
97
  };
149
98
  }, [wait]);
150
99
  useEffect(() => {
151
- if (!formInstance) return undefined;
152
-
153
- // 创建更新状态的函数
154
- const updateState = () => {
155
- const values = formInstance.getFieldsValue(true);
156
-
157
- // selector 模式:直接调用 selector 计算派生值
100
+ if (!formInstance)
101
+ return void 0;
102
+ const updateState = (watchValues) => {
103
+ const values = watchValues ?? formInstance.getFieldsValue(true);
158
104
  if (isSelector && selectorRef.current) {
159
105
  const next = selectorRef.current(values);
160
106
  valueRef.current = next;
@@ -162,41 +108,20 @@ function useWatch(dependencies, form, wait) {
162
108
  return;
163
109
  }
164
110
  const newState = {};
165
-
166
- // 处理每个监听路径
167
- namePaths.forEach(path => {
168
- // 将路径转换为数组形式
111
+ namePaths.forEach((path) => {
169
112
  const namePath = toArray(path);
170
-
171
- // 获取路径对应的值
172
113
  const value = get(values, namePath);
173
-
174
- // 将值设置到正确的嵌套结构中
175
114
  setValueByPath(newState, namePath, value);
176
115
  });
177
-
178
- // 存储并更新状态
179
116
  valueRef.current = newState;
180
117
  debouncedFn(newState);
181
118
  };
182
-
183
- // 初始调用一次
184
119
  updateState();
185
-
186
- // 注册表单变化监听
187
- const {
188
- getInternalHooks
189
- } = formInstance;
190
- const {
191
- registerWatch
192
- } = getInternalHooks('RC_FORM_INTERNAL_HOOKS');
193
- const cancelWatch = registerWatch(values => {
194
- if (values) {
195
- updateState();
196
- }
120
+ const { getInternalHooks } = formInstance;
121
+ const { registerWatch } = getInternalHooks("RC_FORM_INTERNAL_HOOKS");
122
+ const cancelWatch = registerWatch((values, allValues) => {
123
+ updateState(allValues ?? values);
197
124
  });
198
-
199
- // 清理订阅
200
125
  return () => {
201
126
  if (wait) {
202
127
  debouncedFn.cancel();
@@ -206,4 +131,7 @@ function useWatch(dependencies, form, wait) {
206
131
  }, [formInstance, namePaths, debouncedFn, wait]);
207
132
  return state;
208
133
  }
209
- export default useWatch;
134
+ var useWatch_default = useWatch;
135
+ export {
136
+ useWatch_default as default
137
+ };