@ctlyst.id/internal-ui 3.5.2 → 3.5.3

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
@@ -5714,6 +5714,47 @@ var defaultOnHandleRejections = (fileRejection, config2, handleRejection) => {
5714
5714
  }
5715
5715
  };
5716
5716
 
5717
+ // src/components/uploader/utils/is-ratio-equal.ts
5718
+ var isRatioEqual = (base, img) => {
5719
+ const baseRatio = (base.width / base.height).toFixed(2);
5720
+ const imgRatio = (img.width / img.height).toFixed(2);
5721
+ return baseRatio === imgRatio;
5722
+ };
5723
+
5724
+ // src/components/uploader/components/validator.ts
5725
+ var dimensionValidator = (dimension, message) => {
5726
+ return (file) => {
5727
+ const imageUrl = URL.createObjectURL(file);
5728
+ const img = new Image();
5729
+ img.src = imageUrl;
5730
+ img.onload = () => {
5731
+ };
5732
+ const isRatioValid = isRatioEqual(
5733
+ { width: dimension[0], height: dimension[1] },
5734
+ { width: img.width, height: img.height }
5735
+ );
5736
+ if (isRatioValid) {
5737
+ return null;
5738
+ }
5739
+ return {
5740
+ code: error_code_default.FileInvalidDimension,
5741
+ message: message != null ? message : "File has invalid dimension"
5742
+ };
5743
+ };
5744
+ };
5745
+ var extensionValidator = (extensions, message) => {
5746
+ return (file) => {
5747
+ const fileFormat = file.name.split(".").pop();
5748
+ if (!extensions.includes(fileFormat)) {
5749
+ return {
5750
+ code: error_code_default.FileInvalidType,
5751
+ message: message != null ? message : "File has invalid dimension"
5752
+ };
5753
+ }
5754
+ return null;
5755
+ };
5756
+ };
5757
+
5717
5758
  // src/components/uploader/components/uploader.tsx
5718
5759
  import { Fragment as Fragment12, jsx as jsx66, jsxs as jsxs31 } from "react/jsx-runtime";
5719
5760
  var Uploader = ({
@@ -5787,16 +5828,22 @@ var Uploader = ({
5787
5828
  }, []);
5788
5829
  const validator = useCallback2(
5789
5830
  (file) => {
5831
+ const result = [];
5832
+ if (acceptFormat.validate) {
5833
+ const error = extensionValidator(acceptFormat.validate, acceptFormat.message)(file);
5834
+ if (error) {
5835
+ result.push(error);
5836
+ }
5837
+ }
5790
5838
  if (validatorExt) {
5791
- const result = [];
5792
5839
  validatorExt.forEach((validatorFn) => {
5793
5840
  const error = validatorFn(file);
5794
5841
  if (Array.isArray(error)) {
5795
5842
  result.push(...error);
5796
5843
  } else if (error) result.push(error);
5797
5844
  });
5798
- return result;
5799
5845
  }
5846
+ if (result.length > 0) return result;
5800
5847
  return null;
5801
5848
  },
5802
5849
  [validatorExt]
@@ -5956,36 +6003,6 @@ var Uploader = ({
5956
6003
  };
5957
6004
  var uploader_default = Uploader;
5958
6005
 
5959
- // src/components/uploader/utils/is-ratio-equal.ts
5960
- var isRatioEqual = (base, img) => {
5961
- const baseRatio = (base.width / base.height).toFixed(2);
5962
- const imgRatio = (img.width / img.height).toFixed(2);
5963
- return baseRatio === imgRatio;
5964
- };
5965
-
5966
- // src/components/uploader/components/validator.ts
5967
- var dimensionValidator = (dimension, message) => {
5968
- return (file) => {
5969
- const imageUrl = URL.createObjectURL(file);
5970
- const img = new Image();
5971
- img.src = imageUrl;
5972
- img.onload = () => {
5973
- };
5974
- const isRatioValid = isRatioEqual(
5975
- { width: dimension[0], height: dimension[1] },
5976
- { width: img.width, height: img.height }
5977
- );
5978
- console.log("log", isRatioValid);
5979
- if (isRatioValid) {
5980
- return null;
5981
- }
5982
- return {
5983
- code: error_code_default.FileInvalidDimension,
5984
- message: message != null ? message : "File has invalid dimension"
5985
- };
5986
- };
5987
- };
5988
-
5989
6006
  // src/components/index.ts
5990
6007
  import {
5991
6008
  Avatar as Avatar2,
@@ -8070,6 +8087,7 @@ export {
8070
8087
  defaultOnHandleRejections,
8071
8088
  dimensionValidator,
8072
8089
  extendTheme,
8090
+ extensionValidator,
8073
8091
  forwardRef13 as forwardRef,
8074
8092
  getSelectAllCheckboxState,
8075
8093
  getTheme,