iglooform 2.5.51 → 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.
@@ -168,6 +168,31 @@ var IglooUpload = function IglooUpload(props) {
168
168
  });
169
169
  };
170
170
  }, []);
171
+ useEffect(function () {
172
+ if (!(value === null || value === void 0 ? void 0 : value.length) && !files.length) return;
173
+
174
+ if (files.length) {
175
+ var urls = files.map(function (f) {
176
+ var status = f.status,
177
+ name = f.name,
178
+ errorMsg = f.errorMsg;
179
+
180
+ if (status === 'failed') {
181
+ return {
182
+ name: name,
183
+ errorMsg: errorMsg
184
+ };
185
+ }
186
+
187
+ if (f.url || f.dataUrl) {
188
+ return f.url || f.dataUrl;
189
+ }
190
+ });
191
+ onChange && onChange(urls);
192
+ } else {
193
+ onChange && onChange([]);
194
+ }
195
+ }, [files]);
171
196
  invariant(limit === undefined || limit > 0, "\"limit\" should be a pasitive number.");
172
197
 
173
198
  var onUpload = /*#__PURE__*/function () {
@@ -197,7 +222,8 @@ var IglooUpload = function IglooUpload(props) {
197
222
  return _context2.abrupt("return", Promise.reject(errorMsg));
198
223
 
199
224
  case 8:
200
- limitNumError.current = undefined;
225
+ limitNumError.current = undefined; // 上传过程中 status为‘progress’,后续通过state更新
226
+
201
227
  setFiles(function (files) {
202
228
  return [].concat(_toConsumableArray(files), [{
203
229
  name: name,
@@ -211,39 +237,21 @@ var IglooUpload = function IglooUpload(props) {
211
237
  }); // 符合文件个数限制之后 上传时的错误处理
212
238
 
213
239
  return _context2.abrupt("return", handleUploadPromise(file, function (url) {
214
- var urls = [];
215
- setFiles(function (files) {
240
+ return setFiles(function (files) {
216
241
  return files.map(function (f) {
217
- // 这里不能只处理成功的文件 因为这次上传的文件是成功了 但是这次之前可能会有上传失败的 需要将错误信息提取出来 否则错误提示会丢失
218
242
  if (f.uid === uid) {
219
- urls.push(url);
220
243
  return _objectSpread(_objectSpread({}, f), {}, {
221
244
  url: url,
222
245
  status: 'success'
223
246
  });
224
247
  }
225
248
 
226
- var status = f.status,
227
- name = f.name,
228
- errorMsg = f.errorMsg;
229
-
230
- if (status === 'failed') {
231
- urls.push({
232
- name: name,
233
- errorMsg: errorMsg
234
- });
235
- } else {
236
- f.url && urls.push(f.url);
237
- }
238
-
239
249
  return f;
240
250
  });
241
251
  });
242
- onChange && onChange(urls);
243
252
  }, function (errorMsg) {
244
- var fileList = [];
245
- setFiles(function (files) {
246
- var newList = files.map(function (f) {
253
+ return setFiles(function (files) {
254
+ return files.map(function (f) {
247
255
  if (f.uid === uid) {
248
256
  return _objectSpread(_objectSpread({}, f), {}, {
249
257
  status: 'failed',
@@ -253,23 +261,7 @@ var IglooUpload = function IglooUpload(props) {
253
261
 
254
262
  return f;
255
263
  });
256
- fileList = newList;
257
- return newList;
258
264
  });
259
- var fileListWithError = fileList.map(function (f) {
260
- if (f.uid === uid) {
261
- return {
262
- name: f.name,
263
- status: 'failed',
264
- errorMsg: errorMsg
265
- };
266
- }
267
-
268
- return f.url;
269
- }); // 需要触发onchange 在form级别报错
270
-
271
- // 需要触发onchange 在form级别报错
272
- typeof onChange === 'function' && onChange(fileListWithError);
273
265
  }));
274
266
 
275
267
  case 11:
@@ -324,51 +316,19 @@ var IglooUpload = function IglooUpload(props) {
324
316
 
325
317
  var handleDelete = /*#__PURE__*/function () {
326
318
  var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(index) {
327
- var arr, hasError, rst;
328
319
  return regeneratorRuntime.wrap(function _callee4$(_context4) {
329
320
  while (1) {
330
321
  switch (_context4.prev = _context4.next) {
331
322
  case 0:
332
323
  limitNumError.current = null;
333
- arr = files;
334
- _context4.next = 4;
335
- return setFiles(function (files) {
324
+ setFiles(function (files) {
336
325
  var newArr = files.filter(function (_, i) {
337
326
  return i !== index;
338
327
  });
339
- arr = newArr;
340
328
  return newArr;
341
329
  });
342
330
 
343
- case 4:
344
- // 删除之后找一下是否存在上传过程中错误的文件
345
- hasError = arr.some(function (f) {
346
- return f.status === 'failed';
347
- });
348
-
349
- if (!hasError) {
350
- _context4.next = 8;
351
- break;
352
- }
353
-
354
- rst = arr.map(function (f) {
355
- if (f.status === 'failed') {
356
- return {
357
- errorMsg: f.errorMsg
358
- };
359
- }
360
-
361
- return f.url;
362
- });
363
- return _context4.abrupt("return", typeof onChange === 'function' && onChange(rst));
364
-
365
- case 8:
366
- typeof onChange === 'function' && onChange(arr.map(function (_ref5) {
367
- var url = _ref5.url;
368
- return url;
369
- }));
370
-
371
- case 9:
331
+ case 2:
372
332
  case "end":
373
333
  return _context4.stop();
374
334
  }
@@ -382,8 +342,8 @@ var IglooUpload = function IglooUpload(props) {
382
342
  }();
383
343
 
384
344
  var handleReUpload = /*#__PURE__*/function () {
385
- var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(index) {
386
- var _files$index, originFile, reUpUid, rst, latestFiles, fileListWithError, newList, _rst;
345
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(index) {
346
+ var _files$index, originFile, reUpUid, rst;
387
347
 
388
348
  return regeneratorRuntime.wrap(function _callee5$(_context5) {
389
349
  while (1) {
@@ -414,81 +374,41 @@ var IglooUpload = function IglooUpload(props) {
414
374
 
415
375
  case 8:
416
376
  rst = _context5.sent;
417
- latestFiles = [];
418
- _context5.next = 12;
377
+ _context5.next = 11;
419
378
  return setFiles(function (files) {
420
379
  var newFiles = _toConsumableArray(files);
421
380
 
422
381
  newFiles[index].url = rst;
423
382
  newFiles[index].status = 'success';
424
- latestFiles = newFiles;
425
383
  return newFiles;
426
384
  });
427
385
 
428
- case 12:
429
- // 查找出现在file 列表中地错误信息
430
- fileListWithError = latestFiles.map(function (f) {
431
- var status = f.status,
432
- errorMsg = f.errorMsg,
433
- url = f.url,
434
- name = f.name;
435
-
436
- if (status === 'failed') {
437
- return {
438
- errorMsg: errorMsg,
439
- name: name
440
- };
441
- }
442
-
443
- return url;
444
- });
445
- onChange && onChange(fileListWithError);
446
- _context5.next = 23;
386
+ case 11:
387
+ _context5.next = 17;
447
388
  break;
448
389
 
449
- case 16:
450
- _context5.prev = 16;
390
+ case 13:
391
+ _context5.prev = 13;
451
392
  _context5.t0 = _context5["catch"](5);
452
- newList = [];
453
- _context5.next = 21;
393
+ _context5.next = 17;
454
394
  return setFiles(function (files) {
455
395
  var newFiles = _toConsumableArray(files);
456
396
 
457
397
  newFiles[index].status = 'failed';
458
398
  newFiles[index].errorMsg = _context5.t0;
459
- newList = newFiles;
460
399
  return newFiles;
461
400
  });
462
401
 
463
- case 21:
464
- // 报错之后要重置报错信息
465
- _rst = newList.map(function (f) {
466
- var name = f.name,
467
- errorMsg = f.errorMsg,
468
- url = f.url,
469
- uid = f.uid;
470
-
471
- if (uid === reUpUid) {
472
- return {
473
- name: name,
474
- errorMsg: errorMsg
475
- };
476
- }
477
-
478
- return url;
479
- });
480
- typeof onChange === 'function' && onChange(_rst);
481
-
482
- case 23:
402
+ case 17:
483
403
  case "end":
484
404
  return _context5.stop();
485
405
  }
486
406
  }
487
- }, _callee5, null, [[5, 16]]);
407
+ }, _callee5, null, [[5, 13]]);
488
408
  }));
489
409
 
490
410
  return function handleReUpload(_x7) {
491
- return _ref6.apply(this, arguments);
411
+ return _ref5.apply(this, arguments);
492
412
  };
493
413
  }();
494
414
 
@@ -572,14 +492,14 @@ var IglooUpload = function IglooUpload(props) {
572
492
  });
573
493
  };
574
494
 
575
- var FileList = function FileList(_ref7) {
576
- var containerRef = _ref7.containerRef,
577
- files = _ref7.files,
578
- limit = _ref7.limit,
579
- handleDelete = _ref7.handleDelete,
580
- handlePreview = _ref7.handlePreview,
581
- handleReUpload = _ref7.handleReUpload,
582
- disabled = _ref7.disabled;
495
+ var FileList = function FileList(_ref6) {
496
+ var containerRef = _ref6.containerRef,
497
+ files = _ref6.files,
498
+ limit = _ref6.limit,
499
+ handleDelete = _ref6.handleDelete,
500
+ handlePreview = _ref6.handlePreview,
501
+ handleReUpload = _ref6.handleReUpload,
502
+ disabled = _ref6.disabled;
583
503
 
584
504
  var _useState3 = useState(false),
585
505
  _useState4 = _slicedToArray(_useState3, 2),
@@ -593,11 +513,11 @@ var FileList = function FileList(_ref7) {
593
513
 
594
514
  var children = _jsx("div", {
595
515
  className: "igloo-upload-preview-list",
596
- children: files.map(function (_ref8, index) {
597
- var type = _ref8.type,
598
- name = _ref8.name,
599
- size = _ref8.size,
600
- status = _ref8.status;
516
+ children: files.map(function (_ref7, index) {
517
+ var type = _ref7.type,
518
+ name = _ref7.name,
519
+ size = _ref7.size,
520
+ status = _ref7.status;
601
521
  return _jsxs("div", {
602
522
  className: classnames('igloo-upload-preview-item', {
603
523
  'igloo-upload-preview-item-failed': status === 'failed'
@@ -703,9 +623,9 @@ function checkFileList(value) {
703
623
  return Promise.resolve();
704
624
  }
705
625
 
706
- IglooUpload.formItemPropsHandler = function (_ref9) {
707
- var previewFormater = _ref9.previewFormater,
708
- label = _ref9.label;
626
+ IglooUpload.formItemPropsHandler = function (_ref8) {
627
+ var previewFormater = _ref8.previewFormater,
628
+ label = _ref8.label;
709
629
  return {
710
630
  previewFormater: previewFormater || function (value) {
711
631
  return _jsx(UploadPreview, {
@@ -238,13 +238,39 @@ var UploadPhoto = function UploadPhoto(props) {
238
238
  }())).then(function () {
239
239
  return setFiles(_files);
240
240
  });
241
- };
241
+ }; // 有初始值的处理 (不是初始化)
242
+
242
243
 
243
244
  useEffect(function () {
244
245
  if (Array.isArray(value) && value.length && files.length === 0) {
245
246
  mapFilesFromValue(value);
246
247
  }
247
248
  }, [value]);
249
+ useEffect(function () {
250
+ if (!value && !files.length) return;
251
+
252
+ if (files.length) {
253
+ var urls = files.map(function (f) {
254
+ var status = f.status,
255
+ name = f.name,
256
+ errorMsg = f.errorMsg;
257
+
258
+ if (status === 'failed') {
259
+ return {
260
+ name: name,
261
+ errorMsg: errorMsg
262
+ };
263
+ }
264
+
265
+ if (f.url || f.dataUrl) {
266
+ return f.url || f.dataUrl;
267
+ }
268
+ });
269
+ onChange && onChange(urls);
270
+ } else {
271
+ onChange && onChange([]);
272
+ }
273
+ }, [files]);
248
274
  var uploadId = useMemo(function () {
249
275
  return "igloo-upload-photo-input-".concat(Math.random());
250
276
  }, []);
@@ -376,38 +402,21 @@ var UploadPhoto = function UploadPhoto(props) {
376
402
  }]);
377
403
  });
378
404
  return _context4.abrupt("return", handleUploadPromise(file, function (url) {
379
- var urls = [];
380
- setFiles(function (files) {
405
+ return setFiles(function (files) {
381
406
  return files.map(function (f) {
382
407
  if (f.uid === uid) {
383
- urls.push(url);
384
408
  return _objectSpread(_objectSpread({}, f), {}, {
385
409
  url: url,
386
410
  status: 'success'
387
411
  });
388
412
  }
389
413
 
390
- var status = f.status,
391
- name = f.name,
392
- errorMsg = f.errorMsg;
393
-
394
- if (status === 'failed') {
395
- urls.push({
396
- name: name,
397
- errorMsg: errorMsg
398
- });
399
- } else {
400
- f.url && urls.push(f.url);
401
- }
402
-
403
414
  return f;
404
415
  });
405
416
  });
406
- onChange && onChange(urls);
407
417
  }, function (errorMsg) {
408
- var fileList = [];
409
- setFiles(function (files) {
410
- var newList = files.map(function (f) {
418
+ return setFiles(function (files) {
419
+ return files.map(function (f) {
411
420
  if (f.uid === uid) {
412
421
  return _objectSpread(_objectSpread({}, f), {}, {
413
422
  status: 'failed',
@@ -417,23 +426,7 @@ var UploadPhoto = function UploadPhoto(props) {
417
426
 
418
427
  return f;
419
428
  });
420
- fileList = newList;
421
- return newList;
422
429
  });
423
- var fileListWithError = fileList.map(function (f) {
424
- if (f.uid === uid) {
425
- return {
426
- name: f.name,
427
- status: 'failed',
428
- errorMsg: errorMsg
429
- };
430
- }
431
-
432
- return f.url;
433
- }); // 需要触发onchange 在form级别报错
434
-
435
- // 需要触发onchange 在form级别报错
436
- typeof onChange === 'function' && onChange(fileListWithError);
437
430
  }));
438
431
 
439
432
  case 18:
@@ -487,59 +480,28 @@ var UploadPhoto = function UploadPhoto(props) {
487
480
 
488
481
  var handleDelete = /*#__PURE__*/function () {
489
482
  var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6(index) {
490
- var arr, hasError, rst;
491
483
  return regeneratorRuntime.wrap(function _callee6$(_context6) {
492
484
  while (1) {
493
485
  switch (_context6.prev = _context6.next) {
494
486
  case 0:
495
487
  limitNumError.current = null;
496
- arr = files;
497
- _context6.next = 4;
488
+ _context6.next = 3;
498
489
  return setFiles(function (files) {
499
490
  var newArr = files.filter(function (_, i) {
500
491
  return i !== index;
501
492
  });
502
- arr = newArr;
503
493
  return newArr;
504
494
  });
505
495
 
506
- case 4:
507
- _context6.next = 6;
496
+ case 3:
497
+ _context6.next = 5;
508
498
  return setMasks(function (masks) {
509
499
  return masks.filter(function (_, i) {
510
500
  return i !== index;
511
501
  });
512
502
  });
513
503
 
514
- case 6:
515
- // 删除之后找一下是否存在上传过程中错误的文件
516
- hasError = arr.some(function (f) {
517
- return (f === null || f === void 0 ? void 0 : f.status) === 'failed';
518
- });
519
-
520
- if (!hasError) {
521
- _context6.next = 10;
522
- break;
523
- }
524
-
525
- rst = arr.map(function (f) {
526
- if ((f === null || f === void 0 ? void 0 : f.status) === 'failed') {
527
- return {
528
- errorMsg: f.errorMsg
529
- };
530
- }
531
-
532
- return f.url;
533
- });
534
- return _context6.abrupt("return", typeof onChange === 'function' && onChange(rst));
535
-
536
- case 10:
537
- typeof onChange === 'function' && onChange(arr.map(function (_ref7) {
538
- var url = _ref7.url;
539
- return url;
540
- }));
541
-
542
- case 11:
504
+ case 5:
543
505
  case "end":
544
506
  return _context6.stop();
545
507
  }
@@ -553,8 +515,8 @@ var UploadPhoto = function UploadPhoto(props) {
553
515
  }();
554
516
 
555
517
  var handleReUpload = /*#__PURE__*/function () {
556
- var _ref8 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7(index) {
557
- var _files$index, originFile, reUpUid, rst, latestFiles, fileListWithError, newList, _rst;
518
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7(index) {
519
+ var _files$index, originFile, reUpUid, rst;
558
520
 
559
521
  return regeneratorRuntime.wrap(function _callee7$(_context7) {
560
522
  while (1) {
@@ -585,86 +547,46 @@ var UploadPhoto = function UploadPhoto(props) {
585
547
 
586
548
  case 8:
587
549
  rst = _context7.sent;
588
- latestFiles = [];
589
- _context7.next = 12;
550
+ _context7.next = 11;
590
551
  return setFiles(function (files) {
591
552
  var newFiles = _toConsumableArray(files);
592
553
 
593
554
  newFiles[index].url = rst;
594
555
  newFiles[index].status = 'success';
595
- latestFiles = newFiles;
596
556
  return newFiles;
597
557
  });
598
558
 
599
- case 12:
600
- // 查找出现在file 列表中地错误信息
601
- fileListWithError = latestFiles.map(function (f) {
602
- var status = f.status,
603
- errorMsg = f.errorMsg,
604
- url = f.url,
605
- name = f.name;
606
-
607
- if (status === 'failed') {
608
- return {
609
- errorMsg: errorMsg,
610
- name: name
611
- };
612
- }
613
-
614
- return url;
615
- });
616
- onChange && onChange(fileListWithError);
617
- _context7.next = 23;
559
+ case 11:
560
+ _context7.next = 17;
618
561
  break;
619
562
 
620
- case 16:
621
- _context7.prev = 16;
563
+ case 13:
564
+ _context7.prev = 13;
622
565
  _context7.t0 = _context7["catch"](5);
623
- newList = [];
624
- _context7.next = 21;
566
+ _context7.next = 17;
625
567
  return setFiles(function (files) {
626
568
  var newFiles = _toConsumableArray(files);
627
569
 
628
570
  newFiles[index].status = 'failed';
629
571
  newFiles[index].errorMsg = _context7.t0;
630
- newList = newFiles;
631
572
  return newFiles;
632
573
  });
633
574
 
634
- case 21:
635
- // 报错之后要重制报错信息
636
- _rst = newList.map(function (f) {
637
- var name = f.name,
638
- errorMsg = f.errorMsg,
639
- url = f.url,
640
- uid = f.uid;
641
-
642
- if (uid === reUpUid) {
643
- return {
644
- name: name,
645
- errorMsg: errorMsg
646
- };
647
- }
648
-
649
- return url;
650
- });
651
- typeof onChange === 'function' && onChange(_rst);
652
-
653
- case 23:
575
+ case 17:
654
576
  if (isMobile) {
655
577
  closeMask(index);
656
578
  }
657
579
 
658
- case 24:
580
+ case 18:
659
581
  case "end":
660
582
  return _context7.stop();
661
583
  }
662
584
  }
663
- }, _callee7, null, [[5, 16]]);
585
+ }, _callee7, null, [[5, 13]]);
664
586
  }));
665
587
 
666
588
  return function handleReUpload(_x11) {
667
- return _ref8.apply(this, arguments);
589
+ return _ref7.apply(this, arguments);
668
590
  };
669
591
  }();
670
592
 
@@ -761,12 +683,12 @@ var UploadPhoto = function UploadPhoto(props) {
761
683
  children: _jsxs(_Row, {
762
684
  gutter: [isMobile ? 16 : 32, 16],
763
685
  wrap: true,
764
- children: [Boolean(samples === null || samples === void 0 ? void 0 : samples.length) && samples.map(function (_ref9, index) {
686
+ children: [Boolean(samples === null || samples === void 0 ? void 0 : samples.length) && samples.map(function (_ref8, index) {
765
687
  var _classnames, _classnames2;
766
688
 
767
- var src = _ref9.src,
768
- label = _ref9.label,
769
- type = _ref9.type;
689
+ var src = _ref8.src,
690
+ label = _ref8.label,
691
+ type = _ref8.type;
770
692
  return _jsxs(_Col, {
771
693
  span: sampleSpan,
772
694
  children: [_jsx("img", {
@@ -826,13 +748,13 @@ var UploadPhoto = function UploadPhoto(props) {
826
748
  children: buttonText || 'Upload'
827
749
  })
828
750
  })]
829
- }), files.map(function (_ref10, index) {
751
+ }), files.map(function (_ref9, index) {
830
752
  var _classnames5;
831
753
 
832
- var dataUrl = _ref10.dataUrl,
833
- status = _ref10.status,
834
- type = _ref10.type,
835
- uid = _ref10.uid;
754
+ var dataUrl = _ref9.dataUrl,
755
+ status = _ref9.status,
756
+ type = _ref9.type,
757
+ uid = _ref9.uid;
836
758
  return _jsx(_Badge, {
837
759
  count: getBadge(status, index, limit),
838
760
  children: _jsxs("div", {
@@ -900,10 +822,10 @@ function checkFileList(value) {
900
822
  return Promise.resolve();
901
823
  }
902
824
 
903
- UploadPhoto.formItemPropsHandler = function (_ref11) {
904
- var limit = _ref11.limit,
905
- previewFormater = _ref11.previewFormater,
906
- label = _ref11.label;
825
+ UploadPhoto.formItemPropsHandler = function (_ref10) {
826
+ var limit = _ref10.limit,
827
+ previewFormater = _ref10.previewFormater,
828
+ label = _ref10.label;
907
829
  return {
908
830
  previewFormater: previewFormater || function (value) {
909
831
  return _jsx(UploadPreview, {
@@ -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, {
@@ -271,13 +271,39 @@ var UploadPhoto = function UploadPhoto(props) {
271
271
  }())).then(function () {
272
272
  return setFiles(_files);
273
273
  });
274
- };
274
+ }; // 有初始值的处理 (不是初始化)
275
+
275
276
 
276
277
  (0, _react.useEffect)(function () {
277
278
  if (Array.isArray(value) && value.length && files.length === 0) {
278
279
  mapFilesFromValue(value);
279
280
  }
280
281
  }, [value]);
282
+ (0, _react.useEffect)(function () {
283
+ if (!value && !files.length) return;
284
+
285
+ if (files.length) {
286
+ var urls = files.map(function (f) {
287
+ var status = f.status,
288
+ name = f.name,
289
+ errorMsg = f.errorMsg;
290
+
291
+ if (status === 'failed') {
292
+ return {
293
+ name: name,
294
+ errorMsg: errorMsg
295
+ };
296
+ }
297
+
298
+ if (f.url || f.dataUrl) {
299
+ return f.url || f.dataUrl;
300
+ }
301
+ });
302
+ onChange && onChange(urls);
303
+ } else {
304
+ onChange && onChange([]);
305
+ }
306
+ }, [files]);
281
307
  var uploadId = (0, _react.useMemo)(function () {
282
308
  return "igloo-upload-photo-input-".concat(Math.random());
283
309
  }, []);
@@ -409,38 +435,21 @@ var UploadPhoto = function UploadPhoto(props) {
409
435
  }]);
410
436
  });
411
437
  return _context4.abrupt("return", handleUploadPromise(file, function (url) {
412
- var urls = [];
413
- setFiles(function (files) {
438
+ return setFiles(function (files) {
414
439
  return files.map(function (f) {
415
440
  if (f.uid === uid) {
416
- urls.push(url);
417
441
  return _objectSpread(_objectSpread({}, f), {}, {
418
442
  url: url,
419
443
  status: 'success'
420
444
  });
421
445
  }
422
446
 
423
- var status = f.status,
424
- name = f.name,
425
- errorMsg = f.errorMsg;
426
-
427
- if (status === 'failed') {
428
- urls.push({
429
- name: name,
430
- errorMsg: errorMsg
431
- });
432
- } else {
433
- f.url && urls.push(f.url);
434
- }
435
-
436
447
  return f;
437
448
  });
438
449
  });
439
- onChange && onChange(urls);
440
450
  }, function (errorMsg) {
441
- var fileList = [];
442
- setFiles(function (files) {
443
- var newList = files.map(function (f) {
451
+ return setFiles(function (files) {
452
+ return files.map(function (f) {
444
453
  if (f.uid === uid) {
445
454
  return _objectSpread(_objectSpread({}, f), {}, {
446
455
  status: 'failed',
@@ -450,23 +459,7 @@ var UploadPhoto = function UploadPhoto(props) {
450
459
 
451
460
  return f;
452
461
  });
453
- fileList = newList;
454
- return newList;
455
462
  });
456
- var fileListWithError = fileList.map(function (f) {
457
- if (f.uid === uid) {
458
- return {
459
- name: f.name,
460
- status: 'failed',
461
- errorMsg: errorMsg
462
- };
463
- }
464
-
465
- return f.url;
466
- }); // 需要触发onchange 在form级别报错
467
-
468
- // 需要触发onchange 在form级别报错
469
- typeof onChange === 'function' && onChange(fileListWithError);
470
463
  }));
471
464
 
472
465
  case 18:
@@ -520,59 +513,28 @@ var UploadPhoto = function UploadPhoto(props) {
520
513
 
521
514
  var handleDelete = /*#__PURE__*/function () {
522
515
  var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6(index) {
523
- var arr, hasError, rst;
524
516
  return regeneratorRuntime.wrap(function _callee6$(_context6) {
525
517
  while (1) {
526
518
  switch (_context6.prev = _context6.next) {
527
519
  case 0:
528
520
  limitNumError.current = null;
529
- arr = files;
530
- _context6.next = 4;
521
+ _context6.next = 3;
531
522
  return setFiles(function (files) {
532
523
  var newArr = files.filter(function (_, i) {
533
524
  return i !== index;
534
525
  });
535
- arr = newArr;
536
526
  return newArr;
537
527
  });
538
528
 
539
- case 4:
540
- _context6.next = 6;
529
+ case 3:
530
+ _context6.next = 5;
541
531
  return setMasks(function (masks) {
542
532
  return masks.filter(function (_, i) {
543
533
  return i !== index;
544
534
  });
545
535
  });
546
536
 
547
- case 6:
548
- // 删除之后找一下是否存在上传过程中错误的文件
549
- hasError = arr.some(function (f) {
550
- return (f === null || f === void 0 ? void 0 : f.status) === 'failed';
551
- });
552
-
553
- if (!hasError) {
554
- _context6.next = 10;
555
- break;
556
- }
557
-
558
- rst = arr.map(function (f) {
559
- if ((f === null || f === void 0 ? void 0 : f.status) === 'failed') {
560
- return {
561
- errorMsg: f.errorMsg
562
- };
563
- }
564
-
565
- return f.url;
566
- });
567
- return _context6.abrupt("return", typeof onChange === 'function' && onChange(rst));
568
-
569
- case 10:
570
- typeof onChange === 'function' && onChange(arr.map(function (_ref7) {
571
- var url = _ref7.url;
572
- return url;
573
- }));
574
-
575
- case 11:
537
+ case 5:
576
538
  case "end":
577
539
  return _context6.stop();
578
540
  }
@@ -586,8 +548,8 @@ var UploadPhoto = function UploadPhoto(props) {
586
548
  }();
587
549
 
588
550
  var handleReUpload = /*#__PURE__*/function () {
589
- var _ref8 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7(index) {
590
- var _files$index, originFile, reUpUid, rst, latestFiles, fileListWithError, newList, _rst;
551
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7(index) {
552
+ var _files$index, originFile, reUpUid, rst;
591
553
 
592
554
  return regeneratorRuntime.wrap(function _callee7$(_context7) {
593
555
  while (1) {
@@ -618,86 +580,46 @@ var UploadPhoto = function UploadPhoto(props) {
618
580
 
619
581
  case 8:
620
582
  rst = _context7.sent;
621
- latestFiles = [];
622
- _context7.next = 12;
583
+ _context7.next = 11;
623
584
  return setFiles(function (files) {
624
585
  var newFiles = _toConsumableArray(files);
625
586
 
626
587
  newFiles[index].url = rst;
627
588
  newFiles[index].status = 'success';
628
- latestFiles = newFiles;
629
589
  return newFiles;
630
590
  });
631
591
 
632
- case 12:
633
- // 查找出现在file 列表中地错误信息
634
- fileListWithError = latestFiles.map(function (f) {
635
- var status = f.status,
636
- errorMsg = f.errorMsg,
637
- url = f.url,
638
- name = f.name;
639
-
640
- if (status === 'failed') {
641
- return {
642
- errorMsg: errorMsg,
643
- name: name
644
- };
645
- }
646
-
647
- return url;
648
- });
649
- onChange && onChange(fileListWithError);
650
- _context7.next = 23;
592
+ case 11:
593
+ _context7.next = 17;
651
594
  break;
652
595
 
653
- case 16:
654
- _context7.prev = 16;
596
+ case 13:
597
+ _context7.prev = 13;
655
598
  _context7.t0 = _context7["catch"](5);
656
- newList = [];
657
- _context7.next = 21;
599
+ _context7.next = 17;
658
600
  return setFiles(function (files) {
659
601
  var newFiles = _toConsumableArray(files);
660
602
 
661
603
  newFiles[index].status = 'failed';
662
604
  newFiles[index].errorMsg = _context7.t0;
663
- newList = newFiles;
664
605
  return newFiles;
665
606
  });
666
607
 
667
- case 21:
668
- // 报错之后要重制报错信息
669
- _rst = newList.map(function (f) {
670
- var name = f.name,
671
- errorMsg = f.errorMsg,
672
- url = f.url,
673
- uid = f.uid;
674
-
675
- if (uid === reUpUid) {
676
- return {
677
- name: name,
678
- errorMsg: errorMsg
679
- };
680
- }
681
-
682
- return url;
683
- });
684
- typeof onChange === 'function' && onChange(_rst);
685
-
686
- case 23:
608
+ case 17:
687
609
  if (isMobile) {
688
610
  closeMask(index);
689
611
  }
690
612
 
691
- case 24:
613
+ case 18:
692
614
  case "end":
693
615
  return _context7.stop();
694
616
  }
695
617
  }
696
- }, _callee7, null, [[5, 16]]);
618
+ }, _callee7, null, [[5, 13]]);
697
619
  }));
698
620
 
699
621
  return function handleReUpload(_x11) {
700
- return _ref8.apply(this, arguments);
622
+ return _ref7.apply(this, arguments);
701
623
  };
702
624
  }();
703
625
 
@@ -795,12 +717,12 @@ var UploadPhoto = function UploadPhoto(props) {
795
717
  children: (0, _jsxRuntime.jsxs)(_row.default, {
796
718
  gutter: [isMobile ? 16 : 32, 16],
797
719
  wrap: true,
798
- children: [Boolean(samples === null || samples === void 0 ? void 0 : samples.length) && samples.map(function (_ref9, index) {
720
+ children: [Boolean(samples === null || samples === void 0 ? void 0 : samples.length) && samples.map(function (_ref8, index) {
799
721
  var _classnames, _classnames2;
800
722
 
801
- var src = _ref9.src,
802
- label = _ref9.label,
803
- type = _ref9.type;
723
+ var src = _ref8.src,
724
+ label = _ref8.label,
725
+ type = _ref8.type;
804
726
  return (0, _jsxRuntime.jsxs)(_col.default, {
805
727
  span: sampleSpan,
806
728
  children: [(0, _jsxRuntime.jsx)("img", {
@@ -860,13 +782,13 @@ var UploadPhoto = function UploadPhoto(props) {
860
782
  children: buttonText || 'Upload'
861
783
  })
862
784
  })]
863
- }), files.map(function (_ref10, index) {
785
+ }), files.map(function (_ref9, index) {
864
786
  var _classnames5;
865
787
 
866
- var dataUrl = _ref10.dataUrl,
867
- status = _ref10.status,
868
- type = _ref10.type,
869
- uid = _ref10.uid;
788
+ var dataUrl = _ref9.dataUrl,
789
+ status = _ref9.status,
790
+ type = _ref9.type,
791
+ uid = _ref9.uid;
870
792
  return (0, _jsxRuntime.jsx)(_badge.default, {
871
793
  count: getBadge(status, index, limit),
872
794
  children: (0, _jsxRuntime.jsxs)("div", {
@@ -934,10 +856,10 @@ function checkFileList(value) {
934
856
  return Promise.resolve();
935
857
  }
936
858
 
937
- UploadPhoto.formItemPropsHandler = function (_ref11) {
938
- var limit = _ref11.limit,
939
- previewFormater = _ref11.previewFormater,
940
- label = _ref11.label;
859
+ UploadPhoto.formItemPropsHandler = function (_ref10) {
860
+ var limit = _ref10.limit,
861
+ previewFormater = _ref10.previewFormater,
862
+ label = _ref10.label;
941
863
  return {
942
864
  previewFormater: previewFormater || function (value) {
943
865
  return (0, _jsxRuntime.jsx)(_uploadPreview.default, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iglooform",
3
- "version": "2.5.51",
3
+ "version": "2.5.52",
4
4
  "scripts": {
5
5
  "start": "dumi dev",
6
6
  "build-dev": "dumi build",