@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.
- package/cjs/common/use-component-memo/index.d.ts +2 -0
- package/cjs/common/use-component-memo/index.d.ts.map +1 -0
- package/cjs/common/use-component-memo/index.js +13 -0
- package/cjs/common/use-component-memo/use-memo.d.ts +2 -0
- package/cjs/common/use-component-memo/use-memo.d.ts.map +1 -0
- package/cjs/common/{use-memo → use-component-memo}/use-memo.js +2 -2
- package/cjs/common/use-position-style/check-element-size.d.ts +10 -0
- package/cjs/common/use-position-style/check-element-size.d.ts.map +1 -0
- package/cjs/common/use-position-style/check-element-size.js +65 -0
- package/cjs/common/use-position-style/index.d.ts.map +1 -1
- package/cjs/common/use-position-style/index.js +5 -8
- package/cjs/components/use-form/use-form-control/use-form-control.d.ts.map +1 -1
- package/cjs/components/use-form/use-form-control/use-form-control.js +15 -2
- package/cjs/components/use-form/use-form-control/use-form-control.type.d.ts +3 -0
- package/cjs/components/use-form/use-form-control/use-form-control.type.d.ts.map +1 -1
- package/cjs/components/use-form/use-form.d.ts +4 -4
- package/cjs/components/use-form/use-form.d.ts.map +1 -1
- package/cjs/components/use-form/use-form.js +38 -29
- package/cjs/components/use-form/use-form.type.d.ts +1 -0
- package/cjs/components/use-form/use-form.type.d.ts.map +1 -1
- package/cjs/components/use-image/use-image.d.ts +2 -0
- package/cjs/components/use-image/use-image.d.ts.map +1 -1
- package/cjs/components/use-image/use-image.js +40 -2
- package/cjs/components/use-popup/popup-context.d.ts +2 -0
- package/cjs/components/use-popup/popup-context.d.ts.map +1 -1
- package/cjs/components/use-popup/popup-context.js +2 -0
- package/cjs/components/use-popup/use-popup.d.ts +4 -0
- package/cjs/components/use-popup/use-popup.d.ts.map +1 -1
- package/cjs/components/use-popup/use-popup.js +33 -13
- package/cjs/components/use-table/index.d.ts +1 -1
- package/cjs/components/use-table/index.d.ts.map +1 -1
- package/cjs/components/use-table/use-table-group.d.ts.map +1 -1
- package/cjs/components/use-table/use-table-group.js +3 -1
- package/cjs/components/use-table/use-table-layout.d.ts.map +1 -1
- package/cjs/components/use-table/use-table-layout.js +29 -2
- package/cjs/components/use-table/use-table-row.d.ts +0 -1
- package/cjs/components/use-table/use-table-row.d.ts.map +1 -1
- package/cjs/components/use-table/use-table-row.js +0 -11
- package/cjs/components/use-table/use-table-virtual.d.ts +2 -2
- package/cjs/components/use-table/use-table-virtual.d.ts.map +1 -1
- package/cjs/components/use-table/use-table-virtual.js +16 -14
- package/cjs/components/use-table/use-table.type.d.ts +13 -10
- package/cjs/components/use-table/use-table.type.d.ts.map +1 -1
- package/cjs/components/use-tree/use-tree.d.ts.map +1 -1
- package/cjs/components/use-tree/use-tree.js +25 -7
- package/cjs/components/use-tree/use-tree.type.d.ts +1 -0
- package/cjs/components/use-tree/use-tree.type.d.ts.map +1 -1
- package/cjs/components/use-upload/use-upload.d.ts.map +1 -1
- package/cjs/components/use-upload/use-upload.js +54 -34
- package/cjs/components/use-upload/use-upload.type.d.ts +7 -0
- package/cjs/components/use-upload/use-upload.type.d.ts.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.d.ts.map +1 -1
- package/cjs/index.js +4 -4
- package/esm/common/use-component-memo/index.d.ts +2 -0
- package/esm/common/use-component-memo/index.d.ts.map +1 -0
- package/esm/common/use-component-memo/index.js +2 -0
- package/esm/common/use-component-memo/use-memo.d.ts +2 -0
- package/esm/common/use-component-memo/use-memo.d.ts.map +1 -0
- package/esm/common/{use-memo → use-component-memo}/use-memo.js +1 -1
- package/esm/common/use-position-style/check-element-size.d.ts +10 -0
- package/esm/common/use-position-style/check-element-size.d.ts.map +1 -0
- package/esm/common/use-position-style/check-element-size.js +59 -0
- package/esm/common/use-position-style/index.d.ts.map +1 -1
- package/esm/common/use-position-style/index.js +5 -8
- package/esm/components/use-form/use-form-control/use-form-control.d.ts.map +1 -1
- package/esm/components/use-form/use-form-control/use-form-control.js +15 -2
- package/esm/components/use-form/use-form-control/use-form-control.type.d.ts +3 -0
- package/esm/components/use-form/use-form-control/use-form-control.type.d.ts.map +1 -1
- package/esm/components/use-form/use-form.d.ts +4 -4
- package/esm/components/use-form/use-form.d.ts.map +1 -1
- package/esm/components/use-form/use-form.js +38 -29
- package/esm/components/use-form/use-form.type.d.ts +1 -0
- package/esm/components/use-form/use-form.type.d.ts.map +1 -1
- package/esm/components/use-image/use-image.d.ts +2 -0
- package/esm/components/use-image/use-image.d.ts.map +1 -1
- package/esm/components/use-image/use-image.js +40 -2
- package/esm/components/use-popup/popup-context.d.ts +2 -0
- package/esm/components/use-popup/popup-context.d.ts.map +1 -1
- package/esm/components/use-popup/popup-context.js +2 -0
- package/esm/components/use-popup/use-popup.d.ts +4 -0
- package/esm/components/use-popup/use-popup.d.ts.map +1 -1
- package/esm/components/use-popup/use-popup.js +34 -14
- package/esm/components/use-table/index.d.ts +1 -1
- package/esm/components/use-table/index.d.ts.map +1 -1
- package/esm/components/use-table/use-table-group.d.ts.map +1 -1
- package/esm/components/use-table/use-table-group.js +3 -1
- package/esm/components/use-table/use-table-layout.d.ts.map +1 -1
- package/esm/components/use-table/use-table-layout.js +29 -2
- package/esm/components/use-table/use-table-row.d.ts +0 -1
- package/esm/components/use-table/use-table-row.d.ts.map +1 -1
- package/esm/components/use-table/use-table-row.js +0 -11
- package/esm/components/use-table/use-table-virtual.d.ts +2 -2
- package/esm/components/use-table/use-table-virtual.d.ts.map +1 -1
- package/esm/components/use-table/use-table-virtual.js +16 -14
- package/esm/components/use-table/use-table.type.d.ts +13 -10
- package/esm/components/use-table/use-table.type.d.ts.map +1 -1
- package/esm/components/use-tree/use-tree.d.ts.map +1 -1
- package/esm/components/use-tree/use-tree.js +26 -8
- package/esm/components/use-tree/use-tree.type.d.ts +1 -0
- package/esm/components/use-tree/use-tree.type.d.ts.map +1 -1
- package/esm/components/use-upload/use-upload.d.ts.map +1 -1
- package/esm/components/use-upload/use-upload.js +54 -34
- package/esm/components/use-upload/use-upload.type.d.ts +7 -0
- package/esm/components/use-upload/use-upload.type.d.ts.map +1 -1
- package/esm/index.d.ts +1 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -1
- package/package.json +1 -1
- package/cjs/common/use-memo/index.d.ts +0 -2
- package/cjs/common/use-memo/index.d.ts.map +0 -1
- package/cjs/common/use-memo/index.js +0 -20
- package/cjs/common/use-memo/use-memo.d.ts +0 -2
- package/cjs/common/use-memo/use-memo.d.ts.map +0 -1
- package/esm/common/use-memo/index.d.ts +0 -2
- package/esm/common/use-memo/index.d.ts.map +0 -1
- package/esm/common/use-memo/index.js +0 -2
- package/esm/common/use-memo/use-memo.d.ts +0 -2
- 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 ?
|
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
|
-
|
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
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
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
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
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 =
|
364
|
+
_context2.next = 29;
|
357
365
|
break;
|
358
366
|
}
|
359
367
|
if (validatorHandle(error, blob)) {
|
360
|
-
_context2.next =
|
368
|
+
_context2.next = 25;
|
361
369
|
break;
|
362
370
|
}
|
363
|
-
|
364
|
-
|
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
|
377
|
+
case 25:
|
367
378
|
fileRecord.message = error.message;
|
368
379
|
fileRecord.status = 3;
|
369
|
-
setFiles(
|
380
|
+
setFiles(function (prev) {
|
381
|
+
return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, id, fileRecord));
|
382
|
+
});
|
370
383
|
return _context2.abrupt("return", 0);
|
371
|
-
case
|
384
|
+
case 29:
|
372
385
|
if (!props.beforeUpload) {
|
373
|
-
_context2.next =
|
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 =
|
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(
|
397
|
+
setFiles(function (prev) {
|
398
|
+
return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, id, fileRecord));
|
399
|
+
});
|
385
400
|
}
|
386
401
|
}).catch(function () {
|
387
|
-
|
388
|
-
|
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
|
392
|
-
_context2.next =
|
409
|
+
case 34:
|
410
|
+
_context2.next = 38;
|
393
411
|
break;
|
394
|
-
case
|
412
|
+
case 36:
|
395
413
|
fileRecord.xhr = uploadFile(id, blob, fileRecord.src);
|
396
|
-
setFiles(
|
397
|
-
|
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';
|
package/cjs/index.d.ts.map
CHANGED
@@ -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,
|
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
|
291
|
-
Object.keys(
|
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] ===
|
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
|
298
|
+
return _useComponentMemo[key];
|
299
299
|
}
|
300
300
|
});
|
301
301
|
});
|
@@ -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 @@
|
|
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
|
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;
|
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":"
|
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
|
-
|
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
|
-
|
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)) {
|
@@ -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
|
-
|
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
|
-
|
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;;;;;;;;;
|
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
|
-
|
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
|
-
|
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
|
-
|
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 =
|
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
|
382
|
-
_context.next =
|
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
|
398
|
+
case 6:
|
389
399
|
result = _context.sent;
|
390
|
-
if (
|
391
|
-
|
392
|
-
|
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
|
-
|
395
|
-
|
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
|
-
|
493
|
+
var shouldTriggerDefaultChange = df !== undefined && deepGet(context.value, n) === undefined;
|
494
|
+
if (shouldTriggerDefaultChange || shouldTriggerResetChange) {
|
487
495
|
if (!context.mounted) context.defaultValues[n] = df;
|
488
|
-
|
489
|
-
|
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)
|
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
|
-
|
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;
|