@bjsdistribution/dms-client-return 0.1.11-prod → 0.1.12-prod

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.
@@ -7808,9 +7808,10 @@ function UploadIcon(props) {
7808
7808
  }
7809
7809
 
7810
7810
  var _templateObject$1k, _templateObject2$Z, _templateObject3$u, _templateObject4$f, _templateObject5$9, _templateObject6$3, _templateObject7$5, _templateObject8$4, _templateObject9$2, _templateObject10$1, _templateObject11$1, _templateObject12, _templateObject13;
7811
+ // Store uploaded files
7811
7812
  var uploadedFilesAtom = /*#__PURE__*/jotai.atom([]);
7812
- // Allowed photo and video file types
7813
- var fileTypes = ['image/jpeg', 'image/png', 'video/mp4'];
7813
+ // Allowed photo MIME types
7814
+ var allowedFileTypes = ['image/jpeg', 'image/png'];
7814
7815
  function DocFileUpload() {
7815
7816
  var _useAtom = jotai.useAtom(uploadedFilesAtom),
7816
7817
  uploadedFiles = _useAtom[0],
@@ -7819,35 +7820,57 @@ function DocFileUpload() {
7819
7820
  dragging = _useState[0],
7820
7821
  setDragging = _useState[1];
7821
7822
  var fileInputRef = React.useRef(null);
7823
+ var isDuplicate = function isDuplicate(file) {
7824
+ return uploadedFiles == null ? void 0 : uploadedFiles.some(function (existing) {
7825
+ return (existing == null ? void 0 : existing.name) === (file == null ? void 0 : file.name) && (existing == null ? void 0 : existing.size) === (file == null ? void 0 : file.size) && (existing == null ? void 0 : existing.lastModified) === (file == null ? void 0 : file.lastModified);
7826
+ });
7827
+ };
7822
7828
  var handleFileUpload = function handleFileUpload(files) {
7823
- if (files) {
7824
- var validFiles = Array.from(files).filter(function (file) {
7825
- return fileTypes.includes(file.type);
7826
- });
7827
- if (validFiles.length > 0) {
7828
- setUploadedFiles(function (prev) {
7829
- return [].concat(prev, validFiles);
7830
- });
7831
- validFiles.forEach(function (file) {
7832
- antd.notification.success({
7833
- message: 'Success',
7834
- description: file.name + " added successfully."
7835
- });
7836
- });
7829
+ if (!files) return;
7830
+ var validFiles = [];
7831
+ var rejectedFiles = [];
7832
+ Array.from(files).forEach(function (file) {
7833
+ var isValidType = allowedFileTypes == null ? void 0 : allowedFileTypes.includes(file.type);
7834
+ var isNew = !isDuplicate(file);
7835
+ if (isValidType && isNew) {
7836
+ validFiles == null || validFiles.push(file);
7837
7837
  } else {
7838
- antd.notification.error({
7839
- message: 'Error',
7840
- description: 'Only photos (JPEG, PNG) and videos (MP4) are allowed.'
7841
- });
7838
+ rejectedFiles == null || rejectedFiles.push(file);
7842
7839
  }
7840
+ });
7841
+ if ((validFiles == null ? void 0 : validFiles.length) > 0) {
7842
+ setUploadedFiles(function (prev) {
7843
+ return [].concat(prev, validFiles);
7844
+ });
7845
+ validFiles == null || validFiles.forEach(function (file) {
7846
+ return antd.notification.success({
7847
+ message: 'Success',
7848
+ description: file.name + " added successfully."
7849
+ });
7850
+ });
7851
+ }
7852
+ if ((rejectedFiles == null ? void 0 : rejectedFiles.length) > 0) {
7853
+ antd.notification.error({
7854
+ message: 'Some files were not added',
7855
+ description: 'Either they were duplicates or not JPEG/PNG format.'
7856
+ });
7843
7857
  }
7844
7858
  };
7859
+ var handleRemoveFile = function handleRemoveFile(indexToRemove) {
7860
+ var updated = uploadedFiles == null ? void 0 : uploadedFiles.filter(function (_, i) {
7861
+ return i !== indexToRemove;
7862
+ });
7863
+ setUploadedFiles(updated);
7864
+ antd.notification.info({
7865
+ message: 'File Removed'
7866
+ });
7867
+ };
7845
7868
  var handleDragOver = function handleDragOver(e) {
7846
7869
  e.preventDefault();
7847
7870
  setDragging(true);
7848
7871
  };
7849
7872
  var handleDragLeave = function handleDragLeave() {
7850
- setDragging(false);
7873
+ return setDragging(false);
7851
7874
  };
7852
7875
  var handleDrop = function handleDrop(e) {
7853
7876
  e.preventDefault();
@@ -7856,11 +7879,11 @@ function DocFileUpload() {
7856
7879
  };
7857
7880
  var handleInputChange = function handleInputChange(e) {
7858
7881
  handleFileUpload(e.target.files);
7882
+ e.target.value = ''; // Allow re-upload of same file
7859
7883
  };
7860
7884
  var handleButtonClick = function handleButtonClick() {
7861
- if (fileInputRef.current) {
7862
- fileInputRef.current.click();
7863
- }
7885
+ var _fileInputRef$current;
7886
+ return (_fileInputRef$current = fileInputRef.current) == null ? void 0 : _fileInputRef$current.click();
7864
7887
  };
7865
7888
  return React__default.createElement(MainContainer$7, null, React__default.createElement(DraggerContainer, {
7866
7889
  onDragOver: handleDragOver,
@@ -7868,37 +7891,44 @@ function DocFileUpload() {
7868
7891
  onDrop: handleDrop,
7869
7892
  dragging: dragging
7870
7893
  }, React__default.createElement(Container$P, null, React__default.createElement(UploadButton, {
7871
- colors: "secondary",
7894
+ type: "button",
7872
7895
  shape: "rounded",
7873
7896
  onClick: handleButtonClick
7874
7897
  }, "UPLOAD FILE"), React__default.createElement(FileInput, {
7875
7898
  type: "file",
7876
- required: true,
7899
+ accept: allowedFileTypes.join(','),
7877
7900
  multiple: true,
7878
7901
  onChange: handleInputChange,
7879
- accept: "image/jpeg, image/png, video/mp4",
7880
7902
  ref: fileInputRef
7881
- }), React__default.createElement(IconContainer$3, null, React__default.createElement(UploadIcon, null)), React__default.createElement(TextContainer$2, null, React__default.createElement(Text1, null, "or drag and drop your file "), React__default.createElement(Text2, null, "Photos (JPEG, PNG) or Videos (MP4) Only")))), uploadedFiles.length > 0 && React__default.createElement(UploadedFilesContainer, null, React__default.createElement(FilesTitle, null, "Uploaded Files:"), React__default.createElement(FilesList, null, uploadedFiles.map(function (file, index) {
7903
+ }), React__default.createElement(IconContainer$3, null, React__default.createElement(UploadIcon, null)), React__default.createElement(TextContainer$2, null, React__default.createElement(Text1, null, "or drag and drop your files"), React__default.createElement(Text2, null, "Photos (JPEG, PNG) Only")))), uploadedFiles.length > 0 && React__default.createElement(UploadedFilesContainer, null, React__default.createElement(FilesTitle, null, "Uploaded Files:"), React__default.createElement(FilesList, null, uploadedFiles == null ? void 0 : uploadedFiles.map(function (file, index) {
7882
7904
  return React__default.createElement(FileItem, {
7883
- key: index
7884
- }, file.name, " - ", (file.size / 1024).toFixed(2), " KB");
7905
+ key: file.name + "-" + index
7906
+ }, file.name, " - ", (file.size / 1024).toFixed(2), " KB", React__default.createElement(dmsComponentLibrary.CrossIcon, {
7907
+ style: {
7908
+ cursor: 'pointer',
7909
+ marginLeft: 8
7910
+ },
7911
+ onClick: function onClick() {
7912
+ return handleRemoveFile(index);
7913
+ }
7914
+ }));
7885
7915
  }))));
7886
7916
  }
7887
7917
  var MainContainer$7 = /*#__PURE__*/styled__default.div(_templateObject$1k || (_templateObject$1k = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: 100%;\n"])));
7888
7918
  var DraggerContainer = /*#__PURE__*/styled__default.div(_templateObject2$Z || (_templateObject2$Z = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: 100%;\n padding: 6px;\n border-radius: 30px;\n border: ", ";\n background-color: #fff;\n transition: border-color 0.3s ease;\n cursor: pointer;\n"])), function (props) {
7889
7919
  return props.dragging ? '2px dashed #0465ac' : '1px solid #e0e2e7';
7890
7920
  });
7891
- var Text2 = /*#__PURE__*/styled__default.p(_templateObject3$u || (_templateObject3$u = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n color: #bcbab7;\n text-align: center;\n font-family: 'Roboto', sans-serif;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n text-transform: lowercase;\n padding: 0;\n margin: 0;\n"])));
7892
- var TextContainer$2 = /*#__PURE__*/styled__default.div(_templateObject4$f || (_templateObject4$f = /*#__PURE__*/_taggedTemplateLiteralLoose([""])));
7893
- var Text1 = /*#__PURE__*/styled__default.p(_templateObject5$9 || (_templateObject5$9 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n color: #aea9a1;\n text-align: left;\n font-family: 'Roboto', sans-serif;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n text-transform: lowercase;\n padding: 0;\n margin: 0;\n"])));
7921
+ var Container$P = /*#__PURE__*/styled__default.div(_templateObject3$u || (_templateObject3$u = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n gap: 8px;\n padding: 6px;\n align-items: center;\n border-radius: 30px;\n background: #fff;\n"])));
7922
+ var UploadButton = /*#__PURE__*/styled__default(dmsComponentLibrary.Button)(_templateObject4$f || (_templateObject4$f = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 14px;\n padding: 7px 20px;\n height: auto;\n border-radius: 20px;\n"])));
7923
+ var FileInput = /*#__PURE__*/styled__default.input(_templateObject5$9 || (_templateObject5$9 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: none;\n"])));
7894
7924
  var IconContainer$3 = /*#__PURE__*/styled__default.div(_templateObject6$3 || (_templateObject6$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n border: 1px dashed #0465ac;\n padding: 5px;\n display: flex;\n align-items: center;\n"])));
7895
- var UploadButton = /*#__PURE__*/styled__default(dmsComponentLibrary.Button)(_templateObject7$5 || (_templateObject7$5 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n height: 16px;\n font-size: 14px;\n padding: 7px 20px;\n"])));
7896
- var Container$P = /*#__PURE__*/styled__default.div(_templateObject8$4 || (_templateObject8$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n gap: 8px;\n padding: 6px;\n align-items: center;\n align-self: stretch;\n border-radius: 30px;\n background: #fff;\n"])));
7897
- var FileInput = /*#__PURE__*/styled__default.input(_templateObject9$2 || (_templateObject9$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: none;\n"])));
7925
+ var TextContainer$2 = /*#__PURE__*/styled__default.div(_templateObject7$5 || (_templateObject7$5 = /*#__PURE__*/_taggedTemplateLiteralLoose([""])));
7926
+ var Text1 = /*#__PURE__*/styled__default.p(_templateObject8$4 || (_templateObject8$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n color: #aea9a1;\n font-family: 'Roboto', sans-serif;\n font-size: 14px;\n font-weight: 500;\n margin: 0;\n"])));
7927
+ var Text2 = /*#__PURE__*/styled__default.p(_templateObject9$2 || (_templateObject9$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n color: #bcbab7;\n font-family: 'Roboto', sans-serif;\n font-size: 13px;\n font-weight: 400;\n margin: 0;\n"])));
7898
7928
  var UploadedFilesContainer = /*#__PURE__*/styled__default.div(_templateObject10$1 || (_templateObject10$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-top: 20px;\n border-top: 1px solid #e0e2e7;\n padding-top: 10px;\n"])));
7899
7929
  var FilesTitle = /*#__PURE__*/styled__default.h4(_templateObject11$1 || (_templateObject11$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-family: 'Roboto', sans-serif;\n font-size: 16px;\n color: #0465ac;\n"])));
7900
- var FilesList = /*#__PURE__*/styled__default.ul(_templateObject12 || (_templateObject12 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n list-style-type: none;\n padding: 0;\n"])));
7901
- var FileItem = /*#__PURE__*/styled__default.li(_templateObject13 || (_templateObject13 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-family: 'Roboto', sans-serif;\n font-size: 14px;\n color: #333;\n margin: 5px 0;\n"])));
7930
+ var FilesList = /*#__PURE__*/styled__default.ul(_templateObject12 || (_templateObject12 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n overflow: auto;\n max-height: 200px;\n list-style-type: none;\n padding: 0;\n"])));
7931
+ var FileItem = /*#__PURE__*/styled__default.li(_templateObject13 || (_templateObject13 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-family: 'Roboto', sans-serif;\n font-size: 14px;\n color: #333;\n margin: 5px 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n"])));
7902
7932
 
7903
7933
  var _templateObject$1l, _templateObject2$_, _templateObject3$v, _templateObject4$g, _templateObject5$a;
7904
7934
  function AddResources() {
@@ -7955,14 +7985,13 @@ function AddResources() {
7955
7985
  setSelectedType(selectedOption.value);
7956
7986
  }
7957
7987
  };
7958
- console.log(uploadedFiles, 'filesfiles');
7959
7988
  var handleSubmit = /*#__PURE__*/function () {
7960
7989
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
7961
- var formData, response;
7990
+ var formData, response, _err$response, _err$response2, err, status, rawError, errMsg;
7962
7991
  return _regeneratorRuntime().wrap(function _callee$(_context) {
7963
7992
  while (1) switch (_context.prev = _context.next) {
7964
7993
  case 0:
7965
- if (uploadedFiles) {
7994
+ if (!(!uploadedFiles || uploadedFiles.length === 0)) {
7966
7995
  _context.next = 3;
7967
7996
  break;
7968
7997
  }
@@ -7972,11 +8001,9 @@ function AddResources() {
7972
8001
  return _context.abrupt("return");
7973
8002
  case 3:
7974
8003
  formData = new FormData();
7975
- if (uploadedFiles) {
7976
- Array.from(uploadedFiles).forEach(function (uploadedFiles) {
7977
- formData.append('files', uploadedFiles); // Adjust the key as per your API requirement
7978
- });
7979
- }
8004
+ uploadedFiles.forEach(function (file) {
8005
+ formData.append('files', file); // Adjust key as per API
8006
+ });
7980
8007
  _context.prev = 5;
7981
8008
  _context.next = 8;
7982
8009
  return callResourcesAPI({
@@ -7988,18 +8015,32 @@ function AddResources() {
7988
8015
  antd.notification.success({
7989
8016
  message: 'Files uploaded successfully'
7990
8017
  });
7991
- onClose(); // Close modal after successful upload
8018
+ onClose(); // Close modal
7992
8019
  setResources(false);
7993
8020
  setTimeout(function () {
7994
8021
  setResources(true);
7995
8022
  }, 1000);
7996
- _context.next = 19;
8023
+ _context.next = 24;
7997
8024
  break;
7998
8025
  case 16:
7999
8026
  _context.prev = 16;
8000
8027
  _context.t0 = _context["catch"](5);
8001
- console.error('Upload failed:', _context.t0);
8002
- case 19:
8028
+ err = _context.t0;
8029
+ status = err == null || (_err$response = err.response) == null ? void 0 : _err$response.status;
8030
+ rawError = (err == null || (_err$response2 = err.response) == null || (_err$response2 = _err$response2.data) == null ? void 0 : _err$response2.error) || '';
8031
+ errMsg = 'An unexpected error occurred.';
8032
+ if (status === 413) {
8033
+ errMsg = 'File is too large. Please upload a smaller file.';
8034
+ } else if (rawError.includes('413')) {
8035
+ errMsg = 'File size exceeds the allowed limit.';
8036
+ } else if (err != null && err.message) {
8037
+ errMsg = err.message;
8038
+ }
8039
+ antd.notification.error({
8040
+ message: 'Upload Failed',
8041
+ description: errMsg
8042
+ });
8043
+ case 24:
8003
8044
  case "end":
8004
8045
  return _context.stop();
8005
8046
  }