@majoo-ui/react 1.61.12-rc.14 → 1.61.12-rc.16

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.
Files changed (3) hide show
  1. package/index.esm.js +75 -61
  2. package/index.umd.js +75 -61
  3. package/package.json +1 -1
package/index.esm.js CHANGED
@@ -28915,9 +28915,7 @@ function imgPreview(image, crop, scale = 1, rotate = 0, ratio, type) {
28915
28915
 
28916
28916
  const _excluded = ["customPreviewIcon"];
28917
28917
  var _jsxFileName$9 = "/home/alfiantryp/Project/majoo-ui/packages/react/src/components/upload/Upload.js";
28918
- const Input$2 = styled('input', {
28919
- display: 'none !important'
28920
- });
28918
+ const Input$2 = styled('input', {});
28921
28919
  const Children = styled('div', {
28922
28920
  display: 'flex',
28923
28921
  justifyContent: 'center',
@@ -29007,17 +29005,17 @@ const IconStateFull = _ref => {
29007
29005
  __self: undefined,
29008
29006
  __source: {
29009
29007
  fileName: _jsxFileName$9,
29010
- lineNumber: 119,
29008
+ lineNumber: 117,
29011
29009
  columnNumber: 5
29012
29010
  }
29013
29011
  })) : /*#__PURE__*/React__default.createElement(React__default.Fragment, {
29014
29012
  __self: undefined,
29015
29013
  __source: {
29016
29014
  fileName: _jsxFileName$9,
29017
- lineNumber: 126,
29015
+ lineNumber: 124,
29018
29016
  columnNumber: 5
29019
29017
  }
29020
- }, !!customPreviewIcon ? (/*#__PURE__*/React__default.cloneElement(customPreviewIcon, Object.assign({}, customPreviewIcon.props, props, {
29018
+ }, customPreviewIcon ? (/*#__PURE__*/React__default.cloneElement(customPreviewIcon, Object.assign({}, customPreviewIcon.props, props, {
29021
29019
  color: isHover ? '#04C99E' : customPreviewIcon.props.color,
29022
29020
  onMouseEnter: handleEnter,
29023
29021
  onMouseLeave: handleLeave,
@@ -29036,7 +29034,7 @@ const IconStateFull = _ref => {
29036
29034
  __self: undefined,
29037
29035
  __source: {
29038
29036
  fileName: _jsxFileName$9,
29039
- lineNumber: 145,
29037
+ lineNumber: 143,
29040
29038
  columnNumber: 9
29041
29039
  }
29042
29040
  })));
@@ -29100,6 +29098,7 @@ const Upload = ({
29100
29098
  const [aspect, setAspect] = useState(isDefaultCustomRatio ? 0 : 1);
29101
29099
  const [isLoading, setIsLoading] = useState(false);
29102
29100
  const [cropperImgRatio, setCropperImgRatio] = useState(null);
29101
+ const [fileValue, setFileValue] = useState('');
29103
29102
  const isMobile = useMediaQuery('(max-width: 767px)');
29104
29103
  useEffect(() => {
29105
29104
  if (loading) {
@@ -29224,6 +29223,10 @@ const Upload = ({
29224
29223
  });
29225
29224
  function handleClick() {
29226
29225
  if (!disabled) {
29226
+ // Ensure input is reset before clicking
29227
+ if (hiddenFileInput.current) {
29228
+ hiddenFileInput.current.value = '';
29229
+ }
29227
29230
  hiddenFileInput.current.click();
29228
29231
  }
29229
29232
  }
@@ -29404,7 +29407,12 @@ const Upload = ({
29404
29407
  }
29405
29408
  }
29406
29409
  // Reset the input value to ensure onChange fires even when selecting the same file
29407
- e.target.value = '';
29410
+ // Use setTimeout to ensure the reset happens after the current event loop
29411
+ setTimeout(() => {
29412
+ if (e.target && e.target.value) {
29413
+ e.target.value = '';
29414
+ }
29415
+ }, 0);
29408
29416
  }
29409
29417
  function handleCrop() {
29410
29418
  if (completedCrop != null && completedCrop.width && completedCrop != null && completedCrop.height && imgRef.current) {
@@ -29547,7 +29555,7 @@ const Upload = ({
29547
29555
  __self: this,
29548
29556
  __source: {
29549
29557
  fileName: _jsxFileName$9,
29550
- lineNumber: 680,
29558
+ lineNumber: 689,
29551
29559
  columnNumber: 7
29552
29560
  }
29553
29561
  }, /*#__PURE__*/React__default.createElement(ButtonText, {
@@ -29557,7 +29565,7 @@ const Upload = ({
29557
29565
  __self: this,
29558
29566
  __source: {
29559
29567
  fileName: _jsxFileName$9,
29560
- lineNumber: 681,
29568
+ lineNumber: 690,
29561
29569
  columnNumber: 9
29562
29570
  }
29563
29571
  }, replaceLabel && replaceLabel.length > 0 ? replaceLabel : t('replaceLabel', 'Ubah Berkas')));
@@ -29572,7 +29580,7 @@ const Upload = ({
29572
29580
  __self: undefined,
29573
29581
  __source: {
29574
29582
  fileName: _jsxFileName$9,
29575
- lineNumber: 691,
29583
+ lineNumber: 700,
29576
29584
  columnNumber: 16
29577
29585
  }
29578
29586
  });
@@ -29583,7 +29591,7 @@ const Upload = ({
29583
29591
  __self: undefined,
29584
29592
  __source: {
29585
29593
  fileName: _jsxFileName$9,
29586
- lineNumber: 694,
29594
+ lineNumber: 703,
29587
29595
  columnNumber: 9
29588
29596
  }
29589
29597
  }, /*#__PURE__*/React__default.createElement(Box, {
@@ -29593,7 +29601,7 @@ const Upload = ({
29593
29601
  __self: undefined,
29594
29602
  __source: {
29595
29603
  fileName: _jsxFileName$9,
29596
- lineNumber: 695,
29604
+ lineNumber: 704,
29597
29605
  columnNumber: 11
29598
29606
  }
29599
29607
  }, !disabled && /*#__PURE__*/React__default.createElement(IconStateFull, {
@@ -29602,7 +29610,7 @@ const Upload = ({
29602
29610
  __self: undefined,
29603
29611
  __source: {
29604
29612
  fileName: _jsxFileName$9,
29605
- lineNumber: 696,
29613
+ lineNumber: 705,
29606
29614
  columnNumber: 27
29607
29615
  }
29608
29616
  }), !hiddenPreview && /*#__PURE__*/React__default.createElement(Box, {
@@ -29615,7 +29623,7 @@ const Upload = ({
29615
29623
  __self: undefined,
29616
29624
  __source: {
29617
29625
  fileName: _jsxFileName$9,
29618
- lineNumber: 698,
29626
+ lineNumber: 707,
29619
29627
  columnNumber: 15
29620
29628
  }
29621
29629
  }, /*#__PURE__*/React__default.createElement(IconStateFull, {
@@ -29631,7 +29639,7 @@ const Upload = ({
29631
29639
  __self: undefined,
29632
29640
  __source: {
29633
29641
  fileName: _jsxFileName$9,
29634
- lineNumber: 706,
29642
+ lineNumber: 715,
29635
29643
  columnNumber: 17
29636
29644
  }
29637
29645
  })), /*#__PURE__*/React__default.createElement(Image, {
@@ -29641,7 +29649,7 @@ const Upload = ({
29641
29649
  __self: undefined,
29642
29650
  __source: {
29643
29651
  fileName: _jsxFileName$9,
29644
- lineNumber: 719,
29652
+ lineNumber: 728,
29645
29653
  columnNumber: 13
29646
29654
  }
29647
29655
  })), !disabled && renderButtonReplace(index));
@@ -29658,7 +29666,7 @@ const Upload = ({
29658
29666
  __self: undefined,
29659
29667
  __source: {
29660
29668
  fileName: _jsxFileName$9,
29661
- lineNumber: 730,
29669
+ lineNumber: 739,
29662
29670
  columnNumber: 16
29663
29671
  }
29664
29672
  });
@@ -29668,7 +29676,7 @@ const Upload = ({
29668
29676
  __self: undefined,
29669
29677
  __source: {
29670
29678
  fileName: _jsxFileName$9,
29671
- lineNumber: 733,
29679
+ lineNumber: 742,
29672
29680
  columnNumber: 9
29673
29681
  }
29674
29682
  }, /*#__PURE__*/React__default.createElement(Box, {
@@ -29678,7 +29686,7 @@ const Upload = ({
29678
29686
  __self: undefined,
29679
29687
  __source: {
29680
29688
  fileName: _jsxFileName$9,
29681
- lineNumber: 734,
29689
+ lineNumber: 743,
29682
29690
  columnNumber: 11
29683
29691
  }
29684
29692
  }, !disabled && /*#__PURE__*/React__default.createElement(IconStateFull, {
@@ -29687,7 +29695,7 @@ const Upload = ({
29687
29695
  __self: undefined,
29688
29696
  __source: {
29689
29697
  fileName: _jsxFileName$9,
29690
- lineNumber: 735,
29698
+ lineNumber: 744,
29691
29699
  columnNumber: 27
29692
29700
  }
29693
29701
  }), /*#__PURE__*/React__default.createElement(Box, {
@@ -29700,7 +29708,7 @@ const Upload = ({
29700
29708
  __self: undefined,
29701
29709
  __source: {
29702
29710
  fileName: _jsxFileName$9,
29703
- lineNumber: 736,
29711
+ lineNumber: 745,
29704
29712
  columnNumber: 13
29705
29713
  }
29706
29714
  }, /*#__PURE__*/React__default.createElement(Flex$1, {
@@ -29710,14 +29718,14 @@ const Upload = ({
29710
29718
  __self: undefined,
29711
29719
  __source: {
29712
29720
  fileName: _jsxFileName$9,
29713
- lineNumber: 744,
29721
+ lineNumber: 753,
29714
29722
  columnNumber: 15
29715
29723
  }
29716
29724
  }, /*#__PURE__*/React__default.createElement(FileExtension, {
29717
29725
  __self: undefined,
29718
29726
  __source: {
29719
29727
  fileName: _jsxFileName$9,
29720
- lineNumber: 745,
29728
+ lineNumber: 754,
29721
29729
  columnNumber: 17
29722
29730
  }
29723
29731
  }, ".", item == null || (_item$name = item.name) == null ? void 0 : _item$name.split('.').pop()), /*#__PURE__*/React__default.createElement(Tooltip$1, {
@@ -29725,7 +29733,7 @@ const Upload = ({
29725
29733
  __self: undefined,
29726
29734
  __source: {
29727
29735
  fileName: _jsxFileName$9,
29728
- lineNumber: 746,
29736
+ lineNumber: 755,
29729
29737
  columnNumber: 17
29730
29738
  }
29731
29739
  }, /*#__PURE__*/React__default.createElement(Text, {
@@ -29740,7 +29748,7 @@ const Upload = ({
29740
29748
  __self: undefined,
29741
29749
  __source: {
29742
29750
  fileName: _jsxFileName$9,
29743
- lineNumber: 747,
29751
+ lineNumber: 756,
29744
29752
  columnNumber: 19
29745
29753
  }
29746
29754
  }, item.name)))), !hiddenPreview && /*#__PURE__*/React__default.createElement(Box, {
@@ -29753,7 +29761,7 @@ const Upload = ({
29753
29761
  __self: undefined,
29754
29762
  __source: {
29755
29763
  fileName: _jsxFileName$9,
29756
- lineNumber: 763,
29764
+ lineNumber: 772,
29757
29765
  columnNumber: 15
29758
29766
  }
29759
29767
  }, /*#__PURE__*/React__default.createElement(IconStateFull, {
@@ -29769,7 +29777,7 @@ const Upload = ({
29769
29777
  __self: undefined,
29770
29778
  __source: {
29771
29779
  fileName: _jsxFileName$9,
29772
- lineNumber: 771,
29780
+ lineNumber: 780,
29773
29781
  columnNumber: 17
29774
29782
  }
29775
29783
  })), /*#__PURE__*/React__default.createElement(Blank, {
@@ -29777,7 +29785,7 @@ const Upload = ({
29777
29785
  __self: undefined,
29778
29786
  __source: {
29779
29787
  fileName: _jsxFileName$9,
29780
- lineNumber: 784,
29788
+ lineNumber: 793,
29781
29789
  columnNumber: 13
29782
29790
  }
29783
29791
  })), !disabled && renderButtonReplace(index));
@@ -29792,7 +29800,7 @@ const Upload = ({
29792
29800
  __self: this,
29793
29801
  __source: {
29794
29802
  fileName: _jsxFileName$9,
29795
- lineNumber: 795,
29803
+ lineNumber: 804,
29796
29804
  columnNumber: 7
29797
29805
  }
29798
29806
  }, /*#__PURE__*/React__default.createElement(Flex$1, {
@@ -29806,7 +29814,7 @@ const Upload = ({
29806
29814
  __self: this,
29807
29815
  __source: {
29808
29816
  fileName: _jsxFileName$9,
29809
- lineNumber: 796,
29817
+ lineNumber: 805,
29810
29818
  columnNumber: 9
29811
29819
  }
29812
29820
  }, /*#__PURE__*/React__default.createElement(LoadingBar, {
@@ -29832,7 +29840,7 @@ const Upload = ({
29832
29840
  __self: this,
29833
29841
  __source: {
29834
29842
  fileName: _jsxFileName$9,
29835
- lineNumber: 797,
29843
+ lineNumber: 806,
29836
29844
  columnNumber: 11
29837
29845
  }
29838
29846
  }), /*#__PURE__*/React__default.createElement(Text, {
@@ -29840,14 +29848,14 @@ const Upload = ({
29840
29848
  __self: this,
29841
29849
  __source: {
29842
29850
  fileName: _jsxFileName$9,
29843
- lineNumber: 810,
29851
+ lineNumber: 819,
29844
29852
  columnNumber: 11
29845
29853
  }
29846
29854
  }, `${progress <= 100 ? progress : 100}%`), /*#__PURE__*/React__default.createElement(Text, {
29847
29855
  __self: this,
29848
29856
  __source: {
29849
29857
  fileName: _jsxFileName$9,
29850
- lineNumber: 811,
29858
+ lineNumber: 820,
29851
29859
  columnNumber: 11
29852
29860
  }
29853
29861
  }, t('uploadingLabel', 'Berkas sedang diunggah'))));
@@ -29859,7 +29867,7 @@ const Upload = ({
29859
29867
  __self: this,
29860
29868
  __source: {
29861
29869
  fileName: _jsxFileName$9,
29862
- lineNumber: 819,
29870
+ lineNumber: 828,
29863
29871
  columnNumber: 7
29864
29872
  }
29865
29873
  }, /*#__PURE__*/React__default.createElement(ContainerUpload, {
@@ -29875,33 +29883,39 @@ const Upload = ({
29875
29883
  __self: this,
29876
29884
  __source: {
29877
29885
  fileName: _jsxFileName$9,
29878
- lineNumber: 820,
29886
+ lineNumber: 829,
29879
29887
  columnNumber: 9
29880
29888
  }
29881
29889
  }, /*#__PURE__*/React__default.createElement(Input$2, {
29882
29890
  type: "file",
29883
29891
  accept: accept,
29884
29892
  ref: hiddenFileInput,
29885
- onChange: handleChange,
29886
29893
  multiple: multiple,
29894
+ onClick: e => {
29895
+ // Force reset on click to handle edge cases
29896
+ e.target.value = '';
29897
+ setFileValue('');
29898
+ },
29899
+ value: fileValue,
29900
+ onChange: handleChange,
29887
29901
  __self: this,
29888
29902
  __source: {
29889
29903
  fileName: _jsxFileName$9,
29890
- lineNumber: 831,
29904
+ lineNumber: 840,
29891
29905
  columnNumber: 11
29892
29906
  }
29893
29907
  }), /*#__PURE__*/React__default.createElement(Children, {
29894
29908
  __self: this,
29895
29909
  __source: {
29896
29910
  fileName: _jsxFileName$9,
29897
- lineNumber: 832,
29911
+ lineNumber: 853,
29898
29912
  columnNumber: 11
29899
29913
  }
29900
29914
  }, children != null ? children : /*#__PURE__*/React__default.createElement(React__default.Fragment, {
29901
29915
  __self: this,
29902
29916
  __source: {
29903
29917
  fileName: _jsxFileName$9,
29904
- lineNumber: 834,
29918
+ lineNumber: 855,
29905
29919
  columnNumber: 15
29906
29920
  }
29907
29921
  }, /*#__PURE__*/React__default.createElement(IconCard, {
@@ -29910,7 +29924,7 @@ const Upload = ({
29910
29924
  __self: this,
29911
29925
  __source: {
29912
29926
  fileName: _jsxFileName$9,
29913
- lineNumber: 835,
29927
+ lineNumber: 856,
29914
29928
  columnNumber: 17
29915
29929
  }
29916
29930
  }, /*#__PURE__*/React__default.createElement(UploadOutline, {
@@ -29918,7 +29932,7 @@ const Upload = ({
29918
29932
  __self: this,
29919
29933
  __source: {
29920
29934
  fileName: _jsxFileName$9,
29921
- lineNumber: 836,
29935
+ lineNumber: 857,
29922
29936
  columnNumber: 19
29923
29937
  }
29924
29938
  })), /*#__PURE__*/React__default.createElement(Text, {
@@ -29928,7 +29942,7 @@ const Upload = ({
29928
29942
  __self: this,
29929
29943
  __source: {
29930
29944
  fileName: _jsxFileName$9,
29931
- lineNumber: 838,
29945
+ lineNumber: 859,
29932
29946
  columnNumber: 17
29933
29947
  }
29934
29948
  }, placeholder != null ? placeholder : t('uploadPlaceholder', 'Pilih atau letakkan berkas di sini'))))), error && /*#__PURE__*/React__default.createElement(ErrorMessage, {
@@ -29938,7 +29952,7 @@ const Upload = ({
29938
29952
  __self: this,
29939
29953
  __source: {
29940
29954
  fileName: _jsxFileName$9,
29941
- lineNumber: 845,
29955
+ lineNumber: 866,
29942
29956
  columnNumber: 19
29943
29957
  }
29944
29958
  }, error));
@@ -29950,7 +29964,7 @@ const Upload = ({
29950
29964
  __self: this,
29951
29965
  __source: {
29952
29966
  fileName: _jsxFileName$9,
29953
- lineNumber: 852,
29967
+ lineNumber: 873,
29954
29968
  columnNumber: 7
29955
29969
  }
29956
29970
  }, /*#__PURE__*/React__default.createElement(ModalDialogTrigger, {
@@ -29958,7 +29972,7 @@ const Upload = ({
29958
29972
  __self: this,
29959
29973
  __source: {
29960
29974
  fileName: _jsxFileName$9,
29961
- lineNumber: 853,
29975
+ lineNumber: 874,
29962
29976
  columnNumber: 9
29963
29977
  }
29964
29978
  }, /*#__PURE__*/React__default.createElement("div", {
@@ -29966,7 +29980,7 @@ const Upload = ({
29966
29980
  __self: this,
29967
29981
  __source: {
29968
29982
  fileName: _jsxFileName$9,
29969
- lineNumber: 854,
29983
+ lineNumber: 875,
29970
29984
  columnNumber: 11
29971
29985
  }
29972
29986
  })), /*#__PURE__*/React__default.createElement(ModalDialogTitle, {
@@ -29979,7 +29993,7 @@ const Upload = ({
29979
29993
  __self: this,
29980
29994
  __source: {
29981
29995
  fileName: _jsxFileName$9,
29982
- lineNumber: 856,
29996
+ lineNumber: 877,
29983
29997
  columnNumber: 9
29984
29998
  }
29985
29999
  }, cropperTitle || t('cropperTitle', 'Potong Gambar')), /*#__PURE__*/React__default.createElement(ModalDialogContent, {
@@ -29992,7 +30006,7 @@ const Upload = ({
29992
30006
  __self: this,
29993
30007
  __source: {
29994
30008
  fileName: _jsxFileName$9,
29995
- lineNumber: 859,
30009
+ lineNumber: 880,
29996
30010
  columnNumber: 9
29997
30011
  }
29998
30012
  }, /*#__PURE__*/React__default.createElement(ReactCrop, {
@@ -30003,7 +30017,7 @@ const Upload = ({
30003
30017
  __self: this,
30004
30018
  __source: {
30005
30019
  fileName: _jsxFileName$9,
30006
- lineNumber: 867,
30020
+ lineNumber: 888,
30007
30021
  columnNumber: 11
30008
30022
  }
30009
30023
  }, /*#__PURE__*/React__default.createElement(Image, {
@@ -30017,14 +30031,14 @@ const Upload = ({
30017
30031
  __self: this,
30018
30032
  __source: {
30019
30033
  fileName: _jsxFileName$9,
30020
- lineNumber: 868,
30034
+ lineNumber: 889,
30021
30035
  columnNumber: 13
30022
30036
  }
30023
30037
  }))), /*#__PURE__*/React__default.createElement(ModalDialogFooter, {
30024
30038
  __self: this,
30025
30039
  __source: {
30026
30040
  fileName: _jsxFileName$9,
30027
- lineNumber: 879,
30041
+ lineNumber: 900,
30028
30042
  columnNumber: 9
30029
30043
  }
30030
30044
  }, /*#__PURE__*/React__default.createElement(Flex$1, {
@@ -30036,14 +30050,14 @@ const Upload = ({
30036
30050
  __self: this,
30037
30051
  __source: {
30038
30052
  fileName: _jsxFileName$9,
30039
- lineNumber: 880,
30053
+ lineNumber: 901,
30040
30054
  columnNumber: 11
30041
30055
  }
30042
30056
  }, hiddenToggleAspect ? /*#__PURE__*/React__default.createElement(Box, {
30043
30057
  __self: this,
30044
30058
  __source: {
30045
30059
  fileName: _jsxFileName$9,
30046
- lineNumber: 882,
30060
+ lineNumber: 903,
30047
30061
  columnNumber: 15
30048
30062
  }
30049
30063
  }) : /*#__PURE__*/React__default.createElement(Tooltip$1, {
@@ -30051,7 +30065,7 @@ const Upload = ({
30051
30065
  __self: this,
30052
30066
  __source: {
30053
30067
  fileName: _jsxFileName$9,
30054
- lineNumber: 884,
30068
+ lineNumber: 905,
30055
30069
  columnNumber: 15
30056
30070
  }
30057
30071
  }, /*#__PURE__*/React__default.createElement(ImageOutline, {
@@ -30063,7 +30077,7 @@ const Upload = ({
30063
30077
  __self: this,
30064
30078
  __source: {
30065
30079
  fileName: _jsxFileName$9,
30066
- lineNumber: 885,
30080
+ lineNumber: 906,
30067
30081
  columnNumber: 17
30068
30082
  }
30069
30083
  })), /*#__PURE__*/React__default.createElement(Flex$1, {
@@ -30071,7 +30085,7 @@ const Upload = ({
30071
30085
  __self: this,
30072
30086
  __source: {
30073
30087
  fileName: _jsxFileName$9,
30074
- lineNumber: 892,
30088
+ lineNumber: 913,
30075
30089
  columnNumber: 13
30076
30090
  }
30077
30091
  }, /*#__PURE__*/React__default.createElement(Button$4, {
@@ -30080,7 +30094,7 @@ const Upload = ({
30080
30094
  __self: this,
30081
30095
  __source: {
30082
30096
  fileName: _jsxFileName$9,
30083
- lineNumber: 893,
30097
+ lineNumber: 914,
30084
30098
  columnNumber: 15
30085
30099
  }
30086
30100
  }, t('label.cancel', 'Batal', {
@@ -30090,7 +30104,7 @@ const Upload = ({
30090
30104
  __self: this,
30091
30105
  __source: {
30092
30106
  fileName: _jsxFileName$9,
30093
- lineNumber: 896,
30107
+ lineNumber: 917,
30094
30108
  columnNumber: 15
30095
30109
  }
30096
30110
  }, t('save', 'Simpan', {
@@ -30107,7 +30121,7 @@ const Upload = ({
30107
30121
  __self: undefined,
30108
30122
  __source: {
30109
30123
  fileName: _jsxFileName$9,
30110
- lineNumber: 905,
30124
+ lineNumber: 926,
30111
30125
  columnNumber: 5
30112
30126
  }
30113
30127
  }, !isFile && renderPicture(), isFile && renderFile(), progress || isLoading ? /*#__PURE__*/React__default.createElement(UploadProgress, {
@@ -30116,7 +30130,7 @@ const Upload = ({
30116
30130
  __self: undefined,
30117
30131
  __source: {
30118
30132
  fileName: _jsxFileName$9,
30119
- lineNumber: 908,
30133
+ lineNumber: 929,
30120
30134
  columnNumber: 32
30121
30135
  }
30122
30136
  }) : renderUpload(), showCropper && renderCropper());
package/index.umd.js CHANGED
@@ -29428,9 +29428,7 @@
29428
29428
 
29429
29429
  const _excluded = ["customPreviewIcon"];
29430
29430
  var _jsxFileName$9 = "/home/alfiantryp/Project/majoo-ui/packages/react/src/components/upload/Upload.js";
29431
- const Input$2 = styled('input', {
29432
- display: 'none !important'
29433
- });
29431
+ const Input$2 = styled('input', {});
29434
29432
  const Children = styled('div', {
29435
29433
  display: 'flex',
29436
29434
  justifyContent: 'center',
@@ -29520,17 +29518,17 @@
29520
29518
  __self: undefined,
29521
29519
  __source: {
29522
29520
  fileName: _jsxFileName$9,
29523
- lineNumber: 119,
29521
+ lineNumber: 117,
29524
29522
  columnNumber: 5
29525
29523
  }
29526
29524
  })) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, {
29527
29525
  __self: undefined,
29528
29526
  __source: {
29529
29527
  fileName: _jsxFileName$9,
29530
- lineNumber: 126,
29528
+ lineNumber: 124,
29531
29529
  columnNumber: 5
29532
29530
  }
29533
- }, !!customPreviewIcon ? (/*#__PURE__*/React__default["default"].cloneElement(customPreviewIcon, Object.assign({}, customPreviewIcon.props, props, {
29531
+ }, customPreviewIcon ? (/*#__PURE__*/React__default["default"].cloneElement(customPreviewIcon, Object.assign({}, customPreviewIcon.props, props, {
29534
29532
  color: isHover ? '#04C99E' : customPreviewIcon.props.color,
29535
29533
  onMouseEnter: handleEnter,
29536
29534
  onMouseLeave: handleLeave,
@@ -29549,7 +29547,7 @@
29549
29547
  __self: undefined,
29550
29548
  __source: {
29551
29549
  fileName: _jsxFileName$9,
29552
- lineNumber: 145,
29550
+ lineNumber: 143,
29553
29551
  columnNumber: 9
29554
29552
  }
29555
29553
  })));
@@ -29613,6 +29611,7 @@
29613
29611
  const [aspect, setAspect] = React.useState(isDefaultCustomRatio ? 0 : 1);
29614
29612
  const [isLoading, setIsLoading] = React.useState(false);
29615
29613
  const [cropperImgRatio, setCropperImgRatio] = React.useState(null);
29614
+ const [fileValue, setFileValue] = React.useState('');
29616
29615
  const isMobile = useMediaQuery('(max-width: 767px)');
29617
29616
  React.useEffect(() => {
29618
29617
  if (loading) {
@@ -29737,6 +29736,10 @@
29737
29736
  });
29738
29737
  function handleClick() {
29739
29738
  if (!disabled) {
29739
+ // Ensure input is reset before clicking
29740
+ if (hiddenFileInput.current) {
29741
+ hiddenFileInput.current.value = '';
29742
+ }
29740
29743
  hiddenFileInput.current.click();
29741
29744
  }
29742
29745
  }
@@ -29917,7 +29920,12 @@
29917
29920
  }
29918
29921
  }
29919
29922
  // Reset the input value to ensure onChange fires even when selecting the same file
29920
- e.target.value = '';
29923
+ // Use setTimeout to ensure the reset happens after the current event loop
29924
+ setTimeout(() => {
29925
+ if (e.target && e.target.value) {
29926
+ e.target.value = '';
29927
+ }
29928
+ }, 0);
29921
29929
  }
29922
29930
  function handleCrop() {
29923
29931
  if (completedCrop != null && completedCrop.width && completedCrop != null && completedCrop.height && imgRef.current) {
@@ -30060,7 +30068,7 @@
30060
30068
  __self: this,
30061
30069
  __source: {
30062
30070
  fileName: _jsxFileName$9,
30063
- lineNumber: 680,
30071
+ lineNumber: 689,
30064
30072
  columnNumber: 7
30065
30073
  }
30066
30074
  }, /*#__PURE__*/React__default["default"].createElement(ButtonText, {
@@ -30070,7 +30078,7 @@
30070
30078
  __self: this,
30071
30079
  __source: {
30072
30080
  fileName: _jsxFileName$9,
30073
- lineNumber: 681,
30081
+ lineNumber: 690,
30074
30082
  columnNumber: 9
30075
30083
  }
30076
30084
  }, replaceLabel && replaceLabel.length > 0 ? replaceLabel : t('replaceLabel', 'Ubah Berkas')));
@@ -30085,7 +30093,7 @@
30085
30093
  __self: undefined,
30086
30094
  __source: {
30087
30095
  fileName: _jsxFileName$9,
30088
- lineNumber: 691,
30096
+ lineNumber: 700,
30089
30097
  columnNumber: 16
30090
30098
  }
30091
30099
  });
@@ -30096,7 +30104,7 @@
30096
30104
  __self: undefined,
30097
30105
  __source: {
30098
30106
  fileName: _jsxFileName$9,
30099
- lineNumber: 694,
30107
+ lineNumber: 703,
30100
30108
  columnNumber: 9
30101
30109
  }
30102
30110
  }, /*#__PURE__*/React__default["default"].createElement(Box, {
@@ -30106,7 +30114,7 @@
30106
30114
  __self: undefined,
30107
30115
  __source: {
30108
30116
  fileName: _jsxFileName$9,
30109
- lineNumber: 695,
30117
+ lineNumber: 704,
30110
30118
  columnNumber: 11
30111
30119
  }
30112
30120
  }, !disabled && /*#__PURE__*/React__default["default"].createElement(IconStateFull, {
@@ -30115,7 +30123,7 @@
30115
30123
  __self: undefined,
30116
30124
  __source: {
30117
30125
  fileName: _jsxFileName$9,
30118
- lineNumber: 696,
30126
+ lineNumber: 705,
30119
30127
  columnNumber: 27
30120
30128
  }
30121
30129
  }), !hiddenPreview && /*#__PURE__*/React__default["default"].createElement(Box, {
@@ -30128,7 +30136,7 @@
30128
30136
  __self: undefined,
30129
30137
  __source: {
30130
30138
  fileName: _jsxFileName$9,
30131
- lineNumber: 698,
30139
+ lineNumber: 707,
30132
30140
  columnNumber: 15
30133
30141
  }
30134
30142
  }, /*#__PURE__*/React__default["default"].createElement(IconStateFull, {
@@ -30144,7 +30152,7 @@
30144
30152
  __self: undefined,
30145
30153
  __source: {
30146
30154
  fileName: _jsxFileName$9,
30147
- lineNumber: 706,
30155
+ lineNumber: 715,
30148
30156
  columnNumber: 17
30149
30157
  }
30150
30158
  })), /*#__PURE__*/React__default["default"].createElement(Image, {
@@ -30154,7 +30162,7 @@
30154
30162
  __self: undefined,
30155
30163
  __source: {
30156
30164
  fileName: _jsxFileName$9,
30157
- lineNumber: 719,
30165
+ lineNumber: 728,
30158
30166
  columnNumber: 13
30159
30167
  }
30160
30168
  })), !disabled && renderButtonReplace(index));
@@ -30171,7 +30179,7 @@
30171
30179
  __self: undefined,
30172
30180
  __source: {
30173
30181
  fileName: _jsxFileName$9,
30174
- lineNumber: 730,
30182
+ lineNumber: 739,
30175
30183
  columnNumber: 16
30176
30184
  }
30177
30185
  });
@@ -30181,7 +30189,7 @@
30181
30189
  __self: undefined,
30182
30190
  __source: {
30183
30191
  fileName: _jsxFileName$9,
30184
- lineNumber: 733,
30192
+ lineNumber: 742,
30185
30193
  columnNumber: 9
30186
30194
  }
30187
30195
  }, /*#__PURE__*/React__default["default"].createElement(Box, {
@@ -30191,7 +30199,7 @@
30191
30199
  __self: undefined,
30192
30200
  __source: {
30193
30201
  fileName: _jsxFileName$9,
30194
- lineNumber: 734,
30202
+ lineNumber: 743,
30195
30203
  columnNumber: 11
30196
30204
  }
30197
30205
  }, !disabled && /*#__PURE__*/React__default["default"].createElement(IconStateFull, {
@@ -30200,7 +30208,7 @@
30200
30208
  __self: undefined,
30201
30209
  __source: {
30202
30210
  fileName: _jsxFileName$9,
30203
- lineNumber: 735,
30211
+ lineNumber: 744,
30204
30212
  columnNumber: 27
30205
30213
  }
30206
30214
  }), /*#__PURE__*/React__default["default"].createElement(Box, {
@@ -30213,7 +30221,7 @@
30213
30221
  __self: undefined,
30214
30222
  __source: {
30215
30223
  fileName: _jsxFileName$9,
30216
- lineNumber: 736,
30224
+ lineNumber: 745,
30217
30225
  columnNumber: 13
30218
30226
  }
30219
30227
  }, /*#__PURE__*/React__default["default"].createElement(Flex$1, {
@@ -30223,14 +30231,14 @@
30223
30231
  __self: undefined,
30224
30232
  __source: {
30225
30233
  fileName: _jsxFileName$9,
30226
- lineNumber: 744,
30234
+ lineNumber: 753,
30227
30235
  columnNumber: 15
30228
30236
  }
30229
30237
  }, /*#__PURE__*/React__default["default"].createElement(FileExtension, {
30230
30238
  __self: undefined,
30231
30239
  __source: {
30232
30240
  fileName: _jsxFileName$9,
30233
- lineNumber: 745,
30241
+ lineNumber: 754,
30234
30242
  columnNumber: 17
30235
30243
  }
30236
30244
  }, ".", item == null || (_item$name = item.name) == null ? void 0 : _item$name.split('.').pop()), /*#__PURE__*/React__default["default"].createElement(Tooltip$1, {
@@ -30238,7 +30246,7 @@
30238
30246
  __self: undefined,
30239
30247
  __source: {
30240
30248
  fileName: _jsxFileName$9,
30241
- lineNumber: 746,
30249
+ lineNumber: 755,
30242
30250
  columnNumber: 17
30243
30251
  }
30244
30252
  }, /*#__PURE__*/React__default["default"].createElement(Text, {
@@ -30253,7 +30261,7 @@
30253
30261
  __self: undefined,
30254
30262
  __source: {
30255
30263
  fileName: _jsxFileName$9,
30256
- lineNumber: 747,
30264
+ lineNumber: 756,
30257
30265
  columnNumber: 19
30258
30266
  }
30259
30267
  }, item.name)))), !hiddenPreview && /*#__PURE__*/React__default["default"].createElement(Box, {
@@ -30266,7 +30274,7 @@
30266
30274
  __self: undefined,
30267
30275
  __source: {
30268
30276
  fileName: _jsxFileName$9,
30269
- lineNumber: 763,
30277
+ lineNumber: 772,
30270
30278
  columnNumber: 15
30271
30279
  }
30272
30280
  }, /*#__PURE__*/React__default["default"].createElement(IconStateFull, {
@@ -30282,7 +30290,7 @@
30282
30290
  __self: undefined,
30283
30291
  __source: {
30284
30292
  fileName: _jsxFileName$9,
30285
- lineNumber: 771,
30293
+ lineNumber: 780,
30286
30294
  columnNumber: 17
30287
30295
  }
30288
30296
  })), /*#__PURE__*/React__default["default"].createElement(Blank, {
@@ -30290,7 +30298,7 @@
30290
30298
  __self: undefined,
30291
30299
  __source: {
30292
30300
  fileName: _jsxFileName$9,
30293
- lineNumber: 784,
30301
+ lineNumber: 793,
30294
30302
  columnNumber: 13
30295
30303
  }
30296
30304
  })), !disabled && renderButtonReplace(index));
@@ -30305,7 +30313,7 @@
30305
30313
  __self: this,
30306
30314
  __source: {
30307
30315
  fileName: _jsxFileName$9,
30308
- lineNumber: 795,
30316
+ lineNumber: 804,
30309
30317
  columnNumber: 7
30310
30318
  }
30311
30319
  }, /*#__PURE__*/React__default["default"].createElement(Flex$1, {
@@ -30319,7 +30327,7 @@
30319
30327
  __self: this,
30320
30328
  __source: {
30321
30329
  fileName: _jsxFileName$9,
30322
- lineNumber: 796,
30330
+ lineNumber: 805,
30323
30331
  columnNumber: 9
30324
30332
  }
30325
30333
  }, /*#__PURE__*/React__default["default"].createElement(LoadingBar, {
@@ -30345,7 +30353,7 @@
30345
30353
  __self: this,
30346
30354
  __source: {
30347
30355
  fileName: _jsxFileName$9,
30348
- lineNumber: 797,
30356
+ lineNumber: 806,
30349
30357
  columnNumber: 11
30350
30358
  }
30351
30359
  }), /*#__PURE__*/React__default["default"].createElement(Text, {
@@ -30353,14 +30361,14 @@
30353
30361
  __self: this,
30354
30362
  __source: {
30355
30363
  fileName: _jsxFileName$9,
30356
- lineNumber: 810,
30364
+ lineNumber: 819,
30357
30365
  columnNumber: 11
30358
30366
  }
30359
30367
  }, `${progress <= 100 ? progress : 100}%`), /*#__PURE__*/React__default["default"].createElement(Text, {
30360
30368
  __self: this,
30361
30369
  __source: {
30362
30370
  fileName: _jsxFileName$9,
30363
- lineNumber: 811,
30371
+ lineNumber: 820,
30364
30372
  columnNumber: 11
30365
30373
  }
30366
30374
  }, t('uploadingLabel', 'Berkas sedang diunggah'))));
@@ -30372,7 +30380,7 @@
30372
30380
  __self: this,
30373
30381
  __source: {
30374
30382
  fileName: _jsxFileName$9,
30375
- lineNumber: 819,
30383
+ lineNumber: 828,
30376
30384
  columnNumber: 7
30377
30385
  }
30378
30386
  }, /*#__PURE__*/React__default["default"].createElement(ContainerUpload, {
@@ -30388,33 +30396,39 @@
30388
30396
  __self: this,
30389
30397
  __source: {
30390
30398
  fileName: _jsxFileName$9,
30391
- lineNumber: 820,
30399
+ lineNumber: 829,
30392
30400
  columnNumber: 9
30393
30401
  }
30394
30402
  }, /*#__PURE__*/React__default["default"].createElement(Input$2, {
30395
30403
  type: "file",
30396
30404
  accept: accept,
30397
30405
  ref: hiddenFileInput,
30398
- onChange: handleChange,
30399
30406
  multiple: multiple,
30407
+ onClick: e => {
30408
+ // Force reset on click to handle edge cases
30409
+ e.target.value = '';
30410
+ setFileValue('');
30411
+ },
30412
+ value: fileValue,
30413
+ onChange: handleChange,
30400
30414
  __self: this,
30401
30415
  __source: {
30402
30416
  fileName: _jsxFileName$9,
30403
- lineNumber: 831,
30417
+ lineNumber: 840,
30404
30418
  columnNumber: 11
30405
30419
  }
30406
30420
  }), /*#__PURE__*/React__default["default"].createElement(Children, {
30407
30421
  __self: this,
30408
30422
  __source: {
30409
30423
  fileName: _jsxFileName$9,
30410
- lineNumber: 832,
30424
+ lineNumber: 853,
30411
30425
  columnNumber: 11
30412
30426
  }
30413
30427
  }, children != null ? children : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, {
30414
30428
  __self: this,
30415
30429
  __source: {
30416
30430
  fileName: _jsxFileName$9,
30417
- lineNumber: 834,
30431
+ lineNumber: 855,
30418
30432
  columnNumber: 15
30419
30433
  }
30420
30434
  }, /*#__PURE__*/React__default["default"].createElement(IconCard, {
@@ -30423,7 +30437,7 @@
30423
30437
  __self: this,
30424
30438
  __source: {
30425
30439
  fileName: _jsxFileName$9,
30426
- lineNumber: 835,
30440
+ lineNumber: 856,
30427
30441
  columnNumber: 17
30428
30442
  }
30429
30443
  }, /*#__PURE__*/React__default["default"].createElement(icons.UploadOutline, {
@@ -30431,7 +30445,7 @@
30431
30445
  __self: this,
30432
30446
  __source: {
30433
30447
  fileName: _jsxFileName$9,
30434
- lineNumber: 836,
30448
+ lineNumber: 857,
30435
30449
  columnNumber: 19
30436
30450
  }
30437
30451
  })), /*#__PURE__*/React__default["default"].createElement(Text, {
@@ -30441,7 +30455,7 @@
30441
30455
  __self: this,
30442
30456
  __source: {
30443
30457
  fileName: _jsxFileName$9,
30444
- lineNumber: 838,
30458
+ lineNumber: 859,
30445
30459
  columnNumber: 17
30446
30460
  }
30447
30461
  }, placeholder != null ? placeholder : t('uploadPlaceholder', 'Pilih atau letakkan berkas di sini'))))), error && /*#__PURE__*/React__default["default"].createElement(ErrorMessage, {
@@ -30451,7 +30465,7 @@
30451
30465
  __self: this,
30452
30466
  __source: {
30453
30467
  fileName: _jsxFileName$9,
30454
- lineNumber: 845,
30468
+ lineNumber: 866,
30455
30469
  columnNumber: 19
30456
30470
  }
30457
30471
  }, error));
@@ -30463,7 +30477,7 @@
30463
30477
  __self: this,
30464
30478
  __source: {
30465
30479
  fileName: _jsxFileName$9,
30466
- lineNumber: 852,
30480
+ lineNumber: 873,
30467
30481
  columnNumber: 7
30468
30482
  }
30469
30483
  }, /*#__PURE__*/React__default["default"].createElement(ModalDialogTrigger, {
@@ -30471,7 +30485,7 @@
30471
30485
  __self: this,
30472
30486
  __source: {
30473
30487
  fileName: _jsxFileName$9,
30474
- lineNumber: 853,
30488
+ lineNumber: 874,
30475
30489
  columnNumber: 9
30476
30490
  }
30477
30491
  }, /*#__PURE__*/React__default["default"].createElement("div", {
@@ -30479,7 +30493,7 @@
30479
30493
  __self: this,
30480
30494
  __source: {
30481
30495
  fileName: _jsxFileName$9,
30482
- lineNumber: 854,
30496
+ lineNumber: 875,
30483
30497
  columnNumber: 11
30484
30498
  }
30485
30499
  })), /*#__PURE__*/React__default["default"].createElement(ModalDialogTitle, {
@@ -30492,7 +30506,7 @@
30492
30506
  __self: this,
30493
30507
  __source: {
30494
30508
  fileName: _jsxFileName$9,
30495
- lineNumber: 856,
30509
+ lineNumber: 877,
30496
30510
  columnNumber: 9
30497
30511
  }
30498
30512
  }, cropperTitle || t('cropperTitle', 'Potong Gambar')), /*#__PURE__*/React__default["default"].createElement(ModalDialogContent, {
@@ -30505,7 +30519,7 @@
30505
30519
  __self: this,
30506
30520
  __source: {
30507
30521
  fileName: _jsxFileName$9,
30508
- lineNumber: 859,
30522
+ lineNumber: 880,
30509
30523
  columnNumber: 9
30510
30524
  }
30511
30525
  }, /*#__PURE__*/React__default["default"].createElement(ReactCrop__default["default"], {
@@ -30516,7 +30530,7 @@
30516
30530
  __self: this,
30517
30531
  __source: {
30518
30532
  fileName: _jsxFileName$9,
30519
- lineNumber: 867,
30533
+ lineNumber: 888,
30520
30534
  columnNumber: 11
30521
30535
  }
30522
30536
  }, /*#__PURE__*/React__default["default"].createElement(Image, {
@@ -30530,14 +30544,14 @@
30530
30544
  __self: this,
30531
30545
  __source: {
30532
30546
  fileName: _jsxFileName$9,
30533
- lineNumber: 868,
30547
+ lineNumber: 889,
30534
30548
  columnNumber: 13
30535
30549
  }
30536
30550
  }))), /*#__PURE__*/React__default["default"].createElement(ModalDialogFooter, {
30537
30551
  __self: this,
30538
30552
  __source: {
30539
30553
  fileName: _jsxFileName$9,
30540
- lineNumber: 879,
30554
+ lineNumber: 900,
30541
30555
  columnNumber: 9
30542
30556
  }
30543
30557
  }, /*#__PURE__*/React__default["default"].createElement(Flex$1, {
@@ -30549,14 +30563,14 @@
30549
30563
  __self: this,
30550
30564
  __source: {
30551
30565
  fileName: _jsxFileName$9,
30552
- lineNumber: 880,
30566
+ lineNumber: 901,
30553
30567
  columnNumber: 11
30554
30568
  }
30555
30569
  }, hiddenToggleAspect ? /*#__PURE__*/React__default["default"].createElement(Box, {
30556
30570
  __self: this,
30557
30571
  __source: {
30558
30572
  fileName: _jsxFileName$9,
30559
- lineNumber: 882,
30573
+ lineNumber: 903,
30560
30574
  columnNumber: 15
30561
30575
  }
30562
30576
  }) : /*#__PURE__*/React__default["default"].createElement(Tooltip$1, {
@@ -30564,7 +30578,7 @@
30564
30578
  __self: this,
30565
30579
  __source: {
30566
30580
  fileName: _jsxFileName$9,
30567
- lineNumber: 884,
30581
+ lineNumber: 905,
30568
30582
  columnNumber: 15
30569
30583
  }
30570
30584
  }, /*#__PURE__*/React__default["default"].createElement(icons.ImageOutline, {
@@ -30576,7 +30590,7 @@
30576
30590
  __self: this,
30577
30591
  __source: {
30578
30592
  fileName: _jsxFileName$9,
30579
- lineNumber: 885,
30593
+ lineNumber: 906,
30580
30594
  columnNumber: 17
30581
30595
  }
30582
30596
  })), /*#__PURE__*/React__default["default"].createElement(Flex$1, {
@@ -30584,7 +30598,7 @@
30584
30598
  __self: this,
30585
30599
  __source: {
30586
30600
  fileName: _jsxFileName$9,
30587
- lineNumber: 892,
30601
+ lineNumber: 913,
30588
30602
  columnNumber: 13
30589
30603
  }
30590
30604
  }, /*#__PURE__*/React__default["default"].createElement(Button$4, {
@@ -30593,7 +30607,7 @@
30593
30607
  __self: this,
30594
30608
  __source: {
30595
30609
  fileName: _jsxFileName$9,
30596
- lineNumber: 893,
30610
+ lineNumber: 914,
30597
30611
  columnNumber: 15
30598
30612
  }
30599
30613
  }, t('label.cancel', 'Batal', {
@@ -30603,7 +30617,7 @@
30603
30617
  __self: this,
30604
30618
  __source: {
30605
30619
  fileName: _jsxFileName$9,
30606
- lineNumber: 896,
30620
+ lineNumber: 917,
30607
30621
  columnNumber: 15
30608
30622
  }
30609
30623
  }, t('save', 'Simpan', {
@@ -30620,7 +30634,7 @@
30620
30634
  __self: undefined,
30621
30635
  __source: {
30622
30636
  fileName: _jsxFileName$9,
30623
- lineNumber: 905,
30637
+ lineNumber: 926,
30624
30638
  columnNumber: 5
30625
30639
  }
30626
30640
  }, !isFile && renderPicture(), isFile && renderFile(), progress || isLoading ? /*#__PURE__*/React__default["default"].createElement(UploadProgress, {
@@ -30629,7 +30643,7 @@
30629
30643
  __self: undefined,
30630
30644
  __source: {
30631
30645
  fileName: _jsxFileName$9,
30632
- lineNumber: 908,
30646
+ lineNumber: 929,
30633
30647
  columnNumber: 32
30634
30648
  }
30635
30649
  }) : renderUpload(), showCropper && renderCropper());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@majoo-ui/react",
3
- "version": "1.61.12-rc.14",
3
+ "version": "1.61.12-rc.16",
4
4
  "peerDependencies": {
5
5
  "react": "17.0.2",
6
6
  "react-dom": "17.0.2",