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