@ctlyst.id/internal-ui 5.4.8 → 5.4.10

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,24 +6008,41 @@ 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,
6016
+ buttonChangeText = "Ubah Foto",
6017
+ customErrorRejection,
6010
6018
  ...props
6011
6019
  }) => {
6012
6020
  const [filePreview, setFilePreview] = useState5();
6021
+ const [isError, setIsError] = useState5(propIsError);
6022
+ const [errorText, setErrorText] = useState5(propErrorText);
6013
6023
  const toast2 = useToast();
6014
6024
  const handleRejection = useCallback4(
6015
- (message, file, image) => {
6025
+ (message, file, image, errorCode) => {
6016
6026
  if (onHandleRejections) {
6017
- onHandleRejections(file, image);
6027
+ onHandleRejections(file, image, errorCode);
6018
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
+ }
6039
+ }
6040
+ setIsError(true);
6041
+ setErrorText(message);
6019
6042
  return toast2.error(message);
6020
6043
  },
6021
6044
  // eslint-disable-next-line react-hooks/exhaustive-deps
6022
- [onHandleRejections]
6045
+ [onHandleRejections, customErrorRejection]
6023
6046
  );
6024
6047
  const onDropAccepted = useCallback4(
6025
6048
  (files) => {
@@ -6118,6 +6141,10 @@ var Uploader = ({
6118
6141
  setFilePreview(value.name);
6119
6142
  return;
6120
6143
  }
6144
+ if (acceptFileType == null ? void 0 : acceptFileType.some((type) => type === value.type)) {
6145
+ setFilePreview(value.name);
6146
+ return;
6147
+ }
6121
6148
  setFilePreview(URL.createObjectURL(value));
6122
6149
  }
6123
6150
  } else {
@@ -6180,7 +6207,7 @@ var Uploader = ({
6180
6207
  "data-test-id": `CT_component_base-image-uploader_image-preview${testId ? `_${testId}` : ""}`,
6181
6208
  justify: "center",
6182
6209
  align: "center",
6183
- children: filePreview.includes("blob") ? /* @__PURE__ */ jsx66(
6210
+ children: filePreview.includes("blob") && !acceptFile.some(([type]) => typeof type === "string" && type.includes("image/")) ? /* @__PURE__ */ jsx66(
6184
6211
  ChakraImage,
6185
6212
  {
6186
6213
  h: size2 === "lg" ? "120" : "100",
@@ -6225,7 +6252,7 @@ var Uploader = ({
6225
6252
  size: "sm",
6226
6253
  variant: "outline",
6227
6254
  onClick: open,
6228
- children: "Ubah Foto"
6255
+ children: buttonChangeText
6229
6256
  }
6230
6257
  ) }),
6231
6258
  renderErrorText(errorText),