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
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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;
|