@ctlyst.id/internal-ui 5.4.9 → 5.4.11

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.
package/dist/index.mjs CHANGED
@@ -5945,6 +5945,7 @@ var ErrorCode = /* @__PURE__ */ ((ErrorCode2) => {
5945
5945
  ErrorCode2["FileTooSmall"] = "file-too-small";
5946
5946
  ErrorCode2["TooManyFiles"] = "too-many-files";
5947
5947
  ErrorCode2["FileInvalidDimension"] = "file-invalid-dimension";
5948
+ ErrorCode2["FileInvalid"] = "file-invalid";
5948
5949
  return ErrorCode2;
5949
5950
  })(ErrorCode || {});
5950
5951
  var error_code_default = ErrorCode;
@@ -5961,19 +5962,24 @@ var defaultOnHandleRejections = (fileRejection, config2, handleRejection) => {
5961
5962
  handleRejection(
5962
5963
  (_d = (_b = config2.acceptFormat) == null ? void 0 : _b.message) != null ? _d : formatValidationMessage((_c = config2.acceptFormat) == null ? void 0 : _c.validate),
5963
5964
  file,
5964
- null
5965
+ null,
5966
+ error_code_default.FileInvalidType
5965
5967
  );
5966
5968
  }
5967
5969
  break;
5968
5970
  }
5969
5971
  case error_code_default.FileTooLarge: {
5970
5972
  if (config2.maxFileSize) {
5971
- handleRejection(config2.maxFileSize.message, file, null);
5973
+ handleRejection(config2.maxFileSize.message, file, null, error_code_default.FileTooLarge);
5972
5974
  }
5973
5975
  break;
5974
5976
  }
5977
+ case error_code_default.TooManyFiles: {
5978
+ handleRejection(errors3[0].message, file, null, error_code_default.TooManyFiles);
5979
+ break;
5980
+ }
5975
5981
  default:
5976
- handleRejection(errors3[0].message, file, null);
5982
+ handleRejection(errors3[0].message, file, null, error_code_default.FileInvalid);
5977
5983
  break;
5978
5984
  }
5979
5985
  };
@@ -6002,29 +6008,47 @@ var Uploader = ({
6002
6008
  value,
6003
6009
  isShowCloseButton = true,
6004
6010
  testId,
6005
- isError,
6006
- errorText,
6011
+ isError: propIsError,
6012
+ errorText: propErrorText,
6007
6013
  isShowReupload = true,
6008
6014
  size: size2 = "lg",
6009
6015
  validatorExt,
6010
6016
  buttonChangeText = "Ubah Foto",
6017
+ customErrorRejection,
6011
6018
  ...props
6012
6019
  }) => {
6013
6020
  const [filePreview, setFilePreview] = useState5();
6021
+ const [isError, setIsError] = useState5(propIsError);
6022
+ const [errorText, setErrorText] = useState5(propErrorText);
6014
6023
  const toast2 = useToast();
6015
6024
  const handleRejection = useCallback4(
6016
- (message, file, image) => {
6025
+ (message, file, image, errorCode) => {
6017
6026
  if (onHandleRejections) {
6018
- onHandleRejections(file, image);
6027
+ onHandleRejections(file, image, errorCode);
6028
+ }
6029
+ if (customErrorRejection == null ? void 0 : customErrorRejection[errorCode]) {
6030
+ const error = customErrorRejection[errorCode];
6031
+ if ((error == null ? void 0 : error.type) === "toast") {
6032
+ return toast2.error(error.message);
6033
+ }
6034
+ if ((error == null ? void 0 : error.type) === "inline") {
6035
+ setIsError(true);
6036
+ setErrorText(error.message);
6037
+ return error.message;
6038
+ }
6019
6039
  }
6040
+ setIsError(true);
6041
+ setErrorText(message);
6020
6042
  return toast2.error(message);
6021
6043
  },
6022
6044
  // eslint-disable-next-line react-hooks/exhaustive-deps
6023
- [onHandleRejections]
6045
+ [onHandleRejections, customErrorRejection]
6024
6046
  );
6025
6047
  const onDropAccepted = useCallback4(
6026
6048
  (files) => {
6027
6049
  const file = files[0];
6050
+ setIsError(propIsError);
6051
+ setErrorText(propErrorText);
6028
6052
  if (acceptFileType && acceptFileType.includes(file.type)) {
6029
6053
  setFilePreview(file.name);
6030
6054
  onHandleUploadFile == null ? void 0 : onHandleUploadFile(file, null);