glints-aries 4.0.293 → 4.0.294

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.
@@ -6,5 +6,7 @@ export interface UploadProps {
6
6
  objectFit?: 'fill' | 'contain' | 'cover' | 'none' | 'scale-down';
7
7
  uploadMessage?: React.ReactNode;
8
8
  loadingMessage?: React.ReactNode;
9
+ disableDefaultValidation?: boolean;
10
+ accept?: string;
9
11
  }
10
12
  export declare const Upload: React.ForwardRefExoticComponent<UploadProps & React.RefAttributes<HTMLInputElement>>;
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
3
- var _excluded = ["file", "handleSetFile", "loading", "objectFit", "uploadMessage", "loadingMessage"];
3
+ var _excluded = ["file", "handleSetFile", "loading", "objectFit", "uploadMessage", "loadingMessage", "disableDefaultValidation", "accept"];
4
4
  import React, { useEffect, useRef, useState } from 'react';
5
5
  import { Icon } from '../Icon';
6
6
  import { StyledInvisibleInput, StyledUploadContainer, StyledTextContainer, StyledIconContainer, StyledUploadedImage, StyledDeleteButtonContainer, StyledDeleteIconContainer, StyledErrorContainer, StyledErrorIconContainer, StyledErrorTextContainer } from './UploadStyle';
@@ -9,14 +9,16 @@ import { Typography } from '../Typography';
9
9
  export var Upload = /*#__PURE__*/React.forwardRef(function Upload(_ref, ref) {
10
10
  var file = _ref.file,
11
11
  handleSetFile = _ref.handleSetFile,
12
- _ref$loading = _ref.loading,
13
- loading = _ref$loading === void 0 ? false : _ref$loading,
12
+ loading = _ref.loading,
14
13
  _ref$objectFit = _ref.objectFit,
15
14
  objectFit = _ref$objectFit === void 0 ? 'cover' : _ref$objectFit,
16
15
  _ref$uploadMessage = _ref.uploadMessage,
17
16
  uploadMessage = _ref$uploadMessage === void 0 ? 'Upload' : _ref$uploadMessage,
18
17
  _ref$loadingMessage = _ref.loadingMessage,
19
18
  loadingMessage = _ref$loadingMessage === void 0 ? 'loading...' : _ref$loadingMessage,
19
+ _ref$disableDefaultVa = _ref.disableDefaultValidation,
20
+ disableDefaultValidation = _ref$disableDefaultVa === void 0 ? false : _ref$disableDefaultVa,
21
+ accept = _ref.accept,
20
22
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
21
23
  var MAX_FILE_SIZE = 5; // in MB
22
24
 
@@ -36,7 +38,10 @@ export var Upload = /*#__PURE__*/React.forwardRef(function Upload(_ref, ref) {
36
38
  setAttachmentUrl(reader.result);
37
39
  setIsLoading(false);
38
40
  };
39
- if (file) reader.readAsDataURL(file);else if (!loading) setIsLoading(false);
41
+ reader.onloadstart = function () {
42
+ return setIsLoading(true);
43
+ };
44
+ if (file) reader.readAsDataURL(file);
40
45
  }, [file, loading]);
41
46
  var handleClick = function handleClick() {
42
47
  if (fileInputRef.current) {
@@ -45,16 +50,18 @@ export var Upload = /*#__PURE__*/React.forwardRef(function Upload(_ref, ref) {
45
50
  };
46
51
  var handleChange = function handleChange(event) {
47
52
  var _event$target$files;
48
- setIsLoading(true);
49
53
  var newFile = (_event$target$files = event.target.files) == null ? void 0 : _event$target$files[0];
54
+ if (disableDefaultValidation) {
55
+ var _event$target$files2;
56
+ handleSetFile(((_event$target$files2 = event.target.files) == null ? void 0 : _event$target$files2[0]) || null);
57
+ return;
58
+ }
50
59
  if (newFile && !newFile.type.startsWith('image')) {
51
60
  setError('Image required');
52
61
  handleSetFile(null);
53
- setIsLoading(false);
54
62
  } else if (newFile && newFile.size > MAX_FILE_SIZE * 1024 * 1024) {
55
63
  setError('File too big');
56
64
  handleSetFile(null);
57
- setIsLoading(false);
58
65
  } else {
59
66
  setError('');
60
67
  handleSetFile(newFile);
@@ -95,15 +102,15 @@ export var Upload = /*#__PURE__*/React.forwardRef(function Upload(_ref, ref) {
95
102
  });
96
103
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(StyledInvisibleInput, _extends({
97
104
  type: "file",
98
- accept: "image/*",
105
+ accept: accept || 'image/*',
99
106
  onChange: handleChange,
100
107
  ref: ref || fileInputRef
101
- }, props)), attachmentUrl && !isLoading ? /*#__PURE__*/React.createElement(StyledUploadContainer, {
108
+ }, props)), attachmentUrl && !(loading || isLoading) ? /*#__PURE__*/React.createElement(StyledUploadContainer, {
102
109
  "data-type": "image",
103
110
  "data-testid": "upload-container"
104
111
  }, uploadedImageComponent, /*#__PURE__*/React.createElement(StyledDeleteButtonContainer, {
105
112
  onClick: handleDelete
106
113
  }, /*#__PURE__*/React.createElement(StyledDeleteIconContainer, null, /*#__PURE__*/React.createElement(Icon, {
107
114
  name: "ri-delete-bin-line"
108
- })))) : /*#__PURE__*/React.createElement(React.Fragment, null, isLoading ? /*#__PURE__*/React.createElement(React.Fragment, null, loadingComponent) : /*#__PURE__*/React.createElement(React.Fragment, null, unuploadedComponent), !!error && /*#__PURE__*/React.createElement(React.Fragment, null, errorComponent)));
115
+ })))) : /*#__PURE__*/React.createElement(React.Fragment, null, loading || isLoading ? /*#__PURE__*/React.createElement(React.Fragment, null, loadingComponent) : /*#__PURE__*/React.createElement(React.Fragment, null, unuploadedComponent), !!error && /*#__PURE__*/React.createElement(React.Fragment, null, errorComponent)));
109
116
  });
@@ -6,5 +6,7 @@ export interface UploadProps {
6
6
  objectFit?: 'fill' | 'contain' | 'cover' | 'none' | 'scale-down';
7
7
  uploadMessage?: React.ReactNode;
8
8
  loadingMessage?: React.ReactNode;
9
+ disableDefaultValidation?: boolean;
10
+ accept?: string;
9
11
  }
10
12
  export declare const Upload: React.ForwardRefExoticComponent<UploadProps & React.RefAttributes<HTMLInputElement>>;
@@ -10,20 +10,22 @@ var _Icon = require("../Icon");
10
10
  var _UploadStyle = require("./UploadStyle");
11
11
  var _Spinner = require("../Spinner");
12
12
  var _Typography = require("../Typography");
13
- var _excluded = ["file", "handleSetFile", "loading", "objectFit", "uploadMessage", "loadingMessage"];
13
+ var _excluded = ["file", "handleSetFile", "loading", "objectFit", "uploadMessage", "loadingMessage", "disableDefaultValidation", "accept"];
14
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
15
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
16
  var Upload = /*#__PURE__*/_react["default"].forwardRef(function Upload(_ref, ref) {
17
17
  var file = _ref.file,
18
18
  handleSetFile = _ref.handleSetFile,
19
- _ref$loading = _ref.loading,
20
- loading = _ref$loading === void 0 ? false : _ref$loading,
19
+ loading = _ref.loading,
21
20
  _ref$objectFit = _ref.objectFit,
22
21
  objectFit = _ref$objectFit === void 0 ? 'cover' : _ref$objectFit,
23
22
  _ref$uploadMessage = _ref.uploadMessage,
24
23
  uploadMessage = _ref$uploadMessage === void 0 ? 'Upload' : _ref$uploadMessage,
25
24
  _ref$loadingMessage = _ref.loadingMessage,
26
25
  loadingMessage = _ref$loadingMessage === void 0 ? 'loading...' : _ref$loadingMessage,
26
+ _ref$disableDefaultVa = _ref.disableDefaultValidation,
27
+ disableDefaultValidation = _ref$disableDefaultVa === void 0 ? false : _ref$disableDefaultVa,
28
+ accept = _ref.accept,
27
29
  props = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded);
28
30
  var MAX_FILE_SIZE = 5; // in MB
29
31
 
@@ -43,7 +45,10 @@ var Upload = /*#__PURE__*/_react["default"].forwardRef(function Upload(_ref, ref
43
45
  setAttachmentUrl(reader.result);
44
46
  setIsLoading(false);
45
47
  };
46
- if (file) reader.readAsDataURL(file);else if (!loading) setIsLoading(false);
48
+ reader.onloadstart = function () {
49
+ return setIsLoading(true);
50
+ };
51
+ if (file) reader.readAsDataURL(file);
47
52
  }, [file, loading]);
48
53
  var handleClick = function handleClick() {
49
54
  if (fileInputRef.current) {
@@ -52,16 +57,18 @@ var Upload = /*#__PURE__*/_react["default"].forwardRef(function Upload(_ref, ref
52
57
  };
53
58
  var handleChange = function handleChange(event) {
54
59
  var _event$target$files;
55
- setIsLoading(true);
56
60
  var newFile = (_event$target$files = event.target.files) == null ? void 0 : _event$target$files[0];
61
+ if (disableDefaultValidation) {
62
+ var _event$target$files2;
63
+ handleSetFile(((_event$target$files2 = event.target.files) == null ? void 0 : _event$target$files2[0]) || null);
64
+ return;
65
+ }
57
66
  if (newFile && !newFile.type.startsWith('image')) {
58
67
  setError('Image required');
59
68
  handleSetFile(null);
60
- setIsLoading(false);
61
69
  } else if (newFile && newFile.size > MAX_FILE_SIZE * 1024 * 1024) {
62
70
  setError('File too big');
63
71
  handleSetFile(null);
64
- setIsLoading(false);
65
72
  } else {
66
73
  setError('');
67
74
  handleSetFile(newFile);
@@ -102,16 +109,16 @@ var Upload = /*#__PURE__*/_react["default"].forwardRef(function Upload(_ref, ref
102
109
  });
103
110
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_UploadStyle.StyledInvisibleInput, (0, _extends2["default"])({
104
111
  type: "file",
105
- accept: "image/*",
112
+ accept: accept || 'image/*',
106
113
  onChange: handleChange,
107
114
  ref: ref || fileInputRef
108
- }, props)), attachmentUrl && !isLoading ? /*#__PURE__*/_react["default"].createElement(_UploadStyle.StyledUploadContainer, {
115
+ }, props)), attachmentUrl && !(loading || isLoading) ? /*#__PURE__*/_react["default"].createElement(_UploadStyle.StyledUploadContainer, {
109
116
  "data-type": "image",
110
117
  "data-testid": "upload-container"
111
118
  }, uploadedImageComponent, /*#__PURE__*/_react["default"].createElement(_UploadStyle.StyledDeleteButtonContainer, {
112
119
  onClick: handleDelete
113
120
  }, /*#__PURE__*/_react["default"].createElement(_UploadStyle.StyledDeleteIconContainer, null, /*#__PURE__*/_react["default"].createElement(_Icon.Icon, {
114
121
  name: "ri-delete-bin-line"
115
- })))) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, isLoading ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, loadingComponent) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, unuploadedComponent), !!error && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, errorComponent)));
122
+ })))) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, loading || isLoading ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, loadingComponent) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, unuploadedComponent), !!error && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, errorComponent)));
116
123
  });
117
124
  exports.Upload = Upload;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "glints-aries",
3
- "version": "4.0.293",
3
+ "version": "4.0.294",
4
4
  "description": "Glints ui-kit for frontend",
5
5
  "main": "./lib/index.js",
6
6
  "module": "./es/index.js",