@sheinx/hooks 3.7.0-beta.3 → 3.7.0-beta.30

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 (119) hide show
  1. package/cjs/common/use-component-memo/index.d.ts +2 -0
  2. package/cjs/common/use-component-memo/index.d.ts.map +1 -0
  3. package/cjs/common/use-component-memo/index.js +13 -0
  4. package/cjs/common/use-component-memo/use-memo.d.ts +2 -0
  5. package/cjs/common/use-component-memo/use-memo.d.ts.map +1 -0
  6. package/cjs/common/{use-memo → use-component-memo}/use-memo.js +2 -2
  7. package/cjs/common/use-position-style/check-element-size.d.ts +10 -0
  8. package/cjs/common/use-position-style/check-element-size.d.ts.map +1 -0
  9. package/cjs/common/use-position-style/check-element-size.js +65 -0
  10. package/cjs/common/use-position-style/index.d.ts.map +1 -1
  11. package/cjs/common/use-position-style/index.js +5 -8
  12. package/cjs/components/use-form/use-form-control/use-form-control.d.ts.map +1 -1
  13. package/cjs/components/use-form/use-form-control/use-form-control.js +15 -2
  14. package/cjs/components/use-form/use-form-control/use-form-control.type.d.ts +3 -0
  15. package/cjs/components/use-form/use-form-control/use-form-control.type.d.ts.map +1 -1
  16. package/cjs/components/use-form/use-form.d.ts +4 -4
  17. package/cjs/components/use-form/use-form.d.ts.map +1 -1
  18. package/cjs/components/use-form/use-form.js +38 -29
  19. package/cjs/components/use-form/use-form.type.d.ts +1 -0
  20. package/cjs/components/use-form/use-form.type.d.ts.map +1 -1
  21. package/cjs/components/use-image/use-image.d.ts +2 -0
  22. package/cjs/components/use-image/use-image.d.ts.map +1 -1
  23. package/cjs/components/use-image/use-image.js +40 -2
  24. package/cjs/components/use-popup/popup-context.d.ts +2 -0
  25. package/cjs/components/use-popup/popup-context.d.ts.map +1 -1
  26. package/cjs/components/use-popup/popup-context.js +2 -0
  27. package/cjs/components/use-popup/use-popup.d.ts +4 -0
  28. package/cjs/components/use-popup/use-popup.d.ts.map +1 -1
  29. package/cjs/components/use-popup/use-popup.js +33 -13
  30. package/cjs/components/use-table/index.d.ts +1 -1
  31. package/cjs/components/use-table/index.d.ts.map +1 -1
  32. package/cjs/components/use-table/use-table-group.d.ts.map +1 -1
  33. package/cjs/components/use-table/use-table-group.js +3 -1
  34. package/cjs/components/use-table/use-table-layout.d.ts.map +1 -1
  35. package/cjs/components/use-table/use-table-layout.js +29 -2
  36. package/cjs/components/use-table/use-table-row.d.ts +0 -1
  37. package/cjs/components/use-table/use-table-row.d.ts.map +1 -1
  38. package/cjs/components/use-table/use-table-row.js +0 -11
  39. package/cjs/components/use-table/use-table-virtual.d.ts +2 -2
  40. package/cjs/components/use-table/use-table-virtual.d.ts.map +1 -1
  41. package/cjs/components/use-table/use-table-virtual.js +16 -14
  42. package/cjs/components/use-table/use-table.type.d.ts +13 -10
  43. package/cjs/components/use-table/use-table.type.d.ts.map +1 -1
  44. package/cjs/components/use-tree/use-tree.d.ts.map +1 -1
  45. package/cjs/components/use-tree/use-tree.js +25 -7
  46. package/cjs/components/use-tree/use-tree.type.d.ts +1 -0
  47. package/cjs/components/use-tree/use-tree.type.d.ts.map +1 -1
  48. package/cjs/components/use-upload/use-upload.d.ts.map +1 -1
  49. package/cjs/components/use-upload/use-upload.js +54 -34
  50. package/cjs/components/use-upload/use-upload.type.d.ts +7 -0
  51. package/cjs/components/use-upload/use-upload.type.d.ts.map +1 -1
  52. package/cjs/index.d.ts +1 -1
  53. package/cjs/index.d.ts.map +1 -1
  54. package/cjs/index.js +4 -4
  55. package/esm/common/use-component-memo/index.d.ts +2 -0
  56. package/esm/common/use-component-memo/index.d.ts.map +1 -0
  57. package/esm/common/use-component-memo/index.js +2 -0
  58. package/esm/common/use-component-memo/use-memo.d.ts +2 -0
  59. package/esm/common/use-component-memo/use-memo.d.ts.map +1 -0
  60. package/esm/common/{use-memo → use-component-memo}/use-memo.js +1 -1
  61. package/esm/common/use-position-style/check-element-size.d.ts +10 -0
  62. package/esm/common/use-position-style/check-element-size.d.ts.map +1 -0
  63. package/esm/common/use-position-style/check-element-size.js +59 -0
  64. package/esm/common/use-position-style/index.d.ts.map +1 -1
  65. package/esm/common/use-position-style/index.js +5 -8
  66. package/esm/components/use-form/use-form-control/use-form-control.d.ts.map +1 -1
  67. package/esm/components/use-form/use-form-control/use-form-control.js +15 -2
  68. package/esm/components/use-form/use-form-control/use-form-control.type.d.ts +3 -0
  69. package/esm/components/use-form/use-form-control/use-form-control.type.d.ts.map +1 -1
  70. package/esm/components/use-form/use-form.d.ts +4 -4
  71. package/esm/components/use-form/use-form.d.ts.map +1 -1
  72. package/esm/components/use-form/use-form.js +38 -29
  73. package/esm/components/use-form/use-form.type.d.ts +1 -0
  74. package/esm/components/use-form/use-form.type.d.ts.map +1 -1
  75. package/esm/components/use-image/use-image.d.ts +2 -0
  76. package/esm/components/use-image/use-image.d.ts.map +1 -1
  77. package/esm/components/use-image/use-image.js +40 -2
  78. package/esm/components/use-popup/popup-context.d.ts +2 -0
  79. package/esm/components/use-popup/popup-context.d.ts.map +1 -1
  80. package/esm/components/use-popup/popup-context.js +2 -0
  81. package/esm/components/use-popup/use-popup.d.ts +4 -0
  82. package/esm/components/use-popup/use-popup.d.ts.map +1 -1
  83. package/esm/components/use-popup/use-popup.js +34 -14
  84. package/esm/components/use-table/index.d.ts +1 -1
  85. package/esm/components/use-table/index.d.ts.map +1 -1
  86. package/esm/components/use-table/use-table-group.d.ts.map +1 -1
  87. package/esm/components/use-table/use-table-group.js +3 -1
  88. package/esm/components/use-table/use-table-layout.d.ts.map +1 -1
  89. package/esm/components/use-table/use-table-layout.js +29 -2
  90. package/esm/components/use-table/use-table-row.d.ts +0 -1
  91. package/esm/components/use-table/use-table-row.d.ts.map +1 -1
  92. package/esm/components/use-table/use-table-row.js +0 -11
  93. package/esm/components/use-table/use-table-virtual.d.ts +2 -2
  94. package/esm/components/use-table/use-table-virtual.d.ts.map +1 -1
  95. package/esm/components/use-table/use-table-virtual.js +16 -14
  96. package/esm/components/use-table/use-table.type.d.ts +13 -10
  97. package/esm/components/use-table/use-table.type.d.ts.map +1 -1
  98. package/esm/components/use-tree/use-tree.d.ts.map +1 -1
  99. package/esm/components/use-tree/use-tree.js +26 -8
  100. package/esm/components/use-tree/use-tree.type.d.ts +1 -0
  101. package/esm/components/use-tree/use-tree.type.d.ts.map +1 -1
  102. package/esm/components/use-upload/use-upload.d.ts.map +1 -1
  103. package/esm/components/use-upload/use-upload.js +54 -34
  104. package/esm/components/use-upload/use-upload.type.d.ts +7 -0
  105. package/esm/components/use-upload/use-upload.type.d.ts.map +1 -1
  106. package/esm/index.d.ts +1 -1
  107. package/esm/index.d.ts.map +1 -1
  108. package/esm/index.js +1 -1
  109. package/package.json +1 -1
  110. package/cjs/common/use-memo/index.d.ts +0 -2
  111. package/cjs/common/use-memo/index.d.ts.map +0 -1
  112. package/cjs/common/use-memo/index.js +0 -20
  113. package/cjs/common/use-memo/use-memo.d.ts +0 -2
  114. package/cjs/common/use-memo/use-memo.d.ts.map +0 -1
  115. package/esm/common/use-memo/index.d.ts +0 -2
  116. package/esm/common/use-memo/index.d.ts.map +0 -1
  117. package/esm/common/use-memo/index.js +0 -2
  118. package/esm/common/use-memo/use-memo.d.ts +0 -2
  119. package/esm/common/use-memo/use-memo.d.ts.map +0 -1
@@ -65,11 +65,12 @@ var promised = function promised(action) {
65
65
  resolve(true);
66
66
  });
67
67
  };
68
+ var defaultValue = [];
68
69
  var useUpload = function useUpload(props) {
69
70
  var _props$limit = props.limit,
70
71
  limit = _props$limit === void 0 ? 100 : _props$limit,
71
72
  _props$value = props.value,
72
- value = _props$value === void 0 ? [] : _props$value;
73
+ value = _props$value === void 0 ? defaultValue : _props$value;
73
74
  var accept = props.forceAccept || props.accept;
74
75
  var forceAccept = !!props.forceAccept;
75
76
  var _useState = (0, _react.useState)({}),
@@ -189,21 +190,22 @@ var useUpload = function useUpload(props) {
189
190
  responseType: props.responseType,
190
191
  onStart: props.onStart,
191
192
  onProgress: function onProgress(e, msg) {
192
- if (throttle) return;
193
+ var percent = typeof e.percent === 'number' ? e.percent : e.loaded / e.total * 100;
194
+ if (throttle && percent !== 100) return;
193
195
  throttle = true;
194
196
  setTimeout(function () {
195
197
  throttle = false;
196
198
  }, 16);
197
- var percent = typeof e.percent === 'number' ? e.percent : e.loaded / e.total * 100;
198
- var filesState = latestState.filesState;
199
- var newFiles = _objectSpread({}, filesState);
200
- if (!newFiles[id]) return;
201
- newFiles[id].process = percent;
202
- if (msg) newFiles[id].message = msg;
203
- setFiles(newFiles);
204
- if (typeof props.onProgress === 'function') {
205
- props.onProgress(newFiles[id]);
206
- }
199
+ setFiles(function (files) {
200
+ return (0, _immer.produce)(files, function (draft) {
201
+ if (!draft[id]) return draft;
202
+ draft[id].process = percent;
203
+ if (msg) draft[id].message = msg;
204
+ if (typeof props.onProgress === 'function') {
205
+ props.onProgress(draft[id]);
206
+ }
207
+ });
208
+ });
207
209
  },
208
210
  onLoad: function onLoad(xhr) {
209
211
  if (!/^2|1223/.test("".concat(xhr.status))) {
@@ -231,11 +233,17 @@ var useUpload = function useUpload(props) {
231
233
  delete draft[id];
232
234
  });
233
235
  });
234
- // add value
235
- var values = (0, _immer.produce)(latestState.value, function (draft) {
236
- draft.push(result);
237
- });
238
- props.onChange(values);
236
+ if (props.functionalOnChange) {
237
+ // 回调型 setState不会丢值
238
+ props.onChange(function (prev) {
239
+ return [].concat(_toConsumableArray(prev || []), [result]);
240
+ });
241
+ } else {
242
+ var latestValue = latestState.value;
243
+ var newValue = _toConsumableArray(latestValue);
244
+ newValue.push(result);
245
+ props.onChange(newValue);
246
+ }
239
247
  }
240
248
  },
241
249
  onError: function onError(xhr) {
@@ -353,48 +361,60 @@ var useUpload = function useUpload(props) {
353
361
  error = _context2.sent;
354
362
  case 21:
355
363
  if (!(error instanceof Error)) {
356
- _context2.next = 30;
364
+ _context2.next = 29;
357
365
  break;
358
366
  }
359
367
  if (validatorHandle(error, blob)) {
360
- _context2.next = 26;
368
+ _context2.next = 25;
361
369
  break;
362
370
  }
363
- delete newFiles[id];
364
- setFiles(_objectSpread({}, newFiles));
371
+ setFiles(function (prev) {
372
+ return (0, _immer.produce)(prev, function (draft) {
373
+ delete draft[id];
374
+ });
375
+ });
365
376
  return _context2.abrupt("return", 0);
366
- case 26:
377
+ case 25:
367
378
  fileRecord.message = error.message;
368
379
  fileRecord.status = 3;
369
- setFiles(_objectSpread({}, newFiles));
380
+ setFiles(function (prev) {
381
+ return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, id, fileRecord));
382
+ });
370
383
  return _context2.abrupt("return", 0);
371
- case 30:
384
+ case 29:
372
385
  if (!props.beforeUpload) {
373
- _context2.next = 37;
386
+ _context2.next = 36;
374
387
  break;
375
388
  }
376
389
  beforeUploadResult = props.beforeUpload(blob); // @ts-ignoreq
377
390
  if (!(beforeUploadResult && beforeUploadResult.then)) {
378
- _context2.next = 35;
391
+ _context2.next = 34;
379
392
  break;
380
393
  }
381
394
  props.beforeUpload(blob).then(function (args) {
382
395
  if (args.status !== 'error') {
383
396
  newFiles[id].xhr = uploadFile(id, blob, fileRecord.src);
384
- setFiles(_objectSpread({}, newFiles));
397
+ setFiles(function (prev) {
398
+ return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, id, fileRecord));
399
+ });
385
400
  }
386
401
  }).catch(function () {
387
- delete newFiles[id];
388
- setFiles(_objectSpread({}, newFiles));
402
+ setFiles(function (prev) {
403
+ return (0, _immer.produce)(prev, function (draft) {
404
+ delete draft[id];
405
+ });
406
+ });
389
407
  });
390
408
  return _context2.abrupt("return", 0);
391
- case 35:
392
- _context2.next = 39;
409
+ case 34:
410
+ _context2.next = 38;
393
411
  break;
394
- case 37:
412
+ case 36:
395
413
  fileRecord.xhr = uploadFile(id, blob, fileRecord.src);
396
- setFiles(_objectSpread({}, newFiles));
397
- case 39:
414
+ setFiles(function (prev) {
415
+ return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, id, fileRecord));
416
+ });
417
+ case 38:
398
418
  case "end":
399
419
  return _context2.stop();
400
420
  }
@@ -166,6 +166,13 @@ export interface UseUploadProps<ValueItem = any> {
166
166
  forceAcceptErrorMsg: string;
167
167
  invalidImage: string;
168
168
  };
169
+ /**
170
+ * @cn 设置为true后,组件的onChange参数会返回函数,即回调函数方式的setState
171
+ * @en After setting to true, the onChange parameter of the component will return a function, that is, the setState of the callback function
172
+ * @default false
173
+ * @version 3.6.5
174
+ */
175
+ functionalOnChange?: boolean;
169
176
  }
170
177
  export interface Validator {
171
178
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"use-upload.type.d.ts","sourceRoot":"","sources":["use-upload.type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-upload.type.d.ts","sourceRoot":"","sources":["use-upload.type.ts"],"names":[],"mappings":"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"}
package/cjs/index.d.ts CHANGED
@@ -23,7 +23,7 @@ export * from './common/use-drag-mock';
23
23
  export * from './common/use-pagination-list';
24
24
  export * from './common/use-filter';
25
25
  export * from './common/use-scrollbar-width';
26
- export * from './common/use-memo';
26
+ export * from './common/use-component-memo';
27
27
  export * from './components/use-input';
28
28
  export * from './components/use-textarea';
29
29
  export * from './components/use-form';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,UAAU,CAAC;AAEjC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,IAAI,EAAE,CAAC;AAGhB,cAAc,eAAe,CAAC;AAE9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAGlC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;;AAE1C,wBAAkB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,UAAU,CAAC;AAEjC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,IAAI,EAAE,CAAC;AAGhB,cAAc,eAAe,CAAC;AAE9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAG5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;;AAE1C,wBAAkB"}
package/cjs/index.js CHANGED
@@ -287,15 +287,15 @@ Object.keys(_useScrollbarWidth).forEach(function (key) {
287
287
  }
288
288
  });
289
289
  });
290
- var _useMemo = require("./common/use-memo");
291
- Object.keys(_useMemo).forEach(function (key) {
290
+ var _useComponentMemo = require("./common/use-component-memo");
291
+ Object.keys(_useComponentMemo).forEach(function (key) {
292
292
  if (key === "default" || key === "__esModule") return;
293
293
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
294
- if (key in exports && exports[key] === _useMemo[key]) return;
294
+ if (key in exports && exports[key] === _useComponentMemo[key]) return;
295
295
  Object.defineProperty(exports, key, {
296
296
  enumerable: true,
297
297
  get: function get() {
298
- return _useMemo[key];
298
+ return _useComponentMemo[key];
299
299
  }
300
300
  });
301
301
  });
@@ -0,0 +1,2 @@
1
+ export { useComponentMemo } from './use-memo';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ export { useComponentMemo } from "./use-memo";
@@ -0,0 +1,2 @@
1
+ export declare function useComponentMemo<Value, Condition = any[]>(getValue: () => Value, condition: Condition, shouldUpdate?: (prev: Condition, next: Condition) => boolean): Value | undefined;
2
+ //# sourceMappingURL=use-memo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-memo.d.ts","sourceRoot":"","sources":["use-memo.ts"],"names":[],"mappings":"AAQA,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,EAAE,EACvD,QAAQ,EAAE,MAAM,KAAK,EACrB,SAAS,EAAE,SAAS,EACpB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,KAAK,OAAO,qBAc7D"}
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- export default function useMemo(getValue, condition, shouldUpdate) {
2
+ export function useComponentMemo(getValue, condition, shouldUpdate) {
3
3
  var cacheRef = React.useRef({});
4
4
  if (!shouldUpdate) return getValue();
5
5
  if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {
@@ -0,0 +1,10 @@
1
+ export interface Size {
2
+ width?: number;
3
+ height?: number;
4
+ }
5
+ interface UseCheckElementSizeOptions {
6
+ enable?: boolean;
7
+ }
8
+ export declare const useCheckElementSize: (targetElementRef: React.RefObject<HTMLElement>, options?: UseCheckElementSizeOptions) => Size | null;
9
+ export {};
10
+ //# sourceMappingURL=check-element-size.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-element-size.d.ts","sourceRoot":"","sources":["check-element-size.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,IAAI;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,0BAA0B;IAElC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,mBAAmB,qBACZ,MAAM,SAAS,CAAC,WAAW,CAAC,YACrC,0BAA0B,KAClC,IAAI,GAAG,IAmDT,CAAC"}
@@ -0,0 +1,59 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import { useState, useEffect, useRef, useCallback } from 'react';
8
+ export var useCheckElementSize = function useCheckElementSize(targetElementRef) {
9
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
10
+ var enable = options.enable;
11
+ var _useState = useState({
12
+ width: 0,
13
+ height: 0
14
+ }),
15
+ _useState2 = _slicedToArray(_useState, 2),
16
+ size = _useState2[0],
17
+ setSize = _useState2[1];
18
+ var lastSize = useRef({
19
+ width: 0,
20
+ height: 0
21
+ });
22
+ var checkSize = useCallback(function () {
23
+ if (targetElementRef.current) {
24
+ var rect = targetElementRef.current.getBoundingClientRect();
25
+ var newSize = {
26
+ width: rect.width,
27
+ height: rect.height
28
+ };
29
+ if (newSize.width !== lastSize.current.width || newSize.height !== lastSize.current.height) {
30
+ setSize(newSize);
31
+ lastSize.current = newSize;
32
+ }
33
+ }
34
+ }, [targetElementRef]);
35
+ useEffect(function () {
36
+ var _window;
37
+ if (!enable) return;
38
+ var element = targetElementRef.current;
39
+ if (!element) return;
40
+
41
+ // 初始检查
42
+ checkSize();
43
+ var resizeObserver = null;
44
+ if ((_window = window) !== null && _window !== void 0 && _window.ResizeObserver) {
45
+ resizeObserver = new ResizeObserver(checkSize);
46
+ resizeObserver.observe(element);
47
+ }
48
+
49
+ // 清理函数
50
+ return function () {
51
+ var _resizeObserver;
52
+ (_resizeObserver = resizeObserver) === null || _resizeObserver === void 0 || _resizeObserver.disconnect();
53
+ };
54
+ }, [enable, targetElementRef, checkSize]);
55
+ if (!enable || !targetElementRef) {
56
+ return null;
57
+ }
58
+ return size;
59
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AASnD,MAAM,MAAM,kBAAkB,GAC1B,aAAa,GACb,UAAU,GACV,cAAc,GACd,WAAW,GACX,MAAM,GACN,OAAO,CAAC;AACZ,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,cAAc,GACd,UAAU,GACV,WAAW,GACX,KAAK,GACL,QAAQ,CAAC;AAYb,KAAK,YAAY,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,OAAO,CAAC;AACpE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IAEd,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAE1C,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAEzC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,YAAY,EAAE,MAAM,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3B;AAOD,eAAO,MAAM,gBAAgB,WAAY,mBAAmB;;CA4R3D,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAUnD,MAAM,MAAM,kBAAkB,GAC1B,aAAa,GACb,UAAU,GACV,cAAc,GACd,WAAW,GACX,MAAM,GACN,OAAO,CAAC;AACZ,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,cAAc,GACd,UAAU,GACV,WAAW,GACX,KAAK,GACL,QAAQ,CAAC;AAYb,KAAK,YAAY,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,OAAO,CAAC;AACpE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IAEd,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAE1C,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAEzC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,YAAY,EAAE,MAAM,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3B;AAOD,eAAO,MAAM,gBAAgB,WAAY,mBAAmB;;CAwR3D,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -9,6 +9,7 @@ import React, { useEffect, useState } from 'react';
9
9
  import { getPositionStyle } from "./get-position-style";
10
10
  import { useCheckElementPosition } from "./check-position";
11
11
  import { useCheckElementBorderWidth } from "./check-border";
12
+ import { useCheckElementSize } from "./check-element-size";
12
13
  import shallowEqual from "../../utils/shallow-equal";
13
14
  import usePersistFn from "../use-persist-fn";
14
15
  import { getCurrentCSSZoom } from "../../utils";
@@ -67,6 +68,9 @@ export var usePositionStyle = function usePositionStyle(config) {
67
68
  var parentElBorderWidth = useCheckElementBorderWidth(parentElRef, {
68
69
  direction: 'horizontal'
69
70
  });
71
+ var popupElSize = useCheckElementSize(popupElRef, {
72
+ enable: show
73
+ });
70
74
  var adjustPosition = function adjustPosition(position) {
71
75
  var winHeight = docSize.height;
72
76
  if (!verticalPosition.includes(position)) return position;
@@ -162,13 +166,6 @@ export var usePositionStyle = function usePositionStyle(config) {
162
166
  style.right = containerRect.right - rect.right + containerScrollBarWidth - containerScroll.left - (offset ? offset[0] : 0);
163
167
  style.left = 'auto';
164
168
  style.transform = '';
165
- if (adjust) {
166
- overLeft = bodyRect.left - (rect.right - context.popUpWidth);
167
- if (style.right < 0 && targetRect) {
168
- style.left = bodyRect.width - targetRect.width;
169
- style.right = 'auto';
170
- }
171
- }
172
169
  } else {
173
170
  // 居中对齐
174
171
  style.left = rect.left + rect.width / 2 - containerRect.left + containerScroll.left;
@@ -310,7 +307,7 @@ export var usePositionStyle = function usePositionStyle(config) {
310
307
  // 当父元素的滚动容器滚动时,判断是否需要更新弹出层位置,包括是否隐藏弹出层(通过hideStyle隐藏,不是show状态)
311
308
  context.prevParentPosition = parentElNewPosition;
312
309
  });
313
- useEffect(updateStyle, [show, position, absolute, updateKey, fixedWidth, parentElNewPosition]);
310
+ useEffect(updateStyle, [show, position, absolute, updateKey, fixedWidth, parentElNewPosition, popupElSize]);
314
311
  return {
315
312
  style: style
316
313
  };
@@ -1 +1 @@
1
- {"version":3,"file":"use-form-control.d.ts","sourceRoot":"","sources":["use-form-control.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AA0B/D,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC;;kBA6IpC,CAAC,YAAY,GAAG,EAAE;;;;;EAkDrD"}
1
+ {"version":3,"file":"use-form-control.d.ts","sourceRoot":"","sources":["use-form-control.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,oBAAoB,EAAsB,MAAM,yBAAyB,CAAC;AA2BnF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC;;kBAiJpC,CAAC,YAAY,GAAG,EAAE;;;;;EA4DrD"}
@@ -19,6 +19,7 @@ import { deepGet } from "../../../utils/object";
19
19
  import { shallowEqual } from "../../../utils/shallow-equal";
20
20
  import usePersistFn from "../../../common/use-persist-fn";
21
21
  import useLatestObj from "../../../common/use-latest-obj";
22
+ import { devUseWarning } from "../../../utils/warning";
22
23
  var getValue = function getValue(name, formValue) {
23
24
  if (!name) return undefined;
24
25
  if (isArray(name)) {
@@ -58,6 +59,10 @@ export default function useFormControl(props) {
58
59
  _React$useState2 = _slicedToArray(_React$useState, 2),
59
60
  errorState = _React$useState2[0],
60
61
  setErrorState = _React$useState2[1];
62
+ var _React$useRef = React.useRef({
63
+ mounted: false
64
+ }),
65
+ context = _React$useRef.current;
61
66
  var value;
62
67
  var error = errorState;
63
68
  var inForm = false;
@@ -212,12 +217,20 @@ export default function useFormControl(props) {
212
217
  if (isArray(name)) {
213
218
  var dv = isArray(defaultValue) ? defaultValue : [];
214
219
  name.forEach(function (n, index) {
215
- controlFunc.bind(n, dv[index], validateField, update);
220
+ var v = formFunc === null || formFunc === void 0 ? void 0 : formFunc.getValue(n);
221
+ var bindedValue = v === undefined ? dv[index] : v;
222
+ controlFunc.bind(n, context.mounted ? bindedValue : dv[index], validateField, update);
216
223
  });
217
224
  } else {
218
- controlFunc.bind(name, defaultValue, validateField, update);
225
+ var v = formFunc === null || formFunc === void 0 ? void 0 : formFunc.getValue(name);
226
+ var bindedValue = v === undefined ? defaultValue : v;
227
+ controlFunc.bind(name, context.mounted ? bindedValue : defaultValue, validateField, update);
228
+ }
229
+ if (context.mounted) {
230
+ devUseWarning.warn('Please avoid modifying the name property after the component has mounted, as this may result in unintended behavior or errors.');
219
231
  }
220
232
  }
233
+ context.mounted = true;
221
234
  return function () {
222
235
  if (inForm && controlFunc) {
223
236
  if (isArray(name)) {
@@ -33,4 +33,7 @@ export interface BaseFormControlProps<T> {
33
33
  */
34
34
  getValidateProps: (() => ObjectType) | undefined;
35
35
  }
36
+ export interface FormControlContext {
37
+ mounted: boolean;
38
+ }
36
39
  //# sourceMappingURL=use-form-control.type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-form-control.type.d.ts","sourceRoot":"","sources":["use-form-control.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5D;;;OAGG;IACH,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC;;;;OAIG;IACH,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACnC;;OAEG;IACH,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D;;;OAGG;IACH,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3B;;OAEG;IACH,gBAAgB,EAAE,CAAC,MAAM,UAAU,CAAC,GAAG,SAAS,CAAC;CAClD"}
1
+ {"version":3,"file":"use-form-control.type.d.ts","sourceRoot":"","sources":["use-form-control.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5D;;;OAGG;IACH,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC;;;;OAIG;IACH,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACnC;;OAEG;IACH,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D;;;OAGG;IACH,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3B;;OAEG;IACH,gBAAgB,EAAE,CAAC,MAAM,UAAU,CAAC,GAAG,SAAS,CAAC;CAClD;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;CAClB"}
@@ -11,10 +11,10 @@ declare const useForm: <T extends ObjectType>(props: UseFormProps<T>) => {
11
11
  [key: string]: any;
12
12
  }, option?: {
13
13
  validate?: boolean;
14
- names?: string[];
14
+ forceUpdate?: boolean;
15
15
  }) => void;
16
16
  getValue: (name?: string) => unknown;
17
- submit: (withValidate?: boolean) => void;
17
+ submit: (withValidate?: boolean, callback?: () => void) => void;
18
18
  reset: () => void;
19
19
  setError: (name: string, e: Error | undefined) => void;
20
20
  getErrors: () => ObjectType<Error | undefined>;
@@ -31,10 +31,10 @@ declare const useForm: <T extends ObjectType>(props: UseFormProps<T>) => {
31
31
  [key: string]: any;
32
32
  }, option?: {
33
33
  validate?: boolean;
34
- names?: string[];
34
+ forceUpdate?: boolean;
35
35
  }) => void;
36
36
  getValue: (name?: string) => unknown;
37
- submit: (withValidate?: boolean) => void;
37
+ submit: (withValidate?: boolean, callback?: () => void) => void;
38
38
  reset: () => void;
39
39
  setError: (name: string, e: Error | undefined) => void;
40
40
  getErrors: () => ObjectType<Error | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"use-form.d.ts","sourceRoot":"","sources":["use-form.ts"],"names":[],"mappings":"AA+BA,OAAO,EAEL,aAAa,EACb,YAAY,EACZ,gBAAgB,EAGhB,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAe,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAI5D,QAAA,MAAM,OAAO;;;;;;;;;wBAyRC;gBAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;gBAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;aAAE;8BA9Jd,MAAM;oCAiOD,OAAO;;6BAfb,MAAM,KAAK,KAAK,GAAG,SAAS;;oCAdrB,MAAM,EAAE;sCA5LxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;qCA8PvB,MAAM,WAAW,gBAAgB;gCA/CzB,MAAM,SAAS,MAAM,UAAU,KAAK;gCAKpC,MAAM,SAAS,MAAM;kCAnIpD,MAAM,0BAAyB,qBAAqB;;;;;;oBAqEjD;YAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE;0BA9Jd,MAAM;gCAiOD,OAAO;;yBAfb,MAAM,KAAK,KAAK,GAAG,SAAS;;gCAdrB,MAAM,EAAE;kCA5LxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;iCA8PvB,MAAM,WAAW,gBAAgB;4BA/CzB,MAAM,SAAS,MAAM,UAAU,KAAK;4BAKpC,MAAM,SAAS,MAAM;8BAnIpD,MAAM,0BAAyB,qBAAqB;;CAma9D,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"use-form.d.ts","sourceRoot":"","sources":["use-form.ts"],"names":[],"mappings":"AA+BA,OAAO,EAEL,aAAa,EACb,YAAY,EACZ,gBAAgB,EAGhB,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAe,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAI5D,QAAA,MAAM,OAAO;;;;;;;;;wBAgSC;gBAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;gBAAC,WAAW,CAAC,EAAE,OAAO,CAAA;aAAE;8BApKnB,MAAM;oCA+OD,OAAO,aAAoB,MAAM,IAAI;;6BAf3C,MAAM,KAAK,KAAK,GAAG,SAAS;;oCAdrB,MAAM,EAAE;sCA1MxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;qCA6QvB,MAAM,WAAW,gBAAgB;gCAhDzB,MAAM,SAAS,MAAM,UAAU,KAAK;gCAKpC,MAAM,SAAS,MAAM;kCAjJpD,MAAM,0BAAyB,qBAAqB;;;;;;oBA2EjD;YAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;YAAC,WAAW,CAAC,EAAE,OAAO,CAAA;SAAE;0BApKnB,MAAM;gCA+OD,OAAO,aAAoB,MAAM,IAAI;;yBAf3C,MAAM,KAAK,KAAK,GAAG,SAAS;;gCAdrB,MAAM,EAAE;kCA1MxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;iCA6QvB,MAAM,WAAW,gBAAgB;4BAhDzB,MAAM,SAAS,MAAM,UAAU,KAAK;4BAKpC,MAAM,SAAS,MAAM;8BAjJpD,MAAM,0BAAyB,qBAAqB;;CAsb9D,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -38,7 +38,8 @@ var useForm = function useForm(props) {
38
38
  size = props.size,
39
39
  colon = props.colon,
40
40
  formName = props.name,
41
- scrollParent = props.scrollParent;
41
+ scrollParent = props.scrollParent,
42
+ isControl = props.isControl;
42
43
  var deepSetOptions = {
43
44
  removeUndefined: removeUndefined,
44
45
  forceSet: true
@@ -192,7 +193,7 @@ var useForm = function useForm(props) {
192
193
  if (errors.length > 0) {
193
194
  var errorFields = [];
194
195
  for (var _key in context.errors) {
195
- if (context.errors[_key]) {
196
+ if (context.errors[_key] && context.names.has(_key)) {
196
197
  var _context$errors$_key;
197
198
  errorFields.push({
198
199
  name: _key,
@@ -294,13 +295,16 @@ var useForm = function useForm(props) {
294
295
  var values = Object.keys(vals);
295
296
  // 针对 name 为数组模式,如 datepicker 的 name={['startTime', 'endTime']} 时,前者校验可能需要依赖后者,因此需要提前将后者数据整合至 draft 用于多字段整合校验
296
297
  values.forEach(function (key) {
297
- deepSet(draft, key, vals[key], deepSetOptions);
298
+ // upload组件返回的可能是函数: (prev) => [...prev, file]
299
+ var valueOfKey = typeof vals[key] === 'function' ? vals[key](getValue(key)) : vals[key];
300
+ deepSet(draft, key, valueOfKey, deepSetOptions);
298
301
  });
299
302
  values.forEach(function (key) {
300
303
  if (option.validate) {
301
304
  var _context$validateMap$;
302
305
  (_context$validateMap$ = context.validateMap[key]) === null || _context$validateMap$ === void 0 || _context$validateMap$.forEach(function (validate) {
303
- validate(key, vals[key], current(draft));
306
+ var valueOfKey = typeof vals[key] === 'function' ? vals[key](getValue(key)) : vals[key];
307
+ validate(key, valueOfKey, current(draft));
304
308
  });
305
309
  }
306
310
  });
@@ -311,7 +315,11 @@ var useForm = function useForm(props) {
311
315
  fullKeyPaths.forEach(function (key) {
312
316
  delete context.serverErrors[key];
313
317
  });
314
- update(fullKeyPaths);
318
+ if (option.forceUpdate) {
319
+ update();
320
+ } else {
321
+ update(fullKeyPaths);
322
+ }
315
323
  });
316
324
  var updateDefaultValue = function updateDefaultValue() {
317
325
  if (!context.mounted) return;
@@ -356,6 +364,7 @@ var useForm = function useForm(props) {
356
364
  });
357
365
  var submit = usePersistFn(function () {
358
366
  var withValidate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
367
+ var callback = arguments.length > 1 ? arguments[1] : undefined;
359
368
  if (disabled) return;
360
369
  if (context.submitLock) {
361
370
  return;
@@ -373,32 +382,29 @@ var useForm = function useForm(props) {
373
382
  while (1) switch (_context.prev = _context.next) {
374
383
  case 0:
375
384
  if (withValidate) {
376
- _context.next = 3;
385
+ _context.next = 4;
377
386
  break;
378
387
  }
379
388
  (_props$onSubmit = props.onSubmit) === null || _props$onSubmit === void 0 || _props$onSubmit.call(props, (_context$value = context.value) !== null && _context$value !== void 0 ? _context$value : {});
389
+ callback === null || callback === void 0 || callback();
380
390
  return _context.abrupt("return");
381
- case 3:
382
- _context.next = 5;
391
+ case 4:
392
+ _context.next = 6;
383
393
  return validateFields(undefined, {
384
394
  ignoreBind: true
385
395
  }).catch(function (e) {
386
396
  return e;
387
397
  });
388
- case 5:
398
+ case 6:
389
399
  result = _context.sent;
390
- if (!(result === true)) {
391
- _context.next = 11;
392
- break;
400
+ if (result === true) {
401
+ (_props$onSubmit2 = props.onSubmit) === null || _props$onSubmit2 === void 0 || _props$onSubmit2.call(props, (_context$value2 = context.value) !== null && _context$value2 !== void 0 ? _context$value2 : {});
402
+ if (activeEl) activeEl.focus();
403
+ } else {
404
+ handleSubmitError(result);
393
405
  }
394
- (_props$onSubmit2 = props.onSubmit) === null || _props$onSubmit2 === void 0 || _props$onSubmit2.call(props, (_context$value2 = context.value) !== null && _context$value2 !== void 0 ? _context$value2 : {});
395
- if (activeEl) activeEl.focus();
396
- _context.next = 13;
397
- break;
398
- case 11:
399
- handleSubmitError(result);
400
- return _context.abrupt("return");
401
- case 13:
406
+ callback === null || callback === void 0 || callback();
407
+ case 9:
402
408
  case "end":
403
409
  return _context.stop();
404
410
  }
@@ -482,15 +488,15 @@ var useForm = function useForm(props) {
482
488
  context.updateMap[n] = new Set();
483
489
  }
484
490
  context.updateMap[n].add(updateFn);
491
+ var shouldTriggerResetChange = context.removeArr.has(n);
485
492
  context.removeArr.delete(n);
486
- if (df !== undefined && deepGet(context.value, n) === undefined) {
493
+ var shouldTriggerDefaultChange = df !== undefined && deepGet(context.value, n) === undefined;
494
+ if (shouldTriggerDefaultChange || shouldTriggerResetChange) {
487
495
  if (!context.mounted) context.defaultValues[n] = df;
488
- setTimeout(function () {
489
- onChange(function (v) {
490
- deepSet(v, n, df, deepSetOptions);
491
- });
492
- update(n);
496
+ onChange(function (v) {
497
+ deepSet(v, n, df, deepSetOptions);
493
498
  });
499
+ update(n);
494
500
  }
495
501
  },
496
502
  unbind: function unbind(n, reserveAble, validateField, update) {
@@ -505,7 +511,6 @@ var useForm = function useForm(props) {
505
511
  }
506
512
  if (validateFieldSet.size === 0 && updateFieldSet.size === 0) {
507
513
  context.names.delete(n);
508
- delete context.errors[n];
509
514
  delete context.defaultValues[n];
510
515
  }
511
516
  var finalReserveAble = (_props$reserveAble = props.reserveAble) !== null && _props$reserveAble !== void 0 ? _props$reserveAble : reserveAble;
@@ -600,7 +605,10 @@ var useForm = function useForm(props) {
600
605
  React.useEffect(function () {
601
606
  context.removeLock = false;
602
607
  // 内部 onChange 改的 value, 不需要更新
603
- if (props.value === context.value) return;
608
+ if (props.value === context.value) {
609
+ if (!isControl) update();
610
+ return;
611
+ }
604
612
  if (initValidate && !context.resetTime) {
605
613
  var keys = Object.keys(context.validateMap).filter(function (key) {
606
614
  var oldValue = deepGet(preValue || emptyObj, key);
@@ -610,7 +618,8 @@ var useForm = function useForm(props) {
610
618
  validateFields(keys).catch(function () {});
611
619
  }
612
620
  update();
613
- updateDefaultValue();
621
+ // 默认值上位时会提前触发外部的onChange, 导致外部的多次setFormValue不能合并后生效的问题(ReactDOM.render方式渲染)
622
+ setTimeout(updateDefaultValue);
614
623
  context.resetTime = 0;
615
624
  }, [props.value]);
616
625
  React.useEffect(function () {
@@ -187,6 +187,7 @@ export interface BaseFormProps<T> extends Omit<FormCommonConfig, 'formName'> {
187
187
  }
188
188
  export type UseFormProps<T> = BaseFormProps<T> & {
189
189
  formElRef: React.RefObject<HTMLFormElement>;
190
+ isControl: boolean;
190
191
  };
191
192
  export type FormContext = {
192
193
  defaultValues: ObjectType;