@sheinx/hooks 3.6.5-beta.8 → 3.6.5

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.
@@ -14,7 +14,7 @@ declare const useForm: <T extends ObjectType>(props: UseFormProps<T>) => {
14
14
  names?: string[];
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>;
@@ -34,7 +34,7 @@ declare const useForm: <T extends ObjectType>(props: UseFormProps<T>) => {
34
34
  names?: string[];
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;;;;;;;;;wBAgSC;gBAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;gBAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;aAAE;8BApKd,MAAM;oCAuOD,OAAO;;6BAfb,MAAM,KAAK,KAAK,GAAG,SAAS;;oCAdrB,MAAM,EAAE;sCAlMxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;qCAoQvB,MAAM,WAAW,gBAAgB;gCA/CzB,MAAM,SAAS,MAAM,UAAU,KAAK;gCAKpC,MAAM,SAAS,MAAM;kCAzIpD,MAAM,0BAAyB,qBAAqB;;;;;;oBA2EjD;YAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE;0BApKd,MAAM;gCAuOD,OAAO;;yBAfb,MAAM,KAAK,KAAK,GAAG,SAAS;;gCAdrB,MAAM,EAAE;kCAlMxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;iCAoQvB,MAAM,WAAW,gBAAgB;4BA/CzB,MAAM,SAAS,MAAM,UAAU,KAAK;4BAKpC,MAAM,SAAS,MAAM;8BAzIpD,MAAM,0BAAyB,qBAAqB;;CA8a9D,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,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;aAAE;8BApKd,MAAM;oCA0OD,OAAO,aAAoB,MAAM,IAAI;;6BAf3C,MAAM,KAAK,KAAK,GAAG,SAAS;;oCAdrB,MAAM,EAAE;sCArMxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;qCAwQvB,MAAM,WAAW,gBAAgB;gCAhDzB,MAAM,SAAS,MAAM,UAAU,KAAK;gCAKpC,MAAM,SAAS,MAAM;kCA5IpD,MAAM,0BAAyB,qBAAqB;;;;;;oBA2EjD;YAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE;0BApKd,MAAM;gCA0OD,OAAO,aAAoB,MAAM,IAAI;;yBAf3C,MAAM,KAAK,KAAK,GAAG,SAAS;;gCAdrB,MAAM,EAAE;kCArMxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;iCAwQvB,MAAM,WAAW,gBAAgB;4BAhDzB,MAAM,SAAS,MAAM,UAAU,KAAK;4BAKpC,MAAM,SAAS,MAAM;8BA5IpD,MAAM,0BAAyB,qBAAqB;;CAkb9D,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -304,13 +304,16 @@ var useForm = function useForm(props) {
304
304
  var values = Object.keys(vals);
305
305
  // 针对 name 为数组模式,如 datepicker 的 name={['startTime', 'endTime']} 时,前者校验可能需要依赖后者,因此需要提前将后者数据整合至 draft 用于多字段整合校验
306
306
  values.forEach(function (key) {
307
- (0, _utils.deepSet)(draft, key, vals[key], deepSetOptions);
307
+ // upload组件返回的可能是函数: (prev) => [...prev, file]
308
+ var valueOfKey = typeof vals[key] === 'function' ? vals[key](getValue(key)) : vals[key];
309
+ (0, _utils.deepSet)(draft, key, valueOfKey, deepSetOptions);
308
310
  });
309
311
  values.forEach(function (key) {
310
312
  if (option.validate) {
311
313
  var _context$validateMap$;
312
314
  (_context$validateMap$ = context.validateMap[key]) === null || _context$validateMap$ === void 0 || _context$validateMap$.forEach(function (validate) {
313
- validate(key, vals[key], (0, _immer.current)(draft));
315
+ var valueOfKey = typeof vals[key] === 'function' ? vals[key](getValue(key)) : vals[key];
316
+ validate(key, valueOfKey, (0, _immer.current)(draft));
314
317
  });
315
318
  }
316
319
  });
@@ -366,6 +369,7 @@ var useForm = function useForm(props) {
366
369
  });
367
370
  var submit = (0, _usePersistFn.default)(function () {
368
371
  var withValidate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
372
+ var callback = arguments.length > 1 ? arguments[1] : undefined;
369
373
  if (disabled) return;
370
374
  if (context.submitLock) {
371
375
  return;
@@ -383,32 +387,29 @@ var useForm = function useForm(props) {
383
387
  while (1) switch (_context.prev = _context.next) {
384
388
  case 0:
385
389
  if (withValidate) {
386
- _context.next = 3;
390
+ _context.next = 4;
387
391
  break;
388
392
  }
389
393
  (_props$onSubmit = props.onSubmit) === null || _props$onSubmit === void 0 || _props$onSubmit.call(props, (_context$value = context.value) !== null && _context$value !== void 0 ? _context$value : {});
394
+ callback === null || callback === void 0 || callback();
390
395
  return _context.abrupt("return");
391
- case 3:
392
- _context.next = 5;
396
+ case 4:
397
+ _context.next = 6;
393
398
  return validateFields(undefined, {
394
399
  ignoreBind: true
395
400
  }).catch(function (e) {
396
401
  return e;
397
402
  });
398
- case 5:
403
+ case 6:
399
404
  result = _context.sent;
400
- if (!(result === true)) {
401
- _context.next = 11;
402
- break;
405
+ if (result === true) {
406
+ (_props$onSubmit2 = props.onSubmit) === null || _props$onSubmit2 === void 0 || _props$onSubmit2.call(props, (_context$value2 = context.value) !== null && _context$value2 !== void 0 ? _context$value2 : {});
407
+ if (activeEl) activeEl.focus();
408
+ } else {
409
+ handleSubmitError(result);
403
410
  }
404
- (_props$onSubmit2 = props.onSubmit) === null || _props$onSubmit2 === void 0 || _props$onSubmit2.call(props, (_context$value2 = context.value) !== null && _context$value2 !== void 0 ? _context$value2 : {});
405
- if (activeEl) activeEl.focus();
406
- _context.next = 13;
407
- break;
408
- case 11:
409
- handleSubmitError(result);
410
- return _context.abrupt("return");
411
- case 13:
411
+ callback === null || callback === void 0 || callback();
412
+ case 9:
412
413
  case "end":
413
414
  return _context.stop();
414
415
  }
@@ -611,7 +612,7 @@ var useForm = function useForm(props) {
611
612
  context.removeLock = false;
612
613
  // 内部 onChange 改的 value, 不需要更新
613
614
  if (props.value === context.value) {
614
- // if (!isControl) update();
615
+ if (!isControl) update();
615
616
  return;
616
617
  }
617
618
  if (initValidate && !context.resetTime) {
@@ -14,7 +14,7 @@ declare const useForm: <T extends ObjectType>(props: UseFormProps<T>) => {
14
14
  names?: string[];
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>;
@@ -34,7 +34,7 @@ declare const useForm: <T extends ObjectType>(props: UseFormProps<T>) => {
34
34
  names?: string[];
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;;;;;;;;;wBAgSC;gBAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;gBAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;aAAE;8BApKd,MAAM;oCAuOD,OAAO;;6BAfb,MAAM,KAAK,KAAK,GAAG,SAAS;;oCAdrB,MAAM,EAAE;sCAlMxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;qCAoQvB,MAAM,WAAW,gBAAgB;gCA/CzB,MAAM,SAAS,MAAM,UAAU,KAAK;gCAKpC,MAAM,SAAS,MAAM;kCAzIpD,MAAM,0BAAyB,qBAAqB;;;;;;oBA2EjD;YAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE;0BApKd,MAAM;gCAuOD,OAAO;;yBAfb,MAAM,KAAK,KAAK,GAAG,SAAS;;gCAdrB,MAAM,EAAE;kCAlMxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;iCAoQvB,MAAM,WAAW,gBAAgB;4BA/CzB,MAAM,SAAS,MAAM,UAAU,KAAK;4BAKpC,MAAM,SAAS,MAAM;8BAzIpD,MAAM,0BAAyB,qBAAqB;;CA8a9D,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,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;aAAE;8BApKd,MAAM;oCA0OD,OAAO,aAAoB,MAAM,IAAI;;6BAf3C,MAAM,KAAK,KAAK,GAAG,SAAS;;oCAdrB,MAAM,EAAE;sCArMxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;qCAwQvB,MAAM,WAAW,gBAAgB;gCAhDzB,MAAM,SAAS,MAAM,UAAU,KAAK;gCAKpC,MAAM,SAAS,MAAM;kCA5IpD,MAAM,0BAAyB,qBAAqB;;;;;;oBA2EjD;YAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE;0BApKd,MAAM;gCA0OD,OAAO,aAAoB,MAAM,IAAI;;yBAf3C,MAAM,KAAK,KAAK,GAAG,SAAS;;gCAdrB,MAAM,EAAE;kCArMxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;iCAwQvB,MAAM,WAAW,gBAAgB;4BAhDzB,MAAM,SAAS,MAAM,UAAU,KAAK;4BAKpC,MAAM,SAAS,MAAM;8BA5IpD,MAAM,0BAAyB,qBAAqB;;CAkb9D,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -295,13 +295,16 @@ var useForm = function useForm(props) {
295
295
  var values = Object.keys(vals);
296
296
  // 针对 name 为数组模式,如 datepicker 的 name={['startTime', 'endTime']} 时,前者校验可能需要依赖后者,因此需要提前将后者数据整合至 draft 用于多字段整合校验
297
297
  values.forEach(function (key) {
298
- 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);
299
301
  });
300
302
  values.forEach(function (key) {
301
303
  if (option.validate) {
302
304
  var _context$validateMap$;
303
305
  (_context$validateMap$ = context.validateMap[key]) === null || _context$validateMap$ === void 0 || _context$validateMap$.forEach(function (validate) {
304
- 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));
305
308
  });
306
309
  }
307
310
  });
@@ -357,6 +360,7 @@ var useForm = function useForm(props) {
357
360
  });
358
361
  var submit = usePersistFn(function () {
359
362
  var withValidate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
363
+ var callback = arguments.length > 1 ? arguments[1] : undefined;
360
364
  if (disabled) return;
361
365
  if (context.submitLock) {
362
366
  return;
@@ -374,32 +378,29 @@ var useForm = function useForm(props) {
374
378
  while (1) switch (_context.prev = _context.next) {
375
379
  case 0:
376
380
  if (withValidate) {
377
- _context.next = 3;
381
+ _context.next = 4;
378
382
  break;
379
383
  }
380
384
  (_props$onSubmit = props.onSubmit) === null || _props$onSubmit === void 0 || _props$onSubmit.call(props, (_context$value = context.value) !== null && _context$value !== void 0 ? _context$value : {});
385
+ callback === null || callback === void 0 || callback();
381
386
  return _context.abrupt("return");
382
- case 3:
383
- _context.next = 5;
387
+ case 4:
388
+ _context.next = 6;
384
389
  return validateFields(undefined, {
385
390
  ignoreBind: true
386
391
  }).catch(function (e) {
387
392
  return e;
388
393
  });
389
- case 5:
394
+ case 6:
390
395
  result = _context.sent;
391
- if (!(result === true)) {
392
- _context.next = 11;
393
- break;
396
+ if (result === true) {
397
+ (_props$onSubmit2 = props.onSubmit) === null || _props$onSubmit2 === void 0 || _props$onSubmit2.call(props, (_context$value2 = context.value) !== null && _context$value2 !== void 0 ? _context$value2 : {});
398
+ if (activeEl) activeEl.focus();
399
+ } else {
400
+ handleSubmitError(result);
394
401
  }
395
- (_props$onSubmit2 = props.onSubmit) === null || _props$onSubmit2 === void 0 || _props$onSubmit2.call(props, (_context$value2 = context.value) !== null && _context$value2 !== void 0 ? _context$value2 : {});
396
- if (activeEl) activeEl.focus();
397
- _context.next = 13;
398
- break;
399
- case 11:
400
- handleSubmitError(result);
401
- return _context.abrupt("return");
402
- case 13:
402
+ callback === null || callback === void 0 || callback();
403
+ case 9:
403
404
  case "end":
404
405
  return _context.stop();
405
406
  }
@@ -602,7 +603,7 @@ var useForm = function useForm(props) {
602
603
  context.removeLock = false;
603
604
  // 内部 onChange 改的 value, 不需要更新
604
605
  if (props.value === context.value) {
605
- // if (!isControl) update();
606
+ if (!isControl) update();
606
607
  return;
607
608
  }
608
609
  if (initValidate && !context.resetTime) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sheinx/hooks",
3
- "version": "3.6.5-beta.8",
3
+ "version": "3.6.5",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",