iglooform 2.5.50 → 2.5.52

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.
@@ -87,7 +87,10 @@ var Step = function Step(_ref) {
87
87
  shouldRender = _ref.shouldRender,
88
88
  subscribedFields = _ref.subscribedFields,
89
89
  buttonText = _ref.buttonText,
90
- validationRule = _ref.validationRule;
90
+ validationRule = _ref.validationRule,
91
+ asserts = _ref.asserts,
92
+ dependencies = _ref.dependencies,
93
+ shouldRenderCode = _ref.shouldRenderCode;
91
94
 
92
95
  var _useContext = (0, _react.useContext)(_locale.LocaleContext),
93
96
  formatMessage = _useContext.formatMessage,
@@ -122,6 +125,14 @@ var Step = function Step(_ref) {
122
125
  if (shouldRender || getButtonDisabledState) {
123
126
  registerDependencies(Array.isArray(subscribedFields) ? subscribedFields : 'SUBSCRIBE_ALL', dispatch);
124
127
  }
128
+
129
+ if (asserts === null || asserts === void 0 ? void 0 : asserts.length) {
130
+ var dependentField = asserts.map(function (_ref2) {
131
+ var field = _ref2.field;
132
+ return field;
133
+ });
134
+ registerDependencies(dependentField, dispatch);
135
+ }
125
136
  }, []);
126
137
  var pName = (0, _react.useMemo)(function () {
127
138
  return (0, _formUtils.calcNamePath)(parentName, name);
@@ -174,7 +185,7 @@ var Step = function Step(_ref) {
174
185
  };
175
186
 
176
187
  var handleNext = /*#__PURE__*/function () {
177
- var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
188
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
178
189
  var _allFields$filter;
179
190
 
180
191
  var allFields, allValues, fields, res, errors;
@@ -184,11 +195,11 @@ var Step = function Step(_ref) {
184
195
  case 0:
185
196
  allFields = (form === null || form === void 0 ? void 0 : form.getFieldsError()) || [];
186
197
  allValues = form === null || form === void 0 ? void 0 : form.getFieldsValue(true);
187
- fields = allFields === null || allFields === void 0 ? void 0 : (_allFields$filter = allFields.filter(function (_ref3) {
188
- var name = _ref3.name;
189
- return name.join().startsWith(pName === null || pName === void 0 ? void 0 : pName.join());
190
- })) === null || _allFields$filter === void 0 ? void 0 : _allFields$filter.map(function (_ref4) {
198
+ fields = allFields === null || allFields === void 0 ? void 0 : (_allFields$filter = allFields.filter(function (_ref4) {
191
199
  var name = _ref4.name;
200
+ return name.join().startsWith(pName === null || pName === void 0 ? void 0 : pName.join());
201
+ })) === null || _allFields$filter === void 0 ? void 0 : _allFields$filter.map(function (_ref5) {
202
+ var name = _ref5.name;
192
203
  return name;
193
204
  });
194
205
  _context.prev = 3;
@@ -273,11 +284,11 @@ var Step = function Step(_ref) {
273
284
  }));
274
285
 
275
286
  return function handleNext() {
276
- return _ref2.apply(this, arguments);
287
+ return _ref3.apply(this, arguments);
277
288
  };
278
289
  }();
279
290
 
280
- if (typeof shouldRender === 'function' && !shouldRender(form)) {
291
+ if (!(0, _formUtils.calcShouldRender)(pName, dependencies, asserts, shouldRender, shouldRenderCode, form)) {
281
292
  return null;
282
293
  }
283
294
 
package/lib/types.d.ts CHANGED
@@ -123,6 +123,7 @@ export interface FormItemExtraConfig extends FormItemProps {
123
123
  maxLength?: number;
124
124
  idType?: 'KTP' | 'NIK';
125
125
  validationRule?: string;
126
+ shouldRenderCode?: string;
126
127
  [key: string]: any;
127
128
  }
128
129
  export interface FormItemConfig extends FormItemExtraConfig {
@@ -193,6 +193,31 @@ var IglooUpload = function IglooUpload(props) {
193
193
  });
194
194
  };
195
195
  }, []);
196
+ (0, _react.useEffect)(function () {
197
+ if (!(value === null || value === void 0 ? void 0 : value.length) && !files.length) return;
198
+
199
+ if (files.length) {
200
+ var urls = files.map(function (f) {
201
+ var status = f.status,
202
+ name = f.name,
203
+ errorMsg = f.errorMsg;
204
+
205
+ if (status === 'failed') {
206
+ return {
207
+ name: name,
208
+ errorMsg: errorMsg
209
+ };
210
+ }
211
+
212
+ if (f.url || f.dataUrl) {
213
+ return f.url || f.dataUrl;
214
+ }
215
+ });
216
+ onChange && onChange(urls);
217
+ } else {
218
+ onChange && onChange([]);
219
+ }
220
+ }, [files]);
196
221
  (0, _invariant.default)(limit === undefined || limit > 0, "\"limit\" should be a pasitive number.");
197
222
 
198
223
  var onUpload = /*#__PURE__*/function () {
@@ -222,7 +247,8 @@ var IglooUpload = function IglooUpload(props) {
222
247
  return _context2.abrupt("return", Promise.reject(errorMsg));
223
248
 
224
249
  case 8:
225
- limitNumError.current = undefined;
250
+ limitNumError.current = undefined; // 上传过程中 status为‘progress’,后续通过state更新
251
+
226
252
  setFiles(function (files) {
227
253
  return [].concat(_toConsumableArray(files), [{
228
254
  name: name,
@@ -236,39 +262,21 @@ var IglooUpload = function IglooUpload(props) {
236
262
  }); // 符合文件个数限制之后 上传时的错误处理
237
263
 
238
264
  return _context2.abrupt("return", handleUploadPromise(file, function (url) {
239
- var urls = [];
240
- setFiles(function (files) {
265
+ return setFiles(function (files) {
241
266
  return files.map(function (f) {
242
- // 这里不能只处理成功的文件 因为这次上传的文件是成功了 但是这次之前可能会有上传失败的 需要将错误信息提取出来 否则错误提示会丢失
243
267
  if (f.uid === uid) {
244
- urls.push(url);
245
268
  return _objectSpread(_objectSpread({}, f), {}, {
246
269
  url: url,
247
270
  status: 'success'
248
271
  });
249
272
  }
250
273
 
251
- var status = f.status,
252
- name = f.name,
253
- errorMsg = f.errorMsg;
254
-
255
- if (status === 'failed') {
256
- urls.push({
257
- name: name,
258
- errorMsg: errorMsg
259
- });
260
- } else {
261
- f.url && urls.push(f.url);
262
- }
263
-
264
274
  return f;
265
275
  });
266
276
  });
267
- onChange && onChange(urls);
268
277
  }, function (errorMsg) {
269
- var fileList = [];
270
- setFiles(function (files) {
271
- var newList = files.map(function (f) {
278
+ return setFiles(function (files) {
279
+ return files.map(function (f) {
272
280
  if (f.uid === uid) {
273
281
  return _objectSpread(_objectSpread({}, f), {}, {
274
282
  status: 'failed',
@@ -278,23 +286,7 @@ var IglooUpload = function IglooUpload(props) {
278
286
 
279
287
  return f;
280
288
  });
281
- fileList = newList;
282
- return newList;
283
289
  });
284
- var fileListWithError = fileList.map(function (f) {
285
- if (f.uid === uid) {
286
- return {
287
- name: f.name,
288
- status: 'failed',
289
- errorMsg: errorMsg
290
- };
291
- }
292
-
293
- return f.url;
294
- }); // 需要触发onchange 在form级别报错
295
-
296
- // 需要触发onchange 在form级别报错
297
- typeof onChange === 'function' && onChange(fileListWithError);
298
290
  }));
299
291
 
300
292
  case 11:
@@ -349,51 +341,19 @@ var IglooUpload = function IglooUpload(props) {
349
341
 
350
342
  var handleDelete = /*#__PURE__*/function () {
351
343
  var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(index) {
352
- var arr, hasError, rst;
353
344
  return regeneratorRuntime.wrap(function _callee4$(_context4) {
354
345
  while (1) {
355
346
  switch (_context4.prev = _context4.next) {
356
347
  case 0:
357
348
  limitNumError.current = null;
358
- arr = files;
359
- _context4.next = 4;
360
- return setFiles(function (files) {
349
+ setFiles(function (files) {
361
350
  var newArr = files.filter(function (_, i) {
362
351
  return i !== index;
363
352
  });
364
- arr = newArr;
365
353
  return newArr;
366
354
  });
367
355
 
368
- case 4:
369
- // 删除之后找一下是否存在上传过程中错误的文件
370
- hasError = arr.some(function (f) {
371
- return f.status === 'failed';
372
- });
373
-
374
- if (!hasError) {
375
- _context4.next = 8;
376
- break;
377
- }
378
-
379
- rst = arr.map(function (f) {
380
- if (f.status === 'failed') {
381
- return {
382
- errorMsg: f.errorMsg
383
- };
384
- }
385
-
386
- return f.url;
387
- });
388
- return _context4.abrupt("return", typeof onChange === 'function' && onChange(rst));
389
-
390
- case 8:
391
- typeof onChange === 'function' && onChange(arr.map(function (_ref5) {
392
- var url = _ref5.url;
393
- return url;
394
- }));
395
-
396
- case 9:
356
+ case 2:
397
357
  case "end":
398
358
  return _context4.stop();
399
359
  }
@@ -407,8 +367,8 @@ var IglooUpload = function IglooUpload(props) {
407
367
  }();
408
368
 
409
369
  var handleReUpload = /*#__PURE__*/function () {
410
- var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(index) {
411
- var _files$index, originFile, reUpUid, rst, latestFiles, fileListWithError, newList, _rst;
370
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(index) {
371
+ var _files$index, originFile, reUpUid, rst;
412
372
 
413
373
  return regeneratorRuntime.wrap(function _callee5$(_context5) {
414
374
  while (1) {
@@ -439,81 +399,41 @@ var IglooUpload = function IglooUpload(props) {
439
399
 
440
400
  case 8:
441
401
  rst = _context5.sent;
442
- latestFiles = [];
443
- _context5.next = 12;
402
+ _context5.next = 11;
444
403
  return setFiles(function (files) {
445
404
  var newFiles = _toConsumableArray(files);
446
405
 
447
406
  newFiles[index].url = rst;
448
407
  newFiles[index].status = 'success';
449
- latestFiles = newFiles;
450
408
  return newFiles;
451
409
  });
452
410
 
453
- case 12:
454
- // 查找出现在file 列表中地错误信息
455
- fileListWithError = latestFiles.map(function (f) {
456
- var status = f.status,
457
- errorMsg = f.errorMsg,
458
- url = f.url,
459
- name = f.name;
460
-
461
- if (status === 'failed') {
462
- return {
463
- errorMsg: errorMsg,
464
- name: name
465
- };
466
- }
467
-
468
- return url;
469
- });
470
- onChange && onChange(fileListWithError);
471
- _context5.next = 23;
411
+ case 11:
412
+ _context5.next = 17;
472
413
  break;
473
414
 
474
- case 16:
475
- _context5.prev = 16;
415
+ case 13:
416
+ _context5.prev = 13;
476
417
  _context5.t0 = _context5["catch"](5);
477
- newList = [];
478
- _context5.next = 21;
418
+ _context5.next = 17;
479
419
  return setFiles(function (files) {
480
420
  var newFiles = _toConsumableArray(files);
481
421
 
482
422
  newFiles[index].status = 'failed';
483
423
  newFiles[index].errorMsg = _context5.t0;
484
- newList = newFiles;
485
424
  return newFiles;
486
425
  });
487
426
 
488
- case 21:
489
- // 报错之后要重置报错信息
490
- _rst = newList.map(function (f) {
491
- var name = f.name,
492
- errorMsg = f.errorMsg,
493
- url = f.url,
494
- uid = f.uid;
495
-
496
- if (uid === reUpUid) {
497
- return {
498
- name: name,
499
- errorMsg: errorMsg
500
- };
501
- }
502
-
503
- return url;
504
- });
505
- typeof onChange === 'function' && onChange(_rst);
506
-
507
- case 23:
427
+ case 17:
508
428
  case "end":
509
429
  return _context5.stop();
510
430
  }
511
431
  }
512
- }, _callee5, null, [[5, 16]]);
432
+ }, _callee5, null, [[5, 13]]);
513
433
  }));
514
434
 
515
435
  return function handleReUpload(_x7) {
516
- return _ref6.apply(this, arguments);
436
+ return _ref5.apply(this, arguments);
517
437
  };
518
438
  }();
519
439
 
@@ -598,14 +518,14 @@ var IglooUpload = function IglooUpload(props) {
598
518
  });
599
519
  };
600
520
 
601
- var FileList = function FileList(_ref7) {
602
- var containerRef = _ref7.containerRef,
603
- files = _ref7.files,
604
- limit = _ref7.limit,
605
- handleDelete = _ref7.handleDelete,
606
- handlePreview = _ref7.handlePreview,
607
- handleReUpload = _ref7.handleReUpload,
608
- disabled = _ref7.disabled;
521
+ var FileList = function FileList(_ref6) {
522
+ var containerRef = _ref6.containerRef,
523
+ files = _ref6.files,
524
+ limit = _ref6.limit,
525
+ handleDelete = _ref6.handleDelete,
526
+ handlePreview = _ref6.handlePreview,
527
+ handleReUpload = _ref6.handleReUpload,
528
+ disabled = _ref6.disabled;
609
529
 
610
530
  var _useState3 = (0, _react.useState)(false),
611
531
  _useState4 = _slicedToArray(_useState3, 2),
@@ -618,11 +538,11 @@ var FileList = function FileList(_ref7) {
618
538
  if (!initDone) return null;
619
539
  var children = (0, _jsxRuntime.jsx)("div", {
620
540
  className: "igloo-upload-preview-list",
621
- children: files.map(function (_ref8, index) {
622
- var type = _ref8.type,
623
- name = _ref8.name,
624
- size = _ref8.size,
625
- status = _ref8.status;
541
+ children: files.map(function (_ref7, index) {
542
+ var type = _ref7.type,
543
+ name = _ref7.name,
544
+ size = _ref7.size,
545
+ status = _ref7.status;
626
546
  return (0, _jsxRuntime.jsxs)("div", {
627
547
  className: (0, _classnames.default)('igloo-upload-preview-item', {
628
548
  'igloo-upload-preview-item-failed': status === 'failed'
@@ -727,9 +647,9 @@ function checkFileList(value) {
727
647
  return Promise.resolve();
728
648
  }
729
649
 
730
- IglooUpload.formItemPropsHandler = function (_ref9) {
731
- var previewFormater = _ref9.previewFormater,
732
- label = _ref9.label;
650
+ IglooUpload.formItemPropsHandler = function (_ref8) {
651
+ var previewFormater = _ref8.previewFormater,
652
+ label = _ref8.label;
733
653
  return {
734
654
  previewFormater: previewFormater || function (value) {
735
655
  return (0, _jsxRuntime.jsx)(_uploadPreview.default, {