@razorpay/blade 11.21.1 → 11.21.2
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/build/lib/web/development/components/FileUpload/FileUpload.web.js +55 -8
- package/build/lib/web/development/components/FileUpload/FileUpload.web.js.map +1 -1
- package/build/lib/web/development/components/FileUpload/FileUploadItem.js +22 -1
- package/build/lib/web/development/components/FileUpload/FileUploadItem.js.map +1 -1
- package/build/lib/web/development/components/FileUpload/StyledFileUploadItemWrapper.js +1 -1
- package/build/lib/web/development/components/FileUpload/StyledFileUploadItemWrapper.js.map +1 -1
- package/build/lib/web/production/components/FileUpload/FileUpload.web.js +55 -8
- package/build/lib/web/production/components/FileUpload/FileUpload.web.js.map +1 -1
- package/build/lib/web/production/components/FileUpload/FileUploadItem.js +22 -1
- package/build/lib/web/production/components/FileUpload/FileUploadItem.js.map +1 -1
- package/build/lib/web/production/components/FileUpload/StyledFileUploadItemWrapper.js +1 -1
- package/build/lib/web/production/components/FileUpload/StyledFileUploadItemWrapper.js.map +1 -1
- package/build/types/components/index.d.ts +6 -0
- package/build/types/components/index.native.d.ts +6 -0
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
|
2
2
|
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
3
3
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
4
4
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
5
|
-
import { useState, useMemo, useCallback, forwardRef } from 'react';
|
|
5
|
+
import { useRef, useState, useMemo, useCallback, forwardRef } from 'react';
|
|
6
6
|
import { StyledFileUploadWrapper } from './StyledFileUploadWrapper.js';
|
|
7
7
|
import { fileUploadColorTokens, getFileUploadInputHoverTokens, fileUploadLinkBorderTokens } from './fileUploadTokens.js';
|
|
8
8
|
import { FileUploadItem } from './FileUploadItem.js';
|
|
@@ -22,6 +22,7 @@ import '../Typography/index.js';
|
|
|
22
22
|
import { getHintType } from '../Input/BaseInput/BaseInput.js';
|
|
23
23
|
import '../../utils/makeAccessible/index.js';
|
|
24
24
|
import { formHintLeftLabelMarginLeft } from '../Input/BaseInput/baseInputTokens.js';
|
|
25
|
+
import { useMergeRefs } from '../../utils/useMergeRefs.js';
|
|
25
26
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
26
27
|
import useTheme from '../BladeProvider/useTheme.js';
|
|
27
28
|
import { makeAccessible } from '../../utils/makeAccessible/makeAccessible.web.js';
|
|
@@ -37,7 +38,7 @@ import { Text } from '../Typography/Text/Text.js';
|
|
|
37
38
|
import { FormHint } from '../Form/FormHint.js';
|
|
38
39
|
import { assignWithoutSideEffects } from '../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
|
|
39
40
|
|
|
40
|
-
var _excluded = ["name", "accept", "uploadType", "onChange", "onPreview", "onRemove", "onDismiss", "onDrop", "isDisabled", "isRequired", "necessityIndicator", "fileList", "testID", "label", "labelPosition", "accessibilityLabel", "validationState", "helpText", "errorText", "maxCount", "maxSize", "size"];
|
|
41
|
+
var _excluded = ["name", "accept", "uploadType", "onChange", "onPreview", "onRemove", "onReupload", "onDismiss", "onDrop", "isDisabled", "isRequired", "necessityIndicator", "fileList", "testID", "label", "labelPosition", "accessibilityLabel", "validationState", "helpText", "errorText", "maxCount", "maxSize", "size"];
|
|
41
42
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
42
43
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
43
44
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
@@ -51,6 +52,7 @@ var _FileUpload = function _FileUpload(_ref, ref) {
|
|
|
51
52
|
onChange = _ref.onChange,
|
|
52
53
|
onPreview = _ref.onPreview,
|
|
53
54
|
_onRemove = _ref.onRemove,
|
|
55
|
+
_onReupload = _ref.onReupload,
|
|
54
56
|
_onDismiss = _ref.onDismiss,
|
|
55
57
|
onDrop = _ref.onDrop,
|
|
56
58
|
isDisabled = _ref.isDisabled,
|
|
@@ -70,6 +72,8 @@ var _FileUpload = function _FileUpload(_ref, ref) {
|
|
|
70
72
|
_ref$size = _ref.size,
|
|
71
73
|
size = _ref$size === void 0 ? 'medium' : _ref$size,
|
|
72
74
|
styledProps = _objectWithoutProperties(_ref, _excluded);
|
|
75
|
+
var inputRef = useRef(null);
|
|
76
|
+
var mergedRef = useMergeRefs(ref, inputRef);
|
|
73
77
|
var _useTheme = useTheme(),
|
|
74
78
|
platform = _useTheme.platform;
|
|
75
79
|
var _useState = useState(fileList !== null && fileList !== void 0 ? fileList : []),
|
|
@@ -283,7 +287,7 @@ var _FileUpload = function _FileUpload(_ref, ref) {
|
|
|
283
287
|
return setIsActive(false);
|
|
284
288
|
}
|
|
285
289
|
}, accessibilityProps),
|
|
286
|
-
ref:
|
|
290
|
+
ref: mergedRef
|
|
287
291
|
}), /*#__PURE__*/jsx(Box, {
|
|
288
292
|
display: "flex",
|
|
289
293
|
justifyContent: "center",
|
|
@@ -321,12 +325,34 @@ var _FileUpload = function _FileUpload(_ref, ref) {
|
|
|
321
325
|
file: selectedFiles[0]
|
|
322
326
|
});
|
|
323
327
|
},
|
|
324
|
-
|
|
328
|
+
onReupload: function onReupload() {
|
|
329
|
+
var _inputRef$current;
|
|
325
330
|
var newFiles = selectedFiles.filter(function (_ref3) {
|
|
326
331
|
var id = _ref3.id;
|
|
327
332
|
return id !== selectedFiles[0].id;
|
|
328
333
|
});
|
|
329
334
|
setSelectedFiles(newFiles);
|
|
335
|
+
(_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.click();
|
|
336
|
+
|
|
337
|
+
// TODO - Remove this in the next major release
|
|
338
|
+
// Fallback to onRemove if onReupload isn't provided to avoid breaking changes in the API
|
|
339
|
+
if (_onReupload) {
|
|
340
|
+
_onReupload({
|
|
341
|
+
file: selectedFiles[0]
|
|
342
|
+
});
|
|
343
|
+
} else {
|
|
344
|
+
_onRemove === null || _onRemove === void 0 ? void 0 : _onRemove({
|
|
345
|
+
file: selectedFiles[0]
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
setIsActive(false);
|
|
349
|
+
},
|
|
350
|
+
onDismiss: function onDismiss() {
|
|
351
|
+
var newFiles = selectedFiles.filter(function (_ref4) {
|
|
352
|
+
var id = _ref4.id;
|
|
353
|
+
return id !== selectedFiles[0].id;
|
|
354
|
+
});
|
|
355
|
+
setSelectedFiles(newFiles);
|
|
330
356
|
_onDismiss === null || _onDismiss === void 0 ? void 0 : _onDismiss({
|
|
331
357
|
file: selectedFiles[0]
|
|
332
358
|
});
|
|
@@ -360,8 +386,8 @@ var _FileUpload = function _FileUpload(_ref, ref) {
|
|
|
360
386
|
file: file,
|
|
361
387
|
size: size,
|
|
362
388
|
onRemove: function onRemove() {
|
|
363
|
-
var newFiles = selectedFiles.filter(function (
|
|
364
|
-
var id =
|
|
389
|
+
var newFiles = selectedFiles.filter(function (_ref5) {
|
|
390
|
+
var id = _ref5.id;
|
|
365
391
|
return id !== file.id;
|
|
366
392
|
});
|
|
367
393
|
setSelectedFiles(newFiles);
|
|
@@ -369,9 +395,30 @@ var _FileUpload = function _FileUpload(_ref, ref) {
|
|
|
369
395
|
file: file
|
|
370
396
|
});
|
|
371
397
|
},
|
|
398
|
+
onReupload: function onReupload() {
|
|
399
|
+
var _inputRef$current2;
|
|
400
|
+
var newFiles = selectedFiles.filter(function (_ref6) {
|
|
401
|
+
var id = _ref6.id;
|
|
402
|
+
return id !== file.id;
|
|
403
|
+
});
|
|
404
|
+
setSelectedFiles(newFiles);
|
|
405
|
+
(_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.click();
|
|
406
|
+
// TODO - Remove this in the next major release
|
|
407
|
+
// Fallback to onRemove if onReupload isn't provided to avoid breaking changes in the API
|
|
408
|
+
if (_onReupload) {
|
|
409
|
+
_onReupload({
|
|
410
|
+
file: selectedFiles[0]
|
|
411
|
+
});
|
|
412
|
+
} else {
|
|
413
|
+
_onRemove === null || _onRemove === void 0 ? void 0 : _onRemove({
|
|
414
|
+
file: selectedFiles[0]
|
|
415
|
+
});
|
|
416
|
+
}
|
|
417
|
+
setIsActive(false);
|
|
418
|
+
},
|
|
372
419
|
onDismiss: function onDismiss() {
|
|
373
|
-
var newFiles = selectedFiles.filter(function (
|
|
374
|
-
var id =
|
|
420
|
+
var newFiles = selectedFiles.filter(function (_ref7) {
|
|
421
|
+
var id = _ref7.id;
|
|
375
422
|
return id !== file.id;
|
|
376
423
|
});
|
|
377
424
|
setSelectedFiles(newFiles);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUpload.web.js","sources":["../../../../../../src/components/FileUpload/FileUpload.web.tsx"],"sourcesContent":["import { useState, useCallback, useMemo, forwardRef } from 'react';\nimport type { FileUploadProps, BladeFile, BladeFileList } from './types';\nimport { StyledFileUploadWrapper } from './StyledFileUploadWrapper';\nimport {\n fileUploadColorTokens,\n fileUploadLinkBorderTokens,\n getFileUploadInputHoverTokens,\n} from './fileUploadTokens';\nimport { FileUploadItem } from './FileUploadItem';\nimport { isFileAccepted } from './isFileAccepted';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Box } from '~components/Box';\nimport { SelectorLabel } from '~components/Form/Selector/SelectorLabel';\nimport { SelectorInput } from '~components/Form/Selector/SelectorInput';\nimport { screenReaderStyles } from '~components/VisuallyHidden';\nimport { FormHint, FormLabel } from '~components/Form';\nimport { useFormId } from '~components/Form/useFormId';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { makeSize, useTheme } from '~utils';\nimport { Text } from '~components/Typography';\nimport type { BladeElementRef } from '~utils/types';\nimport { getHintType } from '~components/Input/BaseInput/BaseInput';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { formHintLeftLabelMarginLeft } from '~components/Input/BaseInput/baseInputTokens';\n\nconst _FileUpload: React.ForwardRefRenderFunction<BladeElementRef, FileUploadProps> = (\n {\n name,\n accept,\n uploadType = 'single',\n onChange,\n onPreview,\n onRemove,\n onDismiss,\n onDrop,\n isDisabled,\n isRequired,\n necessityIndicator,\n fileList,\n testID,\n label,\n labelPosition = 'top',\n accessibilityLabel,\n validationState,\n helpText,\n errorText,\n maxCount,\n maxSize,\n size = 'medium',\n ...styledProps\n },\n ref,\n): React.ReactElement => {\n const { platform } = useTheme();\n const [selectedFiles, setSelectedFiles] = useState<BladeFileList>(fileList ?? []);\n const [errorMessage, setErrorMessage] = useState(errorText);\n const [internalValidationState, setInternalValidationState] = useState('none');\n const [isActive, setIsActive] = useState(false);\n\n const isMultiple = uploadType === 'multiple';\n const isOneFileSelectedWithSingleUpload = !isMultiple && selectedFiles.length === 1;\n const inputLabelPosition = platform === 'onMobile' ? 'top' : labelPosition;\n const isLabelLeftPositioned = inputLabelPosition === 'left';\n const willRenderHintText = Boolean(helpText) || Boolean(errorMessage);\n\n const showError = validationState === 'error' || internalValidationState === 'error';\n const showHelpText = !showError && helpText;\n const accessibilityText =\n accessibilityLabel ?? `,${showError ? errorText : ''} ${showHelpText ? helpText : ''}`;\n const { inputId, labelId, helpTextId, errorTextId } = useFormId('fileuploadinput');\n\n const accessibilityProps = makeAccessible({\n required: Boolean(isRequired),\n invalid: Boolean(showError),\n disabled: Boolean(isDisabled),\n describedBy: labelId,\n });\n\n // In control mode attach a unique id to each file if not provided\n useMemo(() => {\n for (const file of selectedFiles) {\n if (!file.id) {\n file.id = `${new Date().getTime().toString()}${Math.floor(Math.random() * 1000000)}`;\n }\n }\n }, [selectedFiles]);\n\n const handleFilesChange = useCallback((inputFiles: BladeFileList) => {\n setSelectedFiles((prevFiles) => {\n if (prevFiles.length > 0) {\n const allFiles = [...prevFiles, ...inputFiles];\n return allFiles;\n }\n\n return inputFiles;\n });\n }, []);\n\n const validateFiles = (inputFiles: BladeFileList, allFiles: BladeFileList): boolean => {\n if (accept && inputFiles.some((file) => !isFileAccepted(file, accept))) {\n setErrorMessage(`You provided an unsupported file type. Supported file types are: ${accept}`);\n setInternalValidationState('error');\n return true;\n }\n\n if (uploadType === 'single' && inputFiles.length > 1) {\n setErrorMessage('You can upload only one file.');\n setInternalValidationState('error');\n return true;\n }\n\n if (maxCount && allFiles.length > maxCount) {\n setErrorMessage(`You can't upload more than ${maxCount} files.`);\n setInternalValidationState('error');\n return true;\n }\n\n if (maxSize && inputFiles.some((file) => file.size > maxSize)) {\n setErrorMessage('File size exceeded.');\n setInternalValidationState('error');\n return true;\n }\n\n setInternalValidationState('none');\n setErrorMessage('');\n return false;\n };\n\n const handleDragOver = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(true);\n };\n\n const handleDragLeave = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(false);\n };\n\n const handleDrop = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(false);\n\n const droppedFiles = Array.from(event.dataTransfer.files);\n const allFiles = selectedFiles.length > 0 ? [...selectedFiles, ...droppedFiles] : droppedFiles;\n\n const hasValidationErrors = validateFiles(droppedFiles, allFiles);\n\n if (!hasValidationErrors) {\n handleFilesChange(droppedFiles);\n onDrop?.({ name, fileList: allFiles });\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n const inputFiles = Array.from(event.target.files ?? []);\n const allFiles = selectedFiles.length > 0 ? [...selectedFiles, ...inputFiles] : inputFiles;\n\n const hasValidationErrors = validateFiles(inputFiles, allFiles);\n\n if (!hasValidationErrors) {\n handleFilesChange(inputFiles);\n onChange?.({ name, fileList: allFiles });\n }\n\n // Reset the input value to allow re-selecting the same file\n event.target.value = '';\n };\n\n return (\n <BaseBox\n display=\"flex\"\n flexDirection=\"column\"\n width=\"100%\"\n {...metaAttribute({ name: MetaConstants.FileUpload, testID })}\n {...getStyledProps(styledProps)}\n >\n <BaseBox\n display=\"flex\"\n flexDirection={isLabelLeftPositioned ? 'row' : 'column'}\n alignItems={isLabelLeftPositioned ? 'center' : undefined}\n position=\"relative\"\n width=\"100%\"\n >\n {label ? (\n <FormLabel\n size={size}\n as=\"span\"\n necessityIndicator={necessityIndicator}\n position={labelPosition}\n id={labelId}\n accessibilityText={accessibilityText}\n >\n {label}\n </FormLabel>\n ) : null}\n\n <SelectorLabel\n componentName={MetaConstants.FileUploadLabel}\n inputProps={{}}\n style={{\n cursor: isDisabled ? 'not-allowed' : 'pointer',\n width: '100%',\n }}\n >\n <BaseBox\n display=\"flex\"\n flexDirection=\"column\"\n width=\"100%\"\n marginBottom={willRenderHintText ? 'spacing.0' : 'spacing.5'}\n >\n <StyledFileUploadWrapper\n size={size}\n isDisabled={isDisabled}\n isActive={isActive}\n display=\"flex\"\n flexDirection=\"row\"\n justifyContent=\"center\"\n alignItems=\"center\"\n borderRadius=\"medium\"\n borderWidth=\"thin\"\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n onClick={() => setIsActive(true)}\n data-comp=\"f\"\n style={{\n ...(isOneFileSelectedWithSingleUpload ? screenReaderStyles : {}),\n }}\n >\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n flexDirection={{ base: 'column', s: 'row' }}\n gap={makeSize(6)}\n padding=\"spacing.3\"\n >\n <Text\n color={\n isDisabled\n ? fileUploadColorTokens.text.disabled\n : fileUploadColorTokens.text.default\n }\n >\n Drag files here or{' '}\n </Text>\n <SelectorInput\n id={inputId}\n hoverTokens={getFileUploadInputHoverTokens()}\n isChecked={false}\n isDisabled={isDisabled}\n inputProps={{\n name,\n type: 'file',\n onChange: handleInputChange,\n multiple: isMultiple,\n required: isRequired,\n disabled: isDisabled,\n accept,\n onBlur: () => setIsActive(false),\n ...accessibilityProps,\n }}\n ref={ref}\n />\n\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n flexDirection={{ base: 'column', s: 'row' }}\n borderRadius=\"small\"\n >\n <Box\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n borderBottomColor={\n fileUploadLinkBorderTokens.color[isDisabled ? 'disabled' : 'default']\n }\n borderBottomWidth={fileUploadLinkBorderTokens.width.default}\n >\n <Text\n color={\n isDisabled\n ? fileUploadColorTokens.link.disabled\n : fileUploadColorTokens.link.default\n }\n >\n Upload\n </Text>\n </Box>\n </Box>\n </Box>\n </StyledFileUploadWrapper>\n </BaseBox>\n </SelectorLabel>\n {isOneFileSelectedWithSingleUpload && (\n <FileUploadItem\n file={selectedFiles[0]}\n size={size}\n onRemove={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(newFiles);\n onRemove?.({ file: selectedFiles[0] });\n }}\n onDismiss={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(newFiles);\n onDismiss?.({ file: selectedFiles[0] });\n }}\n onPreview={onPreview}\n />\n )}\n </BaseBox>\n {willRenderHintText && (\n <BaseBox\n marginLeft={makeSize(\n label && isLabelLeftPositioned ? formHintLeftLabelMarginLeft[size] : 0,\n )}\n marginBottom=\"spacing.5\"\n >\n <BaseBox display=\"flex\" flexDirection=\"row\" justifyContent=\"'space-between\">\n <FormHint\n size={size}\n type={getHintType({\n validationState: showError ? 'error' : validationState,\n hasHelpText: Boolean(helpText),\n })}\n helpText={helpText}\n errorText={errorMessage}\n helpTextId={helpTextId}\n errorTextId={errorTextId}\n />\n </BaseBox>\n </BaseBox>\n )}\n {!isOneFileSelectedWithSingleUpload &&\n selectedFiles.map((file) => (\n <BaseBox\n key={file.id}\n marginLeft={makeSize(\n label && isLabelLeftPositioned ? formHintLeftLabelMarginLeft[size] : 0,\n )}\n marginBottom=\"spacing.3\"\n >\n <FileUploadItem\n file={file}\n size={size}\n onRemove={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(newFiles);\n onRemove?.({ file });\n }}\n onDismiss={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(newFiles);\n onDismiss?.({ file });\n }}\n onPreview={onPreview}\n />\n </BaseBox>\n ))}\n </BaseBox>\n );\n};\n\n/**\n * ### FileUpload Component\n * \n * The FileUpload component is used to handle file attachments, including the drag-and-drop interaction.\n * Primarily, it is used to upload files to a server or to display a list of uploaded files.\n * \n * ---\n * \n * #### Usage\n * \n * ```jsx\n const GSTForm = () => {\n const [selectedFile, setSelectedFile] = useState<BladeFile>();\n const [isLoading, setIsLoading] = useState(false);\n \n return (\n <Box>\n <Heading marginBottom=\"spacing.4\">Add GST Details</Heading>\n <form encType=\"multipart/form-data\" onSubmit={handleSubmit}>\n <FileUpload\n uploadType=\"single\"\n label=\"Upload GST\"\n helpText=\"Upload .jpg, .jpeg, or .png file only\"\n accept=\".jpg, .jpeg, .png\"\n onChange={({ fileList }) => {\n setSelectedFile(fileList[0]);\n }}\n onDrop={({ fileList }) => {\n setSelectedFile(fileList[0]);\n }}\n isRequired\n necessityIndicator=\"required\"\n />\n <Button type=\"submit\" variant=\"primary\">\n Submit\n </Button>\n {isLoading && (\n <ProgressBar isIndeterminate label=\"Uploading your GST Certificate...\" />\n )}\n </form>\n </Box>\n );\n }\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-fileupload FileUpload Documentation}\n * \n */\nconst FileUpload = assignWithoutSideEffects(forwardRef(_FileUpload), {\n displayName: 'FileUpload',\n componentId: 'FileUpload',\n});\n\nexport { FileUpload };\nexport type { BladeFile, BladeFileList, FileUploadProps };\n"],"names":["_FileUpload","_ref","ref","name","accept","_ref$uploadType","uploadType","onChange","onPreview","onRemove","onDismiss","onDrop","isDisabled","isRequired","necessityIndicator","fileList","testID","label","_ref$labelPosition","labelPosition","accessibilityLabel","validationState","helpText","errorText","maxCount","maxSize","_ref$size","size","styledProps","_objectWithoutProperties","_excluded","_useTheme","useTheme","platform","_useState","useState","_useState2","_slicedToArray","selectedFiles","setSelectedFiles","_useState3","_useState4","errorMessage","setErrorMessage","_useState5","_useState6","internalValidationState","setInternalValidationState","_useState7","_useState8","isActive","setIsActive","isMultiple","isOneFileSelectedWithSingleUpload","length","inputLabelPosition","isLabelLeftPositioned","willRenderHintText","Boolean","showError","showHelpText","accessibilityText","concat","_useFormId","useFormId","inputId","labelId","helpTextId","errorTextId","accessibilityProps","makeAccessible","required","invalid","disabled","describedBy","useMemo","_iterator","_createForOfIteratorHelper","_step","s","n","done","file","value","id","Date","getTime","toString","Math","floor","random","err","e","f","handleFilesChange","useCallback","inputFiles","prevFiles","allFiles","_toConsumableArray","validateFiles","some","isFileAccepted","handleDragOver","event","preventDefault","handleDragLeave","handleDrop","droppedFiles","Array","from","dataTransfer","files","hasValidationErrors","handleInputChange","_event$target$files","target","_jsxs","BaseBox","_objectSpread","display","flexDirection","width","metaAttribute","MetaConstants","FileUpload","getStyledProps","children","alignItems","undefined","position","_jsx","FormLabel","as","SelectorLabel","componentName","FileUploadLabel","inputProps","style","cursor","marginBottom","StyledFileUploadWrapper","justifyContent","borderRadius","borderWidth","onDragOver","onDragLeave","onClick","screenReaderStyles","Box","base","gap","makeSize","padding","Text","color","fileUploadColorTokens","text","SelectorInput","hoverTokens","getFileUploadInputHoverTokens","isChecked","type","multiple","onBlur","borderBottomColor","fileUploadLinkBorderTokens","borderBottomWidth","link","FileUploadItem","newFiles","filter","_ref2","_ref3","marginLeft","formHintLeftLabelMarginLeft","FormHint","getHintType","hasHelpText","map","_ref4","_ref5","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FileUpload.web.js","sources":["../../../../../../src/components/FileUpload/FileUpload.web.tsx"],"sourcesContent":["import { useState, useCallback, useMemo, useRef, forwardRef } from 'react';\nimport type { FileUploadProps, BladeFile, BladeFileList } from './types';\nimport { StyledFileUploadWrapper } from './StyledFileUploadWrapper';\nimport {\n fileUploadColorTokens,\n fileUploadLinkBorderTokens,\n getFileUploadInputHoverTokens,\n} from './fileUploadTokens';\nimport { FileUploadItem } from './FileUploadItem';\nimport { isFileAccepted } from './isFileAccepted';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Box } from '~components/Box';\nimport { SelectorLabel } from '~components/Form/Selector/SelectorLabel';\nimport { SelectorInput } from '~components/Form/Selector/SelectorInput';\nimport { screenReaderStyles } from '~components/VisuallyHidden';\nimport { FormHint, FormLabel } from '~components/Form';\nimport { useFormId } from '~components/Form/useFormId';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { makeSize, useTheme } from '~utils';\nimport { Text } from '~components/Typography';\nimport type { BladeElementRef } from '~utils/types';\nimport { getHintType } from '~components/Input/BaseInput/BaseInput';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { formHintLeftLabelMarginLeft } from '~components/Input/BaseInput/baseInputTokens';\nimport { useMergeRefs } from '~utils/useMergeRefs';\n\nconst _FileUpload: React.ForwardRefRenderFunction<BladeElementRef, FileUploadProps> = (\n {\n name,\n accept,\n uploadType = 'single',\n onChange,\n onPreview,\n onRemove,\n onReupload,\n onDismiss,\n onDrop,\n isDisabled,\n isRequired,\n necessityIndicator,\n fileList,\n testID,\n label,\n labelPosition = 'top',\n accessibilityLabel,\n validationState,\n helpText,\n errorText,\n maxCount,\n maxSize,\n size = 'medium',\n ...styledProps\n },\n ref,\n): React.ReactElement => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const mergedRef = useMergeRefs(ref, inputRef);\n const { platform } = useTheme();\n const [selectedFiles, setSelectedFiles] = useState<BladeFileList>(fileList ?? []);\n const [errorMessage, setErrorMessage] = useState(errorText);\n const [internalValidationState, setInternalValidationState] = useState('none');\n const [isActive, setIsActive] = useState(false);\n\n const isMultiple = uploadType === 'multiple';\n const isOneFileSelectedWithSingleUpload = !isMultiple && selectedFiles.length === 1;\n const inputLabelPosition = platform === 'onMobile' ? 'top' : labelPosition;\n const isLabelLeftPositioned = inputLabelPosition === 'left';\n const willRenderHintText = Boolean(helpText) || Boolean(errorMessage);\n\n const showError = validationState === 'error' || internalValidationState === 'error';\n const showHelpText = !showError && helpText;\n const accessibilityText =\n accessibilityLabel ?? `,${showError ? errorText : ''} ${showHelpText ? helpText : ''}`;\n const { inputId, labelId, helpTextId, errorTextId } = useFormId('fileuploadinput');\n\n const accessibilityProps = makeAccessible({\n required: Boolean(isRequired),\n invalid: Boolean(showError),\n disabled: Boolean(isDisabled),\n describedBy: labelId,\n });\n\n // In control mode attach a unique id to each file if not provided\n useMemo(() => {\n for (const file of selectedFiles) {\n if (!file.id) {\n file.id = `${new Date().getTime().toString()}${Math.floor(Math.random() * 1000000)}`;\n }\n }\n }, [selectedFiles]);\n\n const handleFilesChange = useCallback((inputFiles: BladeFileList) => {\n setSelectedFiles((prevFiles) => {\n if (prevFiles.length > 0) {\n const allFiles = [...prevFiles, ...inputFiles];\n return allFiles;\n }\n\n return inputFiles;\n });\n }, []);\n\n const validateFiles = (inputFiles: BladeFileList, allFiles: BladeFileList): boolean => {\n if (accept && inputFiles.some((file) => !isFileAccepted(file, accept))) {\n setErrorMessage(`You provided an unsupported file type. Supported file types are: ${accept}`);\n setInternalValidationState('error');\n return true;\n }\n\n if (uploadType === 'single' && inputFiles.length > 1) {\n setErrorMessage('You can upload only one file.');\n setInternalValidationState('error');\n return true;\n }\n\n if (maxCount && allFiles.length > maxCount) {\n setErrorMessage(`You can't upload more than ${maxCount} files.`);\n setInternalValidationState('error');\n return true;\n }\n\n if (maxSize && inputFiles.some((file) => file.size > maxSize)) {\n setErrorMessage('File size exceeded.');\n setInternalValidationState('error');\n return true;\n }\n\n setInternalValidationState('none');\n setErrorMessage('');\n return false;\n };\n\n const handleDragOver = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(true);\n };\n\n const handleDragLeave = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(false);\n };\n\n const handleDrop = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(false);\n\n const droppedFiles = Array.from(event.dataTransfer.files);\n const allFiles = selectedFiles.length > 0 ? [...selectedFiles, ...droppedFiles] : droppedFiles;\n\n const hasValidationErrors = validateFiles(droppedFiles, allFiles);\n\n if (!hasValidationErrors) {\n handleFilesChange(droppedFiles);\n onDrop?.({ name, fileList: allFiles });\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n const inputFiles = Array.from(event.target.files ?? []);\n const allFiles = selectedFiles.length > 0 ? [...selectedFiles, ...inputFiles] : inputFiles;\n\n const hasValidationErrors = validateFiles(inputFiles, allFiles);\n\n if (!hasValidationErrors) {\n handleFilesChange(inputFiles);\n onChange?.({ name, fileList: allFiles });\n }\n\n // Reset the input value to allow re-selecting the same file\n event.target.value = '';\n };\n\n return (\n <BaseBox\n display=\"flex\"\n flexDirection=\"column\"\n width=\"100%\"\n {...metaAttribute({ name: MetaConstants.FileUpload, testID })}\n {...getStyledProps(styledProps)}\n >\n <BaseBox\n display=\"flex\"\n flexDirection={isLabelLeftPositioned ? 'row' : 'column'}\n alignItems={isLabelLeftPositioned ? 'center' : undefined}\n position=\"relative\"\n width=\"100%\"\n >\n {label ? (\n <FormLabel\n size={size}\n as=\"span\"\n necessityIndicator={necessityIndicator}\n position={labelPosition}\n id={labelId}\n accessibilityText={accessibilityText}\n >\n {label}\n </FormLabel>\n ) : null}\n\n <SelectorLabel\n componentName={MetaConstants.FileUploadLabel}\n inputProps={{}}\n style={{\n cursor: isDisabled ? 'not-allowed' : 'pointer',\n width: '100%',\n }}\n >\n <BaseBox\n display=\"flex\"\n flexDirection=\"column\"\n width=\"100%\"\n marginBottom={willRenderHintText ? 'spacing.0' : 'spacing.5'}\n >\n <StyledFileUploadWrapper\n size={size}\n isDisabled={isDisabled}\n isActive={isActive}\n display=\"flex\"\n flexDirection=\"row\"\n justifyContent=\"center\"\n alignItems=\"center\"\n borderRadius=\"medium\"\n borderWidth=\"thin\"\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n onClick={() => setIsActive(true)}\n data-comp=\"f\"\n style={{\n ...(isOneFileSelectedWithSingleUpload ? screenReaderStyles : {}),\n }}\n >\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n flexDirection={{ base: 'column', s: 'row' }}\n gap={makeSize(6)}\n padding=\"spacing.3\"\n >\n <Text\n color={\n isDisabled\n ? fileUploadColorTokens.text.disabled\n : fileUploadColorTokens.text.default\n }\n >\n Drag files here or{' '}\n </Text>\n <SelectorInput\n id={inputId}\n hoverTokens={getFileUploadInputHoverTokens()}\n isChecked={false}\n isDisabled={isDisabled}\n inputProps={{\n name,\n type: 'file',\n onChange: handleInputChange,\n multiple: isMultiple,\n required: isRequired,\n disabled: isDisabled,\n accept,\n onBlur: () => setIsActive(false),\n ...accessibilityProps,\n }}\n ref={mergedRef}\n />\n\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n flexDirection={{ base: 'column', s: 'row' }}\n borderRadius=\"small\"\n >\n <Box\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n borderBottomColor={\n fileUploadLinkBorderTokens.color[isDisabled ? 'disabled' : 'default']\n }\n borderBottomWidth={fileUploadLinkBorderTokens.width.default}\n >\n <Text\n color={\n isDisabled\n ? fileUploadColorTokens.link.disabled\n : fileUploadColorTokens.link.default\n }\n >\n Upload\n </Text>\n </Box>\n </Box>\n </Box>\n </StyledFileUploadWrapper>\n </BaseBox>\n </SelectorLabel>\n {isOneFileSelectedWithSingleUpload && (\n <FileUploadItem\n file={selectedFiles[0]}\n size={size}\n onRemove={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(newFiles);\n onRemove?.({ file: selectedFiles[0] });\n }}\n onReupload={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(newFiles);\n inputRef.current?.click();\n\n // TODO - Remove this in the next major release\n // Fallback to onRemove if onReupload isn't provided to avoid breaking changes in the API\n if (onReupload) {\n onReupload({ file: selectedFiles[0] });\n } else {\n onRemove?.({ file: selectedFiles[0] });\n }\n setIsActive(false);\n }}\n onDismiss={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(newFiles);\n onDismiss?.({ file: selectedFiles[0] });\n }}\n onPreview={onPreview}\n />\n )}\n </BaseBox>\n {willRenderHintText && (\n <BaseBox\n marginLeft={makeSize(\n label && isLabelLeftPositioned ? formHintLeftLabelMarginLeft[size] : 0,\n )}\n marginBottom=\"spacing.5\"\n >\n <BaseBox display=\"flex\" flexDirection=\"row\" justifyContent=\"'space-between\">\n <FormHint\n size={size}\n type={getHintType({\n validationState: showError ? 'error' : validationState,\n hasHelpText: Boolean(helpText),\n })}\n helpText={helpText}\n errorText={errorMessage}\n helpTextId={helpTextId}\n errorTextId={errorTextId}\n />\n </BaseBox>\n </BaseBox>\n )}\n {!isOneFileSelectedWithSingleUpload &&\n selectedFiles.map((file) => (\n <BaseBox\n key={file.id}\n marginLeft={makeSize(\n label && isLabelLeftPositioned ? formHintLeftLabelMarginLeft[size] : 0,\n )}\n marginBottom=\"spacing.3\"\n >\n <FileUploadItem\n file={file}\n size={size}\n onRemove={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(newFiles);\n onRemove?.({ file });\n }}\n onReupload={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(newFiles);\n inputRef.current?.click();\n // TODO - Remove this in the next major release\n // Fallback to onRemove if onReupload isn't provided to avoid breaking changes in the API\n if (onReupload) {\n onReupload({ file: selectedFiles[0] });\n } else {\n onRemove?.({ file: selectedFiles[0] });\n }\n setIsActive(false);\n }}\n onDismiss={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(newFiles);\n onDismiss?.({ file });\n }}\n onPreview={onPreview}\n />\n </BaseBox>\n ))}\n </BaseBox>\n );\n};\n\n/**\n * ### FileUpload Component\n * \n * The FileUpload component is used to handle file attachments, including the drag-and-drop interaction.\n * Primarily, it is used to upload files to a server or to display a list of uploaded files.\n * \n * ---\n * \n * #### Usage\n * \n * ```jsx\n const GSTForm = () => {\n const [selectedFile, setSelectedFile] = useState<BladeFile>();\n const [isLoading, setIsLoading] = useState(false);\n \n return (\n <Box>\n <Heading marginBottom=\"spacing.4\">Add GST Details</Heading>\n <form encType=\"multipart/form-data\" onSubmit={handleSubmit}>\n <FileUpload\n uploadType=\"single\"\n label=\"Upload GST\"\n helpText=\"Upload .jpg, .jpeg, or .png file only\"\n accept=\".jpg, .jpeg, .png\"\n onChange={({ fileList }) => {\n setSelectedFile(fileList[0]);\n }}\n onDrop={({ fileList }) => {\n setSelectedFile(fileList[0]);\n }}\n isRequired\n necessityIndicator=\"required\"\n />\n <Button type=\"submit\" variant=\"primary\">\n Submit\n </Button>\n {isLoading && (\n <ProgressBar isIndeterminate label=\"Uploading your GST Certificate...\" />\n )}\n </form>\n </Box>\n );\n }\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-fileupload FileUpload Documentation}\n * \n */\nconst FileUpload = assignWithoutSideEffects(forwardRef(_FileUpload), {\n displayName: 'FileUpload',\n componentId: 'FileUpload',\n});\n\nexport { FileUpload };\nexport type { BladeFile, BladeFileList, FileUploadProps };\n"],"names":["_FileUpload","_ref","ref","name","accept","_ref$uploadType","uploadType","onChange","onPreview","onRemove","onReupload","onDismiss","onDrop","isDisabled","isRequired","necessityIndicator","fileList","testID","label","_ref$labelPosition","labelPosition","accessibilityLabel","validationState","helpText","errorText","maxCount","maxSize","_ref$size","size","styledProps","_objectWithoutProperties","_excluded","inputRef","useRef","mergedRef","useMergeRefs","_useTheme","useTheme","platform","_useState","useState","_useState2","_slicedToArray","selectedFiles","setSelectedFiles","_useState3","_useState4","errorMessage","setErrorMessage","_useState5","_useState6","internalValidationState","setInternalValidationState","_useState7","_useState8","isActive","setIsActive","isMultiple","isOneFileSelectedWithSingleUpload","length","inputLabelPosition","isLabelLeftPositioned","willRenderHintText","Boolean","showError","showHelpText","accessibilityText","concat","_useFormId","useFormId","inputId","labelId","helpTextId","errorTextId","accessibilityProps","makeAccessible","required","invalid","disabled","describedBy","useMemo","_iterator","_createForOfIteratorHelper","_step","s","n","done","file","value","id","Date","getTime","toString","Math","floor","random","err","e","f","handleFilesChange","useCallback","inputFiles","prevFiles","allFiles","_toConsumableArray","validateFiles","some","isFileAccepted","handleDragOver","event","preventDefault","handleDragLeave","handleDrop","droppedFiles","Array","from","dataTransfer","files","hasValidationErrors","handleInputChange","_event$target$files","target","_jsxs","BaseBox","_objectSpread","display","flexDirection","width","metaAttribute","MetaConstants","FileUpload","getStyledProps","children","alignItems","undefined","position","_jsx","FormLabel","as","SelectorLabel","componentName","FileUploadLabel","inputProps","style","cursor","marginBottom","StyledFileUploadWrapper","justifyContent","borderRadius","borderWidth","onDragOver","onDragLeave","onClick","screenReaderStyles","Box","base","gap","makeSize","padding","Text","color","fileUploadColorTokens","text","SelectorInput","hoverTokens","getFileUploadInputHoverTokens","isChecked","type","multiple","onBlur","borderBottomColor","fileUploadLinkBorderTokens","borderBottomWidth","link","FileUploadItem","newFiles","filter","_ref2","_inputRef$current","_ref3","current","click","_ref4","marginLeft","formHintLeftLabelMarginLeft","FormHint","getHintType","hasHelpText","map","_ref5","_inputRef$current2","_ref6","_ref7","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":"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"}
|
|
@@ -8,12 +8,15 @@ import '../Divider/index.js';
|
|
|
8
8
|
import '../Button/IconButton/index.js';
|
|
9
9
|
import '../ProgressBar/index.js';
|
|
10
10
|
import isUndefined from '../../utils/lodashButBetter/isUndefined.js';
|
|
11
|
+
import '../Link/BaseLink/index.js';
|
|
11
12
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
12
13
|
import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
|
|
13
14
|
import { Text } from '../Typography/Text/Text.js';
|
|
14
15
|
import CheckCircleIcon from '../Icons/CheckCircleIcon/CheckCircleIcon.js';
|
|
15
16
|
import { IconButton } from '../Button/IconButton/IconButton.js';
|
|
16
17
|
import CloseIcon from '../Icons/CloseIcon/CloseIcon.js';
|
|
18
|
+
import BaseLink from '../Link/BaseLink/BaseLink.js';
|
|
19
|
+
import RefreshIcon from '../Icons/RefreshIcon/RefreshIcon.js';
|
|
17
20
|
import EyeIcon from '../Icons/EyeIcon/EyeIcon.js';
|
|
18
21
|
import { Divider } from '../Divider/Divider.js';
|
|
19
22
|
import TrashIcon from '../Icons/TrashIcon/TrashIcon.js';
|
|
@@ -23,6 +26,7 @@ var FileUploadItem = /*#__PURE__*/memo(function (_ref) {
|
|
|
23
26
|
var file = _ref.file,
|
|
24
27
|
onPreview = _ref.onPreview,
|
|
25
28
|
onRemove = _ref.onRemove,
|
|
29
|
+
onReupload = _ref.onReupload,
|
|
26
30
|
onDismiss = _ref.onDismiss,
|
|
27
31
|
containerSize = _ref.size;
|
|
28
32
|
var name = file.name,
|
|
@@ -81,7 +85,7 @@ var FileUploadItem = /*#__PURE__*/memo(function (_ref) {
|
|
|
81
85
|
color: status === 'error' ? 'feedback.text.negative.intense' : 'surface.text.gray.muted',
|
|
82
86
|
children: errorText !== null && errorText !== void 0 ? errorText : "".concat((showSizeInKB ? sizeInKB : sizeInMB).toFixed(2), " ").concat(showSizeInKB ? 'KB' : 'MB', " ").concat(isUploading && uploadPercent ? "(".concat(uploadPercent, "%)") : '')
|
|
83
87
|
})]
|
|
84
|
-
}), status === '
|
|
88
|
+
}), status === 'uploading' ? /*#__PURE__*/jsx(BaseBox, {
|
|
85
89
|
children: /*#__PURE__*/jsx(IconButton, {
|
|
86
90
|
accessibilityLabel: "Remove File",
|
|
87
91
|
icon: CloseIcon,
|
|
@@ -91,6 +95,23 @@ var FileUploadItem = /*#__PURE__*/memo(function (_ref) {
|
|
|
91
95
|
});
|
|
92
96
|
}
|
|
93
97
|
})
|
|
98
|
+
}) : status === 'error' ? /*#__PURE__*/jsx(BaseBox, {
|
|
99
|
+
display: "flex",
|
|
100
|
+
flexDirection: "row",
|
|
101
|
+
alignItems: "center",
|
|
102
|
+
children: /*#__PURE__*/jsx(BaseLink, {
|
|
103
|
+
marginX: "spacing.1",
|
|
104
|
+
variant: "button",
|
|
105
|
+
icon: RefreshIcon,
|
|
106
|
+
color: "negative",
|
|
107
|
+
size: "small",
|
|
108
|
+
onClick: function onClick() {
|
|
109
|
+
onReupload === null || onReupload === void 0 ? void 0 : onReupload({
|
|
110
|
+
file: file
|
|
111
|
+
});
|
|
112
|
+
},
|
|
113
|
+
children: "Re-upload"
|
|
114
|
+
})
|
|
94
115
|
}) : /*#__PURE__*/jsx(BaseBox, {
|
|
95
116
|
display: "flex",
|
|
96
117
|
flexDirection: "row",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUploadItem.js","sources":["../../../../../../src/components/FileUpload/FileUploadItem.tsx"],"sourcesContent":["import { memo } from 'react';\nimport { StyledFileUploadItemWrapper } from './StyledFileUploadItemWrapper';\nimport type { FileUploadItemProps } from './types';\nimport { FileUploadItemIcon } from './FileUploadItemIcon';\nimport { TrashIcon, EyeIcon, CloseIcon, CheckCircleIcon } from '~components/Icons';\nimport { BaseBox } from '~components/Box/BaseBox';\nimport { Text } from '~components/Typography';\nimport { Divider } from '~components/Divider';\nimport { IconButton } from '~components/Button/IconButton';\nimport { ProgressBar } from '~components/ProgressBar';\nimport isUndefined from '~utils/lodashButBetter/isUndefined';\n\nconst FileUploadItem = memo(\n ({\n file,\n onPreview,\n onRemove,\n onDismiss,\n size: containerSize,\n }: FileUploadItemProps): React.ReactElement => {\n const { name, size, uploadPercent, errorText, status } = file;\n const isUploading = status === 'uploading';\n const sizeInKB = size / 1024;\n const sizeInMB = sizeInKB / 1024;\n const showSizeInKB = sizeInKB < 1024;\n\n return (\n <StyledFileUploadItemWrapper\n size={containerSize ?? 'medium'}\n status={status ?? 'success'}\n borderRadius=\"medium\"\n borderWidth=\"thin\"\n >\n <BaseBox width=\"100%\" display=\"flex\" flexDirection=\"column\">\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n margin={containerSize === 'large' ? 'spacing.4' : 'spacing.3'}\n >\n <BaseBox marginRight=\"spacing.3\">\n <FileUploadItemIcon fileName={name} uploadStatus={status} />\n </BaseBox>\n <BaseBox flexGrow={1}>\n <BaseBox alignItems=\"center\" display=\"flex\">\n <BaseBox alignItems=\"center\" maxWidth=\"70%\" display=\"flex\" marginRight=\"spacing.3\">\n <Text\n size=\"medium\"\n weight=\"medium\"\n color=\"surface.text.gray.subtle\"\n truncateAfterLines={1}\n >\n {name}\n </Text>\n </BaseBox>\n {status === 'success' && (\n <CheckCircleIcon\n size=\"medium\"\n marginRight=\"spacing.2\"\n color=\"interactive.icon.positive.normal\"\n />\n )}\n </BaseBox>\n <Text\n size=\"small\"\n weight=\"regular\"\n color={\n status === 'error' ? 'feedback.text.negative.intense' : 'surface.text.gray.muted'\n }\n >\n {errorText ??\n `${(showSizeInKB ? sizeInKB : sizeInMB).toFixed(2)} ${\n showSizeInKB ? 'KB' : 'MB'\n } ${isUploading && uploadPercent ? `(${uploadPercent}%)` : ''}`}\n </Text>\n </BaseBox>\n {status === 'error' || status === 'uploading' ? (\n <BaseBox>\n <IconButton\n accessibilityLabel=\"Remove File\"\n icon={CloseIcon}\n onClick={() => onDismiss?.({ file })}\n />\n </BaseBox>\n ) : (\n <BaseBox display=\"flex\" flexDirection=\"row\" alignItems=\"center\">\n {onPreview ? (\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n padding=\"spacing.0\"\n gap=\"spacing.3\"\n >\n <IconButton\n accessibilityLabel=\"Preview File\"\n icon={EyeIcon}\n onClick={() => onPreview?.({ file })}\n />\n <Divider orientation=\"vertical\" thickness=\"thinner\" variant=\"normal\" />\n <IconButton\n accessibilityLabel=\"Remove File\"\n icon={TrashIcon}\n onClick={() => onRemove?.({ file })}\n />\n </BaseBox>\n ) : (\n <IconButton\n accessibilityLabel=\"Remove File\"\n icon={TrashIcon}\n onClick={() => onRemove?.({ file })}\n />\n )}\n </BaseBox>\n )}\n </BaseBox>\n {isUploading && (\n <BaseBox width=\"100%\" position=\"absolute\" bottom=\"spacing.0\">\n <ProgressBar\n left=\"spacing.0\"\n showPercentage={false}\n value={uploadPercent ?? 0}\n isIndeterminate={isUndefined(uploadPercent)}\n />\n </BaseBox>\n )}\n </BaseBox>\n </StyledFileUploadItemWrapper>\n );\n },\n);\n\nexport { FileUploadItem };\n"],"names":["FileUploadItem","memo","_ref","file","onPreview","onRemove","onDismiss","containerSize","size","name","uploadPercent","errorText","status","isUploading","sizeInKB","sizeInMB","showSizeInKB","_jsx","StyledFileUploadItemWrapper","borderRadius","borderWidth","children","_jsxs","BaseBox","width","display","flexDirection","margin","marginRight","FileUploadItemIcon","fileName","uploadStatus","flexGrow","alignItems","maxWidth","Text","weight","color","truncateAfterLines","CheckCircleIcon","concat","toFixed","IconButton","accessibilityLabel","icon","CloseIcon","onClick","padding","gap","EyeIcon","Divider","orientation","thickness","variant","TrashIcon","position","bottom","ProgressBar","left","showPercentage","value","isIndeterminate","isUndefined"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FileUploadItem.js","sources":["../../../../../../src/components/FileUpload/FileUploadItem.tsx"],"sourcesContent":["import { memo } from 'react';\nimport { StyledFileUploadItemWrapper } from './StyledFileUploadItemWrapper';\nimport type { FileUploadItemProps } from './types';\nimport { FileUploadItemIcon } from './FileUploadItemIcon';\nimport { TrashIcon, EyeIcon, CloseIcon, CheckCircleIcon, RefreshIcon } from '~components/Icons';\nimport { BaseBox } from '~components/Box/BaseBox';\nimport { Text } from '~components/Typography';\nimport { Divider } from '~components/Divider';\nimport { IconButton } from '~components/Button/IconButton';\nimport { ProgressBar } from '~components/ProgressBar';\nimport isUndefined from '~utils/lodashButBetter/isUndefined';\nimport { BaseLink } from '~components/Link/BaseLink';\n\nconst FileUploadItem = memo(\n ({\n file,\n onPreview,\n onRemove,\n onReupload,\n onDismiss,\n size: containerSize,\n }: FileUploadItemProps): React.ReactElement => {\n const { name, size, uploadPercent, errorText, status } = file;\n const isUploading = status === 'uploading';\n const sizeInKB = size / 1024;\n const sizeInMB = sizeInKB / 1024;\n const showSizeInKB = sizeInKB < 1024;\n\n return (\n <StyledFileUploadItemWrapper\n size={containerSize ?? 'medium'}\n status={status ?? 'success'}\n borderRadius=\"medium\"\n borderWidth=\"thin\"\n >\n <BaseBox width=\"100%\" display=\"flex\" flexDirection=\"column\">\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n margin={containerSize === 'large' ? 'spacing.4' : 'spacing.3'}\n >\n <BaseBox marginRight=\"spacing.3\">\n <FileUploadItemIcon fileName={name} uploadStatus={status} />\n </BaseBox>\n <BaseBox flexGrow={1}>\n <BaseBox alignItems=\"center\" display=\"flex\">\n <BaseBox alignItems=\"center\" maxWidth=\"70%\" display=\"flex\" marginRight=\"spacing.3\">\n <Text\n size=\"medium\"\n weight=\"medium\"\n color=\"surface.text.gray.subtle\"\n truncateAfterLines={1}\n >\n {name}\n </Text>\n </BaseBox>\n {status === 'success' && (\n <CheckCircleIcon\n size=\"medium\"\n marginRight=\"spacing.2\"\n color=\"interactive.icon.positive.normal\"\n />\n )}\n </BaseBox>\n <Text\n size=\"small\"\n weight=\"regular\"\n color={\n status === 'error' ? 'feedback.text.negative.intense' : 'surface.text.gray.muted'\n }\n >\n {errorText ??\n `${(showSizeInKB ? sizeInKB : sizeInMB).toFixed(2)} ${\n showSizeInKB ? 'KB' : 'MB'\n } ${isUploading && uploadPercent ? `(${uploadPercent}%)` : ''}`}\n </Text>\n </BaseBox>\n {status === 'uploading' ? (\n <BaseBox>\n <IconButton\n accessibilityLabel=\"Remove File\"\n icon={CloseIcon}\n onClick={() => onDismiss?.({ file })}\n />\n </BaseBox>\n ) : status === 'error' ? (\n <BaseBox display=\"flex\" flexDirection=\"row\" alignItems=\"center\">\n <BaseLink\n marginX=\"spacing.1\"\n variant=\"button\"\n icon={RefreshIcon}\n color=\"negative\"\n size=\"small\"\n onClick={() => {\n onReupload?.({ file });\n }}\n >\n Re-upload\n </BaseLink>\n </BaseBox>\n ) : (\n <BaseBox display=\"flex\" flexDirection=\"row\" alignItems=\"center\">\n {onPreview ? (\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n padding=\"spacing.0\"\n gap=\"spacing.3\"\n >\n <IconButton\n accessibilityLabel=\"Preview File\"\n icon={EyeIcon}\n onClick={() => onPreview?.({ file })}\n />\n <Divider orientation=\"vertical\" thickness=\"thinner\" variant=\"normal\" />\n <IconButton\n accessibilityLabel=\"Remove File\"\n icon={TrashIcon}\n onClick={() => onRemove?.({ file })}\n />\n </BaseBox>\n ) : (\n <IconButton\n accessibilityLabel=\"Remove File\"\n icon={TrashIcon}\n onClick={() => onRemove?.({ file })}\n />\n )}\n </BaseBox>\n )}\n </BaseBox>\n {isUploading && (\n <BaseBox width=\"100%\" position=\"absolute\" bottom=\"spacing.0\">\n <ProgressBar\n left=\"spacing.0\"\n showPercentage={false}\n value={uploadPercent ?? 0}\n isIndeterminate={isUndefined(uploadPercent)}\n />\n </BaseBox>\n )}\n </BaseBox>\n </StyledFileUploadItemWrapper>\n );\n },\n);\n\nexport { FileUploadItem };\n"],"names":["FileUploadItem","memo","_ref","file","onPreview","onRemove","onReupload","onDismiss","containerSize","size","name","uploadPercent","errorText","status","isUploading","sizeInKB","sizeInMB","showSizeInKB","_jsx","StyledFileUploadItemWrapper","borderRadius","borderWidth","children","_jsxs","BaseBox","width","display","flexDirection","margin","marginRight","FileUploadItemIcon","fileName","uploadStatus","flexGrow","alignItems","maxWidth","Text","weight","color","truncateAfterLines","CheckCircleIcon","concat","toFixed","IconButton","accessibilityLabel","icon","CloseIcon","onClick","BaseLink","marginX","variant","RefreshIcon","padding","gap","EyeIcon","Divider","orientation","thickness","TrashIcon","position","bottom","ProgressBar","left","showPercentage","value","isIndeterminate","isUndefined"],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ var StyledFileUploadItemWrapper = /*#__PURE__*/styled(BaseBox).withConfig({
|
|
|
27
27
|
display: 'flex',
|
|
28
28
|
justifyContent: 'space-between',
|
|
29
29
|
borderStyle: 'solid',
|
|
30
|
-
|
|
30
|
+
minHeight: makeSize(fileUploadHeightTokens[size]),
|
|
31
31
|
width: '100%',
|
|
32
32
|
backgroundColor: getIn(theme.colors, fileUploadItemBackgroundColors[status]["default"]),
|
|
33
33
|
transitionProperty: 'background-color',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StyledFileUploadItemWrapper.js","sources":["../../../../../../src/components/FileUpload/StyledFileUploadItemWrapper.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport type { StyledFileUploadItemWrapperProps } from './types';\nimport {\n fileUploadItemBackgroundColors,\n fileUploadMotionTokens,\n fileUploadHeightTokens,\n} from './fileUploadTokens';\nimport getIn from '~utils/lodashButBetter/get';\nimport BaseBox from '~components/Box/BaseBox';\nimport { makeMotionTime } from '~utils/makeMotionTime';\nimport { castWebType, makeSize } from '~utils';\n\nconst StyledFileUploadItemWrapper = styled(BaseBox)<StyledFileUploadItemWrapperProps>(\n ({ theme, status, size }) => {\n const easing = getIn(theme.motion, fileUploadMotionTokens.easing);\n const duration = castWebType(\n makeMotionTime(getIn(theme.motion, fileUploadMotionTokens.duration)),\n );\n\n return {\n position: 'relative',\n overflow: 'hidden',\n display: 'flex',\n justifyContent: 'space-between',\n borderStyle: 'solid',\n
|
|
1
|
+
{"version":3,"file":"StyledFileUploadItemWrapper.js","sources":["../../../../../../src/components/FileUpload/StyledFileUploadItemWrapper.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport type { StyledFileUploadItemWrapperProps } from './types';\nimport {\n fileUploadItemBackgroundColors,\n fileUploadMotionTokens,\n fileUploadHeightTokens,\n} from './fileUploadTokens';\nimport getIn from '~utils/lodashButBetter/get';\nimport BaseBox from '~components/Box/BaseBox';\nimport { makeMotionTime } from '~utils/makeMotionTime';\nimport { castWebType, makeSize } from '~utils';\n\nconst StyledFileUploadItemWrapper = styled(BaseBox)<StyledFileUploadItemWrapperProps>(\n ({ theme, status, size }) => {\n const easing = getIn(theme.motion, fileUploadMotionTokens.easing);\n const duration = castWebType(\n makeMotionTime(getIn(theme.motion, fileUploadMotionTokens.duration)),\n );\n\n return {\n position: 'relative',\n overflow: 'hidden',\n display: 'flex',\n justifyContent: 'space-between',\n borderStyle: 'solid',\n minHeight: makeSize(fileUploadHeightTokens[size]),\n width: '100%',\n backgroundColor: getIn(theme.colors, fileUploadItemBackgroundColors[status].default),\n transitionProperty: 'background-color',\n transitionTimingFunction: easing,\n transitionDuration: duration,\n borderColor: theme.colors.interactive.border.neutral.faded,\n wordBreak: 'break-all',\n\n ...(status !== 'uploading' && {\n '&:hover': {\n backgroundColor: getIn(theme.colors, fileUploadItemBackgroundColors[status].hover),\n },\n }),\n };\n },\n);\n\nexport { StyledFileUploadItemWrapper };\n"],"names":["StyledFileUploadItemWrapper","styled","BaseBox","withConfig","displayName","componentId","_ref","theme","status","size","easing","getIn","motion","fileUploadMotionTokens","duration","castWebType","makeMotionTime","_objectSpread","position","overflow","display","justifyContent","borderStyle","minHeight","makeSize","fileUploadHeightTokens","width","backgroundColor","colors","fileUploadItemBackgroundColors","transitionProperty","transitionTimingFunction","transitionDuration","borderColor","interactive","border","neutral","faded","wordBreak","hover"],"mappings":";;;;;;;;;;;;;;AAYA,IAAMA,2BAA2B,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,6BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CACjD,CAAA,CAAA,UAAAC,IAAA,EAA6B;AAAA,EAAA,IAA1BC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM;IAAEC,IAAI,GAAAH,IAAA,CAAJG,IAAI,CAAA;EACpB,IAAMC,MAAM,GAAGC,KAAK,CAACJ,KAAK,CAACK,MAAM,EAAEC,sBAAsB,CAACH,MAAM,CAAC,CAAA;AACjE,EAAA,IAAMI,QAAQ,GAAGC,WAAW,CAC1BC,cAAc,CAACL,KAAK,CAACJ,KAAK,CAACK,MAAM,EAAEC,sBAAsB,CAACC,QAAQ,CAAC,CACrE,CAAC,CAAA;AAED,EAAA,OAAAG,aAAA,CAAA;AACEC,IAAAA,QAAQ,EAAE,UAAU;AACpBC,IAAAA,QAAQ,EAAE,QAAQ;AAClBC,IAAAA,OAAO,EAAE,MAAM;AACfC,IAAAA,cAAc,EAAE,eAAe;AAC/BC,IAAAA,WAAW,EAAE,OAAO;AACpBC,IAAAA,SAAS,EAAEC,QAAQ,CAACC,sBAAsB,CAAChB,IAAI,CAAC,CAAC;AACjDiB,IAAAA,KAAK,EAAE,MAAM;AACbC,IAAAA,eAAe,EAAEhB,KAAK,CAACJ,KAAK,CAACqB,MAAM,EAAEC,8BAA8B,CAACrB,MAAM,CAAC,CAAA,SAAA,CAAQ,CAAC;AACpFsB,IAAAA,kBAAkB,EAAE,kBAAkB;AACtCC,IAAAA,wBAAwB,EAAErB,MAAM;AAChCsB,IAAAA,kBAAkB,EAAElB,QAAQ;IAC5BmB,WAAW,EAAE1B,KAAK,CAACqB,MAAM,CAACM,WAAW,CAACC,MAAM,CAACC,OAAO,CAACC,KAAK;AAC1DC,IAAAA,SAAS,EAAE,WAAA;GAEP9B,EAAAA,MAAM,KAAK,WAAW,IAAI;AAC5B,IAAA,SAAS,EAAE;AACTmB,MAAAA,eAAe,EAAEhB,KAAK,CAACJ,KAAK,CAACqB,MAAM,EAAEC,8BAA8B,CAACrB,MAAM,CAAC,CAAC+B,KAAK,CAAA;AACnF,KAAA;GACD,CAAA,CAAA;AAEL,CAAC;;;;"}
|
|
@@ -2,7 +2,7 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
|
2
2
|
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
3
3
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
4
4
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
5
|
-
import { useState, useMemo, useCallback, forwardRef } from 'react';
|
|
5
|
+
import { useRef, useState, useMemo, useCallback, forwardRef } from 'react';
|
|
6
6
|
import { StyledFileUploadWrapper } from './StyledFileUploadWrapper.js';
|
|
7
7
|
import { fileUploadColorTokens, getFileUploadInputHoverTokens, fileUploadLinkBorderTokens } from './fileUploadTokens.js';
|
|
8
8
|
import { FileUploadItem } from './FileUploadItem.js';
|
|
@@ -22,6 +22,7 @@ import '../Typography/index.js';
|
|
|
22
22
|
import { getHintType } from '../Input/BaseInput/BaseInput.js';
|
|
23
23
|
import '../../utils/makeAccessible/index.js';
|
|
24
24
|
import { formHintLeftLabelMarginLeft } from '../Input/BaseInput/baseInputTokens.js';
|
|
25
|
+
import { useMergeRefs } from '../../utils/useMergeRefs.js';
|
|
25
26
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
26
27
|
import useTheme from '../BladeProvider/useTheme.js';
|
|
27
28
|
import { makeAccessible } from '../../utils/makeAccessible/makeAccessible.web.js';
|
|
@@ -37,7 +38,7 @@ import { Text } from '../Typography/Text/Text.js';
|
|
|
37
38
|
import { FormHint } from '../Form/FormHint.js';
|
|
38
39
|
import { assignWithoutSideEffects } from '../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
|
|
39
40
|
|
|
40
|
-
var _excluded = ["name", "accept", "uploadType", "onChange", "onPreview", "onRemove", "onDismiss", "onDrop", "isDisabled", "isRequired", "necessityIndicator", "fileList", "testID", "label", "labelPosition", "accessibilityLabel", "validationState", "helpText", "errorText", "maxCount", "maxSize", "size"];
|
|
41
|
+
var _excluded = ["name", "accept", "uploadType", "onChange", "onPreview", "onRemove", "onReupload", "onDismiss", "onDrop", "isDisabled", "isRequired", "necessityIndicator", "fileList", "testID", "label", "labelPosition", "accessibilityLabel", "validationState", "helpText", "errorText", "maxCount", "maxSize", "size"];
|
|
41
42
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
42
43
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
43
44
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
@@ -51,6 +52,7 @@ var _FileUpload = function _FileUpload(_ref, ref) {
|
|
|
51
52
|
onChange = _ref.onChange,
|
|
52
53
|
onPreview = _ref.onPreview,
|
|
53
54
|
_onRemove = _ref.onRemove,
|
|
55
|
+
_onReupload = _ref.onReupload,
|
|
54
56
|
_onDismiss = _ref.onDismiss,
|
|
55
57
|
onDrop = _ref.onDrop,
|
|
56
58
|
isDisabled = _ref.isDisabled,
|
|
@@ -70,6 +72,8 @@ var _FileUpload = function _FileUpload(_ref, ref) {
|
|
|
70
72
|
_ref$size = _ref.size,
|
|
71
73
|
size = _ref$size === void 0 ? 'medium' : _ref$size,
|
|
72
74
|
styledProps = _objectWithoutProperties(_ref, _excluded);
|
|
75
|
+
var inputRef = useRef(null);
|
|
76
|
+
var mergedRef = useMergeRefs(ref, inputRef);
|
|
73
77
|
var _useTheme = useTheme(),
|
|
74
78
|
platform = _useTheme.platform;
|
|
75
79
|
var _useState = useState(fileList !== null && fileList !== void 0 ? fileList : []),
|
|
@@ -283,7 +287,7 @@ var _FileUpload = function _FileUpload(_ref, ref) {
|
|
|
283
287
|
return setIsActive(false);
|
|
284
288
|
}
|
|
285
289
|
}, accessibilityProps),
|
|
286
|
-
ref:
|
|
290
|
+
ref: mergedRef
|
|
287
291
|
}), /*#__PURE__*/jsx(Box, {
|
|
288
292
|
display: "flex",
|
|
289
293
|
justifyContent: "center",
|
|
@@ -321,12 +325,34 @@ var _FileUpload = function _FileUpload(_ref, ref) {
|
|
|
321
325
|
file: selectedFiles[0]
|
|
322
326
|
});
|
|
323
327
|
},
|
|
324
|
-
|
|
328
|
+
onReupload: function onReupload() {
|
|
329
|
+
var _inputRef$current;
|
|
325
330
|
var newFiles = selectedFiles.filter(function (_ref3) {
|
|
326
331
|
var id = _ref3.id;
|
|
327
332
|
return id !== selectedFiles[0].id;
|
|
328
333
|
});
|
|
329
334
|
setSelectedFiles(newFiles);
|
|
335
|
+
(_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.click();
|
|
336
|
+
|
|
337
|
+
// TODO - Remove this in the next major release
|
|
338
|
+
// Fallback to onRemove if onReupload isn't provided to avoid breaking changes in the API
|
|
339
|
+
if (_onReupload) {
|
|
340
|
+
_onReupload({
|
|
341
|
+
file: selectedFiles[0]
|
|
342
|
+
});
|
|
343
|
+
} else {
|
|
344
|
+
_onRemove === null || _onRemove === void 0 ? void 0 : _onRemove({
|
|
345
|
+
file: selectedFiles[0]
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
setIsActive(false);
|
|
349
|
+
},
|
|
350
|
+
onDismiss: function onDismiss() {
|
|
351
|
+
var newFiles = selectedFiles.filter(function (_ref4) {
|
|
352
|
+
var id = _ref4.id;
|
|
353
|
+
return id !== selectedFiles[0].id;
|
|
354
|
+
});
|
|
355
|
+
setSelectedFiles(newFiles);
|
|
330
356
|
_onDismiss === null || _onDismiss === void 0 ? void 0 : _onDismiss({
|
|
331
357
|
file: selectedFiles[0]
|
|
332
358
|
});
|
|
@@ -360,8 +386,8 @@ var _FileUpload = function _FileUpload(_ref, ref) {
|
|
|
360
386
|
file: file,
|
|
361
387
|
size: size,
|
|
362
388
|
onRemove: function onRemove() {
|
|
363
|
-
var newFiles = selectedFiles.filter(function (
|
|
364
|
-
var id =
|
|
389
|
+
var newFiles = selectedFiles.filter(function (_ref5) {
|
|
390
|
+
var id = _ref5.id;
|
|
365
391
|
return id !== file.id;
|
|
366
392
|
});
|
|
367
393
|
setSelectedFiles(newFiles);
|
|
@@ -369,9 +395,30 @@ var _FileUpload = function _FileUpload(_ref, ref) {
|
|
|
369
395
|
file: file
|
|
370
396
|
});
|
|
371
397
|
},
|
|
398
|
+
onReupload: function onReupload() {
|
|
399
|
+
var _inputRef$current2;
|
|
400
|
+
var newFiles = selectedFiles.filter(function (_ref6) {
|
|
401
|
+
var id = _ref6.id;
|
|
402
|
+
return id !== file.id;
|
|
403
|
+
});
|
|
404
|
+
setSelectedFiles(newFiles);
|
|
405
|
+
(_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.click();
|
|
406
|
+
// TODO - Remove this in the next major release
|
|
407
|
+
// Fallback to onRemove if onReupload isn't provided to avoid breaking changes in the API
|
|
408
|
+
if (_onReupload) {
|
|
409
|
+
_onReupload({
|
|
410
|
+
file: selectedFiles[0]
|
|
411
|
+
});
|
|
412
|
+
} else {
|
|
413
|
+
_onRemove === null || _onRemove === void 0 ? void 0 : _onRemove({
|
|
414
|
+
file: selectedFiles[0]
|
|
415
|
+
});
|
|
416
|
+
}
|
|
417
|
+
setIsActive(false);
|
|
418
|
+
},
|
|
372
419
|
onDismiss: function onDismiss() {
|
|
373
|
-
var newFiles = selectedFiles.filter(function (
|
|
374
|
-
var id =
|
|
420
|
+
var newFiles = selectedFiles.filter(function (_ref7) {
|
|
421
|
+
var id = _ref7.id;
|
|
375
422
|
return id !== file.id;
|
|
376
423
|
});
|
|
377
424
|
setSelectedFiles(newFiles);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUpload.web.js","sources":["../../../../../../src/components/FileUpload/FileUpload.web.tsx"],"sourcesContent":["import { useState, useCallback, useMemo, forwardRef } from 'react';\nimport type { FileUploadProps, BladeFile, BladeFileList } from './types';\nimport { StyledFileUploadWrapper } from './StyledFileUploadWrapper';\nimport {\n fileUploadColorTokens,\n fileUploadLinkBorderTokens,\n getFileUploadInputHoverTokens,\n} from './fileUploadTokens';\nimport { FileUploadItem } from './FileUploadItem';\nimport { isFileAccepted } from './isFileAccepted';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Box } from '~components/Box';\nimport { SelectorLabel } from '~components/Form/Selector/SelectorLabel';\nimport { SelectorInput } from '~components/Form/Selector/SelectorInput';\nimport { screenReaderStyles } from '~components/VisuallyHidden';\nimport { FormHint, FormLabel } from '~components/Form';\nimport { useFormId } from '~components/Form/useFormId';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { makeSize, useTheme } from '~utils';\nimport { Text } from '~components/Typography';\nimport type { BladeElementRef } from '~utils/types';\nimport { getHintType } from '~components/Input/BaseInput/BaseInput';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { formHintLeftLabelMarginLeft } from '~components/Input/BaseInput/baseInputTokens';\n\nconst _FileUpload: React.ForwardRefRenderFunction<BladeElementRef, FileUploadProps> = (\n {\n name,\n accept,\n uploadType = 'single',\n onChange,\n onPreview,\n onRemove,\n onDismiss,\n onDrop,\n isDisabled,\n isRequired,\n necessityIndicator,\n fileList,\n testID,\n label,\n labelPosition = 'top',\n accessibilityLabel,\n validationState,\n helpText,\n errorText,\n maxCount,\n maxSize,\n size = 'medium',\n ...styledProps\n },\n ref,\n): React.ReactElement => {\n const { platform } = useTheme();\n const [selectedFiles, setSelectedFiles] = useState<BladeFileList>(fileList ?? []);\n const [errorMessage, setErrorMessage] = useState(errorText);\n const [internalValidationState, setInternalValidationState] = useState('none');\n const [isActive, setIsActive] = useState(false);\n\n const isMultiple = uploadType === 'multiple';\n const isOneFileSelectedWithSingleUpload = !isMultiple && selectedFiles.length === 1;\n const inputLabelPosition = platform === 'onMobile' ? 'top' : labelPosition;\n const isLabelLeftPositioned = inputLabelPosition === 'left';\n const willRenderHintText = Boolean(helpText) || Boolean(errorMessage);\n\n const showError = validationState === 'error' || internalValidationState === 'error';\n const showHelpText = !showError && helpText;\n const accessibilityText =\n accessibilityLabel ?? `,${showError ? errorText : ''} ${showHelpText ? helpText : ''}`;\n const { inputId, labelId, helpTextId, errorTextId } = useFormId('fileuploadinput');\n\n const accessibilityProps = makeAccessible({\n required: Boolean(isRequired),\n invalid: Boolean(showError),\n disabled: Boolean(isDisabled),\n describedBy: labelId,\n });\n\n // In control mode attach a unique id to each file if not provided\n useMemo(() => {\n for (const file of selectedFiles) {\n if (!file.id) {\n file.id = `${new Date().getTime().toString()}${Math.floor(Math.random() * 1000000)}`;\n }\n }\n }, [selectedFiles]);\n\n const handleFilesChange = useCallback((inputFiles: BladeFileList) => {\n setSelectedFiles((prevFiles) => {\n if (prevFiles.length > 0) {\n const allFiles = [...prevFiles, ...inputFiles];\n return allFiles;\n }\n\n return inputFiles;\n });\n }, []);\n\n const validateFiles = (inputFiles: BladeFileList, allFiles: BladeFileList): boolean => {\n if (accept && inputFiles.some((file) => !isFileAccepted(file, accept))) {\n setErrorMessage(`You provided an unsupported file type. Supported file types are: ${accept}`);\n setInternalValidationState('error');\n return true;\n }\n\n if (uploadType === 'single' && inputFiles.length > 1) {\n setErrorMessage('You can upload only one file.');\n setInternalValidationState('error');\n return true;\n }\n\n if (maxCount && allFiles.length > maxCount) {\n setErrorMessage(`You can't upload more than ${maxCount} files.`);\n setInternalValidationState('error');\n return true;\n }\n\n if (maxSize && inputFiles.some((file) => file.size > maxSize)) {\n setErrorMessage('File size exceeded.');\n setInternalValidationState('error');\n return true;\n }\n\n setInternalValidationState('none');\n setErrorMessage('');\n return false;\n };\n\n const handleDragOver = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(true);\n };\n\n const handleDragLeave = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(false);\n };\n\n const handleDrop = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(false);\n\n const droppedFiles = Array.from(event.dataTransfer.files);\n const allFiles = selectedFiles.length > 0 ? [...selectedFiles, ...droppedFiles] : droppedFiles;\n\n const hasValidationErrors = validateFiles(droppedFiles, allFiles);\n\n if (!hasValidationErrors) {\n handleFilesChange(droppedFiles);\n onDrop?.({ name, fileList: allFiles });\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n const inputFiles = Array.from(event.target.files ?? []);\n const allFiles = selectedFiles.length > 0 ? [...selectedFiles, ...inputFiles] : inputFiles;\n\n const hasValidationErrors = validateFiles(inputFiles, allFiles);\n\n if (!hasValidationErrors) {\n handleFilesChange(inputFiles);\n onChange?.({ name, fileList: allFiles });\n }\n\n // Reset the input value to allow re-selecting the same file\n event.target.value = '';\n };\n\n return (\n <BaseBox\n display=\"flex\"\n flexDirection=\"column\"\n width=\"100%\"\n {...metaAttribute({ name: MetaConstants.FileUpload, testID })}\n {...getStyledProps(styledProps)}\n >\n <BaseBox\n display=\"flex\"\n flexDirection={isLabelLeftPositioned ? 'row' : 'column'}\n alignItems={isLabelLeftPositioned ? 'center' : undefined}\n position=\"relative\"\n width=\"100%\"\n >\n {label ? (\n <FormLabel\n size={size}\n as=\"span\"\n necessityIndicator={necessityIndicator}\n position={labelPosition}\n id={labelId}\n accessibilityText={accessibilityText}\n >\n {label}\n </FormLabel>\n ) : null}\n\n <SelectorLabel\n componentName={MetaConstants.FileUploadLabel}\n inputProps={{}}\n style={{\n cursor: isDisabled ? 'not-allowed' : 'pointer',\n width: '100%',\n }}\n >\n <BaseBox\n display=\"flex\"\n flexDirection=\"column\"\n width=\"100%\"\n marginBottom={willRenderHintText ? 'spacing.0' : 'spacing.5'}\n >\n <StyledFileUploadWrapper\n size={size}\n isDisabled={isDisabled}\n isActive={isActive}\n display=\"flex\"\n flexDirection=\"row\"\n justifyContent=\"center\"\n alignItems=\"center\"\n borderRadius=\"medium\"\n borderWidth=\"thin\"\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n onClick={() => setIsActive(true)}\n data-comp=\"f\"\n style={{\n ...(isOneFileSelectedWithSingleUpload ? screenReaderStyles : {}),\n }}\n >\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n flexDirection={{ base: 'column', s: 'row' }}\n gap={makeSize(6)}\n padding=\"spacing.3\"\n >\n <Text\n color={\n isDisabled\n ? fileUploadColorTokens.text.disabled\n : fileUploadColorTokens.text.default\n }\n >\n Drag files here or{' '}\n </Text>\n <SelectorInput\n id={inputId}\n hoverTokens={getFileUploadInputHoverTokens()}\n isChecked={false}\n isDisabled={isDisabled}\n inputProps={{\n name,\n type: 'file',\n onChange: handleInputChange,\n multiple: isMultiple,\n required: isRequired,\n disabled: isDisabled,\n accept,\n onBlur: () => setIsActive(false),\n ...accessibilityProps,\n }}\n ref={ref}\n />\n\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n flexDirection={{ base: 'column', s: 'row' }}\n borderRadius=\"small\"\n >\n <Box\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n borderBottomColor={\n fileUploadLinkBorderTokens.color[isDisabled ? 'disabled' : 'default']\n }\n borderBottomWidth={fileUploadLinkBorderTokens.width.default}\n >\n <Text\n color={\n isDisabled\n ? fileUploadColorTokens.link.disabled\n : fileUploadColorTokens.link.default\n }\n >\n Upload\n </Text>\n </Box>\n </Box>\n </Box>\n </StyledFileUploadWrapper>\n </BaseBox>\n </SelectorLabel>\n {isOneFileSelectedWithSingleUpload && (\n <FileUploadItem\n file={selectedFiles[0]}\n size={size}\n onRemove={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(newFiles);\n onRemove?.({ file: selectedFiles[0] });\n }}\n onDismiss={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(newFiles);\n onDismiss?.({ file: selectedFiles[0] });\n }}\n onPreview={onPreview}\n />\n )}\n </BaseBox>\n {willRenderHintText && (\n <BaseBox\n marginLeft={makeSize(\n label && isLabelLeftPositioned ? formHintLeftLabelMarginLeft[size] : 0,\n )}\n marginBottom=\"spacing.5\"\n >\n <BaseBox display=\"flex\" flexDirection=\"row\" justifyContent=\"'space-between\">\n <FormHint\n size={size}\n type={getHintType({\n validationState: showError ? 'error' : validationState,\n hasHelpText: Boolean(helpText),\n })}\n helpText={helpText}\n errorText={errorMessage}\n helpTextId={helpTextId}\n errorTextId={errorTextId}\n />\n </BaseBox>\n </BaseBox>\n )}\n {!isOneFileSelectedWithSingleUpload &&\n selectedFiles.map((file) => (\n <BaseBox\n key={file.id}\n marginLeft={makeSize(\n label && isLabelLeftPositioned ? formHintLeftLabelMarginLeft[size] : 0,\n )}\n marginBottom=\"spacing.3\"\n >\n <FileUploadItem\n file={file}\n size={size}\n onRemove={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(newFiles);\n onRemove?.({ file });\n }}\n onDismiss={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(newFiles);\n onDismiss?.({ file });\n }}\n onPreview={onPreview}\n />\n </BaseBox>\n ))}\n </BaseBox>\n );\n};\n\n/**\n * ### FileUpload Component\n * \n * The FileUpload component is used to handle file attachments, including the drag-and-drop interaction.\n * Primarily, it is used to upload files to a server or to display a list of uploaded files.\n * \n * ---\n * \n * #### Usage\n * \n * ```jsx\n const GSTForm = () => {\n const [selectedFile, setSelectedFile] = useState<BladeFile>();\n const [isLoading, setIsLoading] = useState(false);\n \n return (\n <Box>\n <Heading marginBottom=\"spacing.4\">Add GST Details</Heading>\n <form encType=\"multipart/form-data\" onSubmit={handleSubmit}>\n <FileUpload\n uploadType=\"single\"\n label=\"Upload GST\"\n helpText=\"Upload .jpg, .jpeg, or .png file only\"\n accept=\".jpg, .jpeg, .png\"\n onChange={({ fileList }) => {\n setSelectedFile(fileList[0]);\n }}\n onDrop={({ fileList }) => {\n setSelectedFile(fileList[0]);\n }}\n isRequired\n necessityIndicator=\"required\"\n />\n <Button type=\"submit\" variant=\"primary\">\n Submit\n </Button>\n {isLoading && (\n <ProgressBar isIndeterminate label=\"Uploading your GST Certificate...\" />\n )}\n </form>\n </Box>\n );\n }\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-fileupload FileUpload Documentation}\n * \n */\nconst FileUpload = assignWithoutSideEffects(forwardRef(_FileUpload), {\n displayName: 'FileUpload',\n componentId: 'FileUpload',\n});\n\nexport { FileUpload };\nexport type { BladeFile, BladeFileList, FileUploadProps };\n"],"names":["_FileUpload","_ref","ref","name","accept","_ref$uploadType","uploadType","onChange","onPreview","onRemove","onDismiss","onDrop","isDisabled","isRequired","necessityIndicator","fileList","testID","label","_ref$labelPosition","labelPosition","accessibilityLabel","validationState","helpText","errorText","maxCount","maxSize","_ref$size","size","styledProps","_objectWithoutProperties","_excluded","_useTheme","useTheme","platform","_useState","useState","_useState2","_slicedToArray","selectedFiles","setSelectedFiles","_useState3","_useState4","errorMessage","setErrorMessage","_useState5","_useState6","internalValidationState","setInternalValidationState","_useState7","_useState8","isActive","setIsActive","isMultiple","isOneFileSelectedWithSingleUpload","length","inputLabelPosition","isLabelLeftPositioned","willRenderHintText","Boolean","showError","showHelpText","accessibilityText","concat","_useFormId","useFormId","inputId","labelId","helpTextId","errorTextId","accessibilityProps","makeAccessible","required","invalid","disabled","describedBy","useMemo","_iterator","_createForOfIteratorHelper","_step","s","n","done","file","value","id","Date","getTime","toString","Math","floor","random","err","e","f","handleFilesChange","useCallback","inputFiles","prevFiles","allFiles","_toConsumableArray","validateFiles","some","isFileAccepted","handleDragOver","event","preventDefault","handleDragLeave","handleDrop","droppedFiles","Array","from","dataTransfer","files","hasValidationErrors","handleInputChange","_event$target$files","target","_jsxs","BaseBox","_objectSpread","display","flexDirection","width","metaAttribute","MetaConstants","FileUpload","getStyledProps","children","alignItems","undefined","position","_jsx","FormLabel","as","SelectorLabel","componentName","FileUploadLabel","inputProps","style","cursor","marginBottom","StyledFileUploadWrapper","justifyContent","borderRadius","borderWidth","onDragOver","onDragLeave","onClick","screenReaderStyles","Box","base","gap","makeSize","padding","Text","color","fileUploadColorTokens","text","SelectorInput","hoverTokens","getFileUploadInputHoverTokens","isChecked","type","multiple","onBlur","borderBottomColor","fileUploadLinkBorderTokens","borderBottomWidth","link","FileUploadItem","newFiles","filter","_ref2","_ref3","marginLeft","formHintLeftLabelMarginLeft","FormHint","getHintType","hasHelpText","map","_ref4","_ref5","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FileUpload.web.js","sources":["../../../../../../src/components/FileUpload/FileUpload.web.tsx"],"sourcesContent":["import { useState, useCallback, useMemo, useRef, forwardRef } from 'react';\nimport type { FileUploadProps, BladeFile, BladeFileList } from './types';\nimport { StyledFileUploadWrapper } from './StyledFileUploadWrapper';\nimport {\n fileUploadColorTokens,\n fileUploadLinkBorderTokens,\n getFileUploadInputHoverTokens,\n} from './fileUploadTokens';\nimport { FileUploadItem } from './FileUploadItem';\nimport { isFileAccepted } from './isFileAccepted';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Box } from '~components/Box';\nimport { SelectorLabel } from '~components/Form/Selector/SelectorLabel';\nimport { SelectorInput } from '~components/Form/Selector/SelectorInput';\nimport { screenReaderStyles } from '~components/VisuallyHidden';\nimport { FormHint, FormLabel } from '~components/Form';\nimport { useFormId } from '~components/Form/useFormId';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { makeSize, useTheme } from '~utils';\nimport { Text } from '~components/Typography';\nimport type { BladeElementRef } from '~utils/types';\nimport { getHintType } from '~components/Input/BaseInput/BaseInput';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { formHintLeftLabelMarginLeft } from '~components/Input/BaseInput/baseInputTokens';\nimport { useMergeRefs } from '~utils/useMergeRefs';\n\nconst _FileUpload: React.ForwardRefRenderFunction<BladeElementRef, FileUploadProps> = (\n {\n name,\n accept,\n uploadType = 'single',\n onChange,\n onPreview,\n onRemove,\n onReupload,\n onDismiss,\n onDrop,\n isDisabled,\n isRequired,\n necessityIndicator,\n fileList,\n testID,\n label,\n labelPosition = 'top',\n accessibilityLabel,\n validationState,\n helpText,\n errorText,\n maxCount,\n maxSize,\n size = 'medium',\n ...styledProps\n },\n ref,\n): React.ReactElement => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const mergedRef = useMergeRefs(ref, inputRef);\n const { platform } = useTheme();\n const [selectedFiles, setSelectedFiles] = useState<BladeFileList>(fileList ?? []);\n const [errorMessage, setErrorMessage] = useState(errorText);\n const [internalValidationState, setInternalValidationState] = useState('none');\n const [isActive, setIsActive] = useState(false);\n\n const isMultiple = uploadType === 'multiple';\n const isOneFileSelectedWithSingleUpload = !isMultiple && selectedFiles.length === 1;\n const inputLabelPosition = platform === 'onMobile' ? 'top' : labelPosition;\n const isLabelLeftPositioned = inputLabelPosition === 'left';\n const willRenderHintText = Boolean(helpText) || Boolean(errorMessage);\n\n const showError = validationState === 'error' || internalValidationState === 'error';\n const showHelpText = !showError && helpText;\n const accessibilityText =\n accessibilityLabel ?? `,${showError ? errorText : ''} ${showHelpText ? helpText : ''}`;\n const { inputId, labelId, helpTextId, errorTextId } = useFormId('fileuploadinput');\n\n const accessibilityProps = makeAccessible({\n required: Boolean(isRequired),\n invalid: Boolean(showError),\n disabled: Boolean(isDisabled),\n describedBy: labelId,\n });\n\n // In control mode attach a unique id to each file if not provided\n useMemo(() => {\n for (const file of selectedFiles) {\n if (!file.id) {\n file.id = `${new Date().getTime().toString()}${Math.floor(Math.random() * 1000000)}`;\n }\n }\n }, [selectedFiles]);\n\n const handleFilesChange = useCallback((inputFiles: BladeFileList) => {\n setSelectedFiles((prevFiles) => {\n if (prevFiles.length > 0) {\n const allFiles = [...prevFiles, ...inputFiles];\n return allFiles;\n }\n\n return inputFiles;\n });\n }, []);\n\n const validateFiles = (inputFiles: BladeFileList, allFiles: BladeFileList): boolean => {\n if (accept && inputFiles.some((file) => !isFileAccepted(file, accept))) {\n setErrorMessage(`You provided an unsupported file type. Supported file types are: ${accept}`);\n setInternalValidationState('error');\n return true;\n }\n\n if (uploadType === 'single' && inputFiles.length > 1) {\n setErrorMessage('You can upload only one file.');\n setInternalValidationState('error');\n return true;\n }\n\n if (maxCount && allFiles.length > maxCount) {\n setErrorMessage(`You can't upload more than ${maxCount} files.`);\n setInternalValidationState('error');\n return true;\n }\n\n if (maxSize && inputFiles.some((file) => file.size > maxSize)) {\n setErrorMessage('File size exceeded.');\n setInternalValidationState('error');\n return true;\n }\n\n setInternalValidationState('none');\n setErrorMessage('');\n return false;\n };\n\n const handleDragOver = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(true);\n };\n\n const handleDragLeave = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(false);\n };\n\n const handleDrop = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(false);\n\n const droppedFiles = Array.from(event.dataTransfer.files);\n const allFiles = selectedFiles.length > 0 ? [...selectedFiles, ...droppedFiles] : droppedFiles;\n\n const hasValidationErrors = validateFiles(droppedFiles, allFiles);\n\n if (!hasValidationErrors) {\n handleFilesChange(droppedFiles);\n onDrop?.({ name, fileList: allFiles });\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n const inputFiles = Array.from(event.target.files ?? []);\n const allFiles = selectedFiles.length > 0 ? [...selectedFiles, ...inputFiles] : inputFiles;\n\n const hasValidationErrors = validateFiles(inputFiles, allFiles);\n\n if (!hasValidationErrors) {\n handleFilesChange(inputFiles);\n onChange?.({ name, fileList: allFiles });\n }\n\n // Reset the input value to allow re-selecting the same file\n event.target.value = '';\n };\n\n return (\n <BaseBox\n display=\"flex\"\n flexDirection=\"column\"\n width=\"100%\"\n {...metaAttribute({ name: MetaConstants.FileUpload, testID })}\n {...getStyledProps(styledProps)}\n >\n <BaseBox\n display=\"flex\"\n flexDirection={isLabelLeftPositioned ? 'row' : 'column'}\n alignItems={isLabelLeftPositioned ? 'center' : undefined}\n position=\"relative\"\n width=\"100%\"\n >\n {label ? (\n <FormLabel\n size={size}\n as=\"span\"\n necessityIndicator={necessityIndicator}\n position={labelPosition}\n id={labelId}\n accessibilityText={accessibilityText}\n >\n {label}\n </FormLabel>\n ) : null}\n\n <SelectorLabel\n componentName={MetaConstants.FileUploadLabel}\n inputProps={{}}\n style={{\n cursor: isDisabled ? 'not-allowed' : 'pointer',\n width: '100%',\n }}\n >\n <BaseBox\n display=\"flex\"\n flexDirection=\"column\"\n width=\"100%\"\n marginBottom={willRenderHintText ? 'spacing.0' : 'spacing.5'}\n >\n <StyledFileUploadWrapper\n size={size}\n isDisabled={isDisabled}\n isActive={isActive}\n display=\"flex\"\n flexDirection=\"row\"\n justifyContent=\"center\"\n alignItems=\"center\"\n borderRadius=\"medium\"\n borderWidth=\"thin\"\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n onClick={() => setIsActive(true)}\n data-comp=\"f\"\n style={{\n ...(isOneFileSelectedWithSingleUpload ? screenReaderStyles : {}),\n }}\n >\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n flexDirection={{ base: 'column', s: 'row' }}\n gap={makeSize(6)}\n padding=\"spacing.3\"\n >\n <Text\n color={\n isDisabled\n ? fileUploadColorTokens.text.disabled\n : fileUploadColorTokens.text.default\n }\n >\n Drag files here or{' '}\n </Text>\n <SelectorInput\n id={inputId}\n hoverTokens={getFileUploadInputHoverTokens()}\n isChecked={false}\n isDisabled={isDisabled}\n inputProps={{\n name,\n type: 'file',\n onChange: handleInputChange,\n multiple: isMultiple,\n required: isRequired,\n disabled: isDisabled,\n accept,\n onBlur: () => setIsActive(false),\n ...accessibilityProps,\n }}\n ref={mergedRef}\n />\n\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n flexDirection={{ base: 'column', s: 'row' }}\n borderRadius=\"small\"\n >\n <Box\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n borderBottomColor={\n fileUploadLinkBorderTokens.color[isDisabled ? 'disabled' : 'default']\n }\n borderBottomWidth={fileUploadLinkBorderTokens.width.default}\n >\n <Text\n color={\n isDisabled\n ? fileUploadColorTokens.link.disabled\n : fileUploadColorTokens.link.default\n }\n >\n Upload\n </Text>\n </Box>\n </Box>\n </Box>\n </StyledFileUploadWrapper>\n </BaseBox>\n </SelectorLabel>\n {isOneFileSelectedWithSingleUpload && (\n <FileUploadItem\n file={selectedFiles[0]}\n size={size}\n onRemove={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(newFiles);\n onRemove?.({ file: selectedFiles[0] });\n }}\n onReupload={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(newFiles);\n inputRef.current?.click();\n\n // TODO - Remove this in the next major release\n // Fallback to onRemove if onReupload isn't provided to avoid breaking changes in the API\n if (onReupload) {\n onReupload({ file: selectedFiles[0] });\n } else {\n onRemove?.({ file: selectedFiles[0] });\n }\n setIsActive(false);\n }}\n onDismiss={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(newFiles);\n onDismiss?.({ file: selectedFiles[0] });\n }}\n onPreview={onPreview}\n />\n )}\n </BaseBox>\n {willRenderHintText && (\n <BaseBox\n marginLeft={makeSize(\n label && isLabelLeftPositioned ? formHintLeftLabelMarginLeft[size] : 0,\n )}\n marginBottom=\"spacing.5\"\n >\n <BaseBox display=\"flex\" flexDirection=\"row\" justifyContent=\"'space-between\">\n <FormHint\n size={size}\n type={getHintType({\n validationState: showError ? 'error' : validationState,\n hasHelpText: Boolean(helpText),\n })}\n helpText={helpText}\n errorText={errorMessage}\n helpTextId={helpTextId}\n errorTextId={errorTextId}\n />\n </BaseBox>\n </BaseBox>\n )}\n {!isOneFileSelectedWithSingleUpload &&\n selectedFiles.map((file) => (\n <BaseBox\n key={file.id}\n marginLeft={makeSize(\n label && isLabelLeftPositioned ? formHintLeftLabelMarginLeft[size] : 0,\n )}\n marginBottom=\"spacing.3\"\n >\n <FileUploadItem\n file={file}\n size={size}\n onRemove={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(newFiles);\n onRemove?.({ file });\n }}\n onReupload={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(newFiles);\n inputRef.current?.click();\n // TODO - Remove this in the next major release\n // Fallback to onRemove if onReupload isn't provided to avoid breaking changes in the API\n if (onReupload) {\n onReupload({ file: selectedFiles[0] });\n } else {\n onRemove?.({ file: selectedFiles[0] });\n }\n setIsActive(false);\n }}\n onDismiss={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(newFiles);\n onDismiss?.({ file });\n }}\n onPreview={onPreview}\n />\n </BaseBox>\n ))}\n </BaseBox>\n );\n};\n\n/**\n * ### FileUpload Component\n * \n * The FileUpload component is used to handle file attachments, including the drag-and-drop interaction.\n * Primarily, it is used to upload files to a server or to display a list of uploaded files.\n * \n * ---\n * \n * #### Usage\n * \n * ```jsx\n const GSTForm = () => {\n const [selectedFile, setSelectedFile] = useState<BladeFile>();\n const [isLoading, setIsLoading] = useState(false);\n \n return (\n <Box>\n <Heading marginBottom=\"spacing.4\">Add GST Details</Heading>\n <form encType=\"multipart/form-data\" onSubmit={handleSubmit}>\n <FileUpload\n uploadType=\"single\"\n label=\"Upload GST\"\n helpText=\"Upload .jpg, .jpeg, or .png file only\"\n accept=\".jpg, .jpeg, .png\"\n onChange={({ fileList }) => {\n setSelectedFile(fileList[0]);\n }}\n onDrop={({ fileList }) => {\n setSelectedFile(fileList[0]);\n }}\n isRequired\n necessityIndicator=\"required\"\n />\n <Button type=\"submit\" variant=\"primary\">\n Submit\n </Button>\n {isLoading && (\n <ProgressBar isIndeterminate label=\"Uploading your GST Certificate...\" />\n )}\n </form>\n </Box>\n );\n }\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-fileupload FileUpload Documentation}\n * \n */\nconst FileUpload = assignWithoutSideEffects(forwardRef(_FileUpload), {\n displayName: 'FileUpload',\n componentId: 'FileUpload',\n});\n\nexport { FileUpload };\nexport type { BladeFile, BladeFileList, FileUploadProps };\n"],"names":["_FileUpload","_ref","ref","name","accept","_ref$uploadType","uploadType","onChange","onPreview","onRemove","onReupload","onDismiss","onDrop","isDisabled","isRequired","necessityIndicator","fileList","testID","label","_ref$labelPosition","labelPosition","accessibilityLabel","validationState","helpText","errorText","maxCount","maxSize","_ref$size","size","styledProps","_objectWithoutProperties","_excluded","inputRef","useRef","mergedRef","useMergeRefs","_useTheme","useTheme","platform","_useState","useState","_useState2","_slicedToArray","selectedFiles","setSelectedFiles","_useState3","_useState4","errorMessage","setErrorMessage","_useState5","_useState6","internalValidationState","setInternalValidationState","_useState7","_useState8","isActive","setIsActive","isMultiple","isOneFileSelectedWithSingleUpload","length","inputLabelPosition","isLabelLeftPositioned","willRenderHintText","Boolean","showError","showHelpText","accessibilityText","concat","_useFormId","useFormId","inputId","labelId","helpTextId","errorTextId","accessibilityProps","makeAccessible","required","invalid","disabled","describedBy","useMemo","_iterator","_createForOfIteratorHelper","_step","s","n","done","file","value","id","Date","getTime","toString","Math","floor","random","err","e","f","handleFilesChange","useCallback","inputFiles","prevFiles","allFiles","_toConsumableArray","validateFiles","some","isFileAccepted","handleDragOver","event","preventDefault","handleDragLeave","handleDrop","droppedFiles","Array","from","dataTransfer","files","hasValidationErrors","handleInputChange","_event$target$files","target","_jsxs","BaseBox","_objectSpread","display","flexDirection","width","metaAttribute","MetaConstants","FileUpload","getStyledProps","children","alignItems","undefined","position","_jsx","FormLabel","as","SelectorLabel","componentName","FileUploadLabel","inputProps","style","cursor","marginBottom","StyledFileUploadWrapper","justifyContent","borderRadius","borderWidth","onDragOver","onDragLeave","onClick","screenReaderStyles","Box","base","gap","makeSize","padding","Text","color","fileUploadColorTokens","text","SelectorInput","hoverTokens","getFileUploadInputHoverTokens","isChecked","type","multiple","onBlur","borderBottomColor","fileUploadLinkBorderTokens","borderBottomWidth","link","FileUploadItem","newFiles","filter","_ref2","_inputRef$current","_ref3","current","click","_ref4","marginLeft","formHintLeftLabelMarginLeft","FormHint","getHintType","hasHelpText","map","_ref5","_inputRef$current2","_ref6","_ref7","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":"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"}
|
|
@@ -8,12 +8,15 @@ import '../Divider/index.js';
|
|
|
8
8
|
import '../Button/IconButton/index.js';
|
|
9
9
|
import '../ProgressBar/index.js';
|
|
10
10
|
import isUndefined from '../../utils/lodashButBetter/isUndefined.js';
|
|
11
|
+
import '../Link/BaseLink/index.js';
|
|
11
12
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
12
13
|
import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
|
|
13
14
|
import { Text } from '../Typography/Text/Text.js';
|
|
14
15
|
import CheckCircleIcon from '../Icons/CheckCircleIcon/CheckCircleIcon.js';
|
|
15
16
|
import { IconButton } from '../Button/IconButton/IconButton.js';
|
|
16
17
|
import CloseIcon from '../Icons/CloseIcon/CloseIcon.js';
|
|
18
|
+
import BaseLink from '../Link/BaseLink/BaseLink.js';
|
|
19
|
+
import RefreshIcon from '../Icons/RefreshIcon/RefreshIcon.js';
|
|
17
20
|
import EyeIcon from '../Icons/EyeIcon/EyeIcon.js';
|
|
18
21
|
import { Divider } from '../Divider/Divider.js';
|
|
19
22
|
import TrashIcon from '../Icons/TrashIcon/TrashIcon.js';
|
|
@@ -23,6 +26,7 @@ var FileUploadItem = /*#__PURE__*/memo(function (_ref) {
|
|
|
23
26
|
var file = _ref.file,
|
|
24
27
|
onPreview = _ref.onPreview,
|
|
25
28
|
onRemove = _ref.onRemove,
|
|
29
|
+
onReupload = _ref.onReupload,
|
|
26
30
|
onDismiss = _ref.onDismiss,
|
|
27
31
|
containerSize = _ref.size;
|
|
28
32
|
var name = file.name,
|
|
@@ -81,7 +85,7 @@ var FileUploadItem = /*#__PURE__*/memo(function (_ref) {
|
|
|
81
85
|
color: status === 'error' ? 'feedback.text.negative.intense' : 'surface.text.gray.muted',
|
|
82
86
|
children: errorText !== null && errorText !== void 0 ? errorText : "".concat((showSizeInKB ? sizeInKB : sizeInMB).toFixed(2), " ").concat(showSizeInKB ? 'KB' : 'MB', " ").concat(isUploading && uploadPercent ? "(".concat(uploadPercent, "%)") : '')
|
|
83
87
|
})]
|
|
84
|
-
}), status === '
|
|
88
|
+
}), status === 'uploading' ? /*#__PURE__*/jsx(BaseBox, {
|
|
85
89
|
children: /*#__PURE__*/jsx(IconButton, {
|
|
86
90
|
accessibilityLabel: "Remove File",
|
|
87
91
|
icon: CloseIcon,
|
|
@@ -91,6 +95,23 @@ var FileUploadItem = /*#__PURE__*/memo(function (_ref) {
|
|
|
91
95
|
});
|
|
92
96
|
}
|
|
93
97
|
})
|
|
98
|
+
}) : status === 'error' ? /*#__PURE__*/jsx(BaseBox, {
|
|
99
|
+
display: "flex",
|
|
100
|
+
flexDirection: "row",
|
|
101
|
+
alignItems: "center",
|
|
102
|
+
children: /*#__PURE__*/jsx(BaseLink, {
|
|
103
|
+
marginX: "spacing.1",
|
|
104
|
+
variant: "button",
|
|
105
|
+
icon: RefreshIcon,
|
|
106
|
+
color: "negative",
|
|
107
|
+
size: "small",
|
|
108
|
+
onClick: function onClick() {
|
|
109
|
+
onReupload === null || onReupload === void 0 ? void 0 : onReupload({
|
|
110
|
+
file: file
|
|
111
|
+
});
|
|
112
|
+
},
|
|
113
|
+
children: "Re-upload"
|
|
114
|
+
})
|
|
94
115
|
}) : /*#__PURE__*/jsx(BaseBox, {
|
|
95
116
|
display: "flex",
|
|
96
117
|
flexDirection: "row",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUploadItem.js","sources":["../../../../../../src/components/FileUpload/FileUploadItem.tsx"],"sourcesContent":["import { memo } from 'react';\nimport { StyledFileUploadItemWrapper } from './StyledFileUploadItemWrapper';\nimport type { FileUploadItemProps } from './types';\nimport { FileUploadItemIcon } from './FileUploadItemIcon';\nimport { TrashIcon, EyeIcon, CloseIcon, CheckCircleIcon } from '~components/Icons';\nimport { BaseBox } from '~components/Box/BaseBox';\nimport { Text } from '~components/Typography';\nimport { Divider } from '~components/Divider';\nimport { IconButton } from '~components/Button/IconButton';\nimport { ProgressBar } from '~components/ProgressBar';\nimport isUndefined from '~utils/lodashButBetter/isUndefined';\n\nconst FileUploadItem = memo(\n ({\n file,\n onPreview,\n onRemove,\n onDismiss,\n size: containerSize,\n }: FileUploadItemProps): React.ReactElement => {\n const { name, size, uploadPercent, errorText, status } = file;\n const isUploading = status === 'uploading';\n const sizeInKB = size / 1024;\n const sizeInMB = sizeInKB / 1024;\n const showSizeInKB = sizeInKB < 1024;\n\n return (\n <StyledFileUploadItemWrapper\n size={containerSize ?? 'medium'}\n status={status ?? 'success'}\n borderRadius=\"medium\"\n borderWidth=\"thin\"\n >\n <BaseBox width=\"100%\" display=\"flex\" flexDirection=\"column\">\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n margin={containerSize === 'large' ? 'spacing.4' : 'spacing.3'}\n >\n <BaseBox marginRight=\"spacing.3\">\n <FileUploadItemIcon fileName={name} uploadStatus={status} />\n </BaseBox>\n <BaseBox flexGrow={1}>\n <BaseBox alignItems=\"center\" display=\"flex\">\n <BaseBox alignItems=\"center\" maxWidth=\"70%\" display=\"flex\" marginRight=\"spacing.3\">\n <Text\n size=\"medium\"\n weight=\"medium\"\n color=\"surface.text.gray.subtle\"\n truncateAfterLines={1}\n >\n {name}\n </Text>\n </BaseBox>\n {status === 'success' && (\n <CheckCircleIcon\n size=\"medium\"\n marginRight=\"spacing.2\"\n color=\"interactive.icon.positive.normal\"\n />\n )}\n </BaseBox>\n <Text\n size=\"small\"\n weight=\"regular\"\n color={\n status === 'error' ? 'feedback.text.negative.intense' : 'surface.text.gray.muted'\n }\n >\n {errorText ??\n `${(showSizeInKB ? sizeInKB : sizeInMB).toFixed(2)} ${\n showSizeInKB ? 'KB' : 'MB'\n } ${isUploading && uploadPercent ? `(${uploadPercent}%)` : ''}`}\n </Text>\n </BaseBox>\n {status === 'error' || status === 'uploading' ? (\n <BaseBox>\n <IconButton\n accessibilityLabel=\"Remove File\"\n icon={CloseIcon}\n onClick={() => onDismiss?.({ file })}\n />\n </BaseBox>\n ) : (\n <BaseBox display=\"flex\" flexDirection=\"row\" alignItems=\"center\">\n {onPreview ? (\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n padding=\"spacing.0\"\n gap=\"spacing.3\"\n >\n <IconButton\n accessibilityLabel=\"Preview File\"\n icon={EyeIcon}\n onClick={() => onPreview?.({ file })}\n />\n <Divider orientation=\"vertical\" thickness=\"thinner\" variant=\"normal\" />\n <IconButton\n accessibilityLabel=\"Remove File\"\n icon={TrashIcon}\n onClick={() => onRemove?.({ file })}\n />\n </BaseBox>\n ) : (\n <IconButton\n accessibilityLabel=\"Remove File\"\n icon={TrashIcon}\n onClick={() => onRemove?.({ file })}\n />\n )}\n </BaseBox>\n )}\n </BaseBox>\n {isUploading && (\n <BaseBox width=\"100%\" position=\"absolute\" bottom=\"spacing.0\">\n <ProgressBar\n left=\"spacing.0\"\n showPercentage={false}\n value={uploadPercent ?? 0}\n isIndeterminate={isUndefined(uploadPercent)}\n />\n </BaseBox>\n )}\n </BaseBox>\n </StyledFileUploadItemWrapper>\n );\n },\n);\n\nexport { FileUploadItem };\n"],"names":["FileUploadItem","memo","_ref","file","onPreview","onRemove","onDismiss","containerSize","size","name","uploadPercent","errorText","status","isUploading","sizeInKB","sizeInMB","showSizeInKB","_jsx","StyledFileUploadItemWrapper","borderRadius","borderWidth","children","_jsxs","BaseBox","width","display","flexDirection","margin","marginRight","FileUploadItemIcon","fileName","uploadStatus","flexGrow","alignItems","maxWidth","Text","weight","color","truncateAfterLines","CheckCircleIcon","concat","toFixed","IconButton","accessibilityLabel","icon","CloseIcon","onClick","padding","gap","EyeIcon","Divider","orientation","thickness","variant","TrashIcon","position","bottom","ProgressBar","left","showPercentage","value","isIndeterminate","isUndefined"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FileUploadItem.js","sources":["../../../../../../src/components/FileUpload/FileUploadItem.tsx"],"sourcesContent":["import { memo } from 'react';\nimport { StyledFileUploadItemWrapper } from './StyledFileUploadItemWrapper';\nimport type { FileUploadItemProps } from './types';\nimport { FileUploadItemIcon } from './FileUploadItemIcon';\nimport { TrashIcon, EyeIcon, CloseIcon, CheckCircleIcon, RefreshIcon } from '~components/Icons';\nimport { BaseBox } from '~components/Box/BaseBox';\nimport { Text } from '~components/Typography';\nimport { Divider } from '~components/Divider';\nimport { IconButton } from '~components/Button/IconButton';\nimport { ProgressBar } from '~components/ProgressBar';\nimport isUndefined from '~utils/lodashButBetter/isUndefined';\nimport { BaseLink } from '~components/Link/BaseLink';\n\nconst FileUploadItem = memo(\n ({\n file,\n onPreview,\n onRemove,\n onReupload,\n onDismiss,\n size: containerSize,\n }: FileUploadItemProps): React.ReactElement => {\n const { name, size, uploadPercent, errorText, status } = file;\n const isUploading = status === 'uploading';\n const sizeInKB = size / 1024;\n const sizeInMB = sizeInKB / 1024;\n const showSizeInKB = sizeInKB < 1024;\n\n return (\n <StyledFileUploadItemWrapper\n size={containerSize ?? 'medium'}\n status={status ?? 'success'}\n borderRadius=\"medium\"\n borderWidth=\"thin\"\n >\n <BaseBox width=\"100%\" display=\"flex\" flexDirection=\"column\">\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n margin={containerSize === 'large' ? 'spacing.4' : 'spacing.3'}\n >\n <BaseBox marginRight=\"spacing.3\">\n <FileUploadItemIcon fileName={name} uploadStatus={status} />\n </BaseBox>\n <BaseBox flexGrow={1}>\n <BaseBox alignItems=\"center\" display=\"flex\">\n <BaseBox alignItems=\"center\" maxWidth=\"70%\" display=\"flex\" marginRight=\"spacing.3\">\n <Text\n size=\"medium\"\n weight=\"medium\"\n color=\"surface.text.gray.subtle\"\n truncateAfterLines={1}\n >\n {name}\n </Text>\n </BaseBox>\n {status === 'success' && (\n <CheckCircleIcon\n size=\"medium\"\n marginRight=\"spacing.2\"\n color=\"interactive.icon.positive.normal\"\n />\n )}\n </BaseBox>\n <Text\n size=\"small\"\n weight=\"regular\"\n color={\n status === 'error' ? 'feedback.text.negative.intense' : 'surface.text.gray.muted'\n }\n >\n {errorText ??\n `${(showSizeInKB ? sizeInKB : sizeInMB).toFixed(2)} ${\n showSizeInKB ? 'KB' : 'MB'\n } ${isUploading && uploadPercent ? `(${uploadPercent}%)` : ''}`}\n </Text>\n </BaseBox>\n {status === 'uploading' ? (\n <BaseBox>\n <IconButton\n accessibilityLabel=\"Remove File\"\n icon={CloseIcon}\n onClick={() => onDismiss?.({ file })}\n />\n </BaseBox>\n ) : status === 'error' ? (\n <BaseBox display=\"flex\" flexDirection=\"row\" alignItems=\"center\">\n <BaseLink\n marginX=\"spacing.1\"\n variant=\"button\"\n icon={RefreshIcon}\n color=\"negative\"\n size=\"small\"\n onClick={() => {\n onReupload?.({ file });\n }}\n >\n Re-upload\n </BaseLink>\n </BaseBox>\n ) : (\n <BaseBox display=\"flex\" flexDirection=\"row\" alignItems=\"center\">\n {onPreview ? (\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n padding=\"spacing.0\"\n gap=\"spacing.3\"\n >\n <IconButton\n accessibilityLabel=\"Preview File\"\n icon={EyeIcon}\n onClick={() => onPreview?.({ file })}\n />\n <Divider orientation=\"vertical\" thickness=\"thinner\" variant=\"normal\" />\n <IconButton\n accessibilityLabel=\"Remove File\"\n icon={TrashIcon}\n onClick={() => onRemove?.({ file })}\n />\n </BaseBox>\n ) : (\n <IconButton\n accessibilityLabel=\"Remove File\"\n icon={TrashIcon}\n onClick={() => onRemove?.({ file })}\n />\n )}\n </BaseBox>\n )}\n </BaseBox>\n {isUploading && (\n <BaseBox width=\"100%\" position=\"absolute\" bottom=\"spacing.0\">\n <ProgressBar\n left=\"spacing.0\"\n showPercentage={false}\n value={uploadPercent ?? 0}\n isIndeterminate={isUndefined(uploadPercent)}\n />\n </BaseBox>\n )}\n </BaseBox>\n </StyledFileUploadItemWrapper>\n );\n },\n);\n\nexport { FileUploadItem };\n"],"names":["FileUploadItem","memo","_ref","file","onPreview","onRemove","onReupload","onDismiss","containerSize","size","name","uploadPercent","errorText","status","isUploading","sizeInKB","sizeInMB","showSizeInKB","_jsx","StyledFileUploadItemWrapper","borderRadius","borderWidth","children","_jsxs","BaseBox","width","display","flexDirection","margin","marginRight","FileUploadItemIcon","fileName","uploadStatus","flexGrow","alignItems","maxWidth","Text","weight","color","truncateAfterLines","CheckCircleIcon","concat","toFixed","IconButton","accessibilityLabel","icon","CloseIcon","onClick","BaseLink","marginX","variant","RefreshIcon","padding","gap","EyeIcon","Divider","orientation","thickness","TrashIcon","position","bottom","ProgressBar","left","showPercentage","value","isIndeterminate","isUndefined"],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ var StyledFileUploadItemWrapper = /*#__PURE__*/styled(BaseBox).withConfig({
|
|
|
27
27
|
display: 'flex',
|
|
28
28
|
justifyContent: 'space-between',
|
|
29
29
|
borderStyle: 'solid',
|
|
30
|
-
|
|
30
|
+
minHeight: makeSize(fileUploadHeightTokens[size]),
|
|
31
31
|
width: '100%',
|
|
32
32
|
backgroundColor: getIn(theme.colors, fileUploadItemBackgroundColors[status]["default"]),
|
|
33
33
|
transitionProperty: 'background-color',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StyledFileUploadItemWrapper.js","sources":["../../../../../../src/components/FileUpload/StyledFileUploadItemWrapper.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport type { StyledFileUploadItemWrapperProps } from './types';\nimport {\n fileUploadItemBackgroundColors,\n fileUploadMotionTokens,\n fileUploadHeightTokens,\n} from './fileUploadTokens';\nimport getIn from '~utils/lodashButBetter/get';\nimport BaseBox from '~components/Box/BaseBox';\nimport { makeMotionTime } from '~utils/makeMotionTime';\nimport { castWebType, makeSize } from '~utils';\n\nconst StyledFileUploadItemWrapper = styled(BaseBox)<StyledFileUploadItemWrapperProps>(\n ({ theme, status, size }) => {\n const easing = getIn(theme.motion, fileUploadMotionTokens.easing);\n const duration = castWebType(\n makeMotionTime(getIn(theme.motion, fileUploadMotionTokens.duration)),\n );\n\n return {\n position: 'relative',\n overflow: 'hidden',\n display: 'flex',\n justifyContent: 'space-between',\n borderStyle: 'solid',\n
|
|
1
|
+
{"version":3,"file":"StyledFileUploadItemWrapper.js","sources":["../../../../../../src/components/FileUpload/StyledFileUploadItemWrapper.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport type { StyledFileUploadItemWrapperProps } from './types';\nimport {\n fileUploadItemBackgroundColors,\n fileUploadMotionTokens,\n fileUploadHeightTokens,\n} from './fileUploadTokens';\nimport getIn from '~utils/lodashButBetter/get';\nimport BaseBox from '~components/Box/BaseBox';\nimport { makeMotionTime } from '~utils/makeMotionTime';\nimport { castWebType, makeSize } from '~utils';\n\nconst StyledFileUploadItemWrapper = styled(BaseBox)<StyledFileUploadItemWrapperProps>(\n ({ theme, status, size }) => {\n const easing = getIn(theme.motion, fileUploadMotionTokens.easing);\n const duration = castWebType(\n makeMotionTime(getIn(theme.motion, fileUploadMotionTokens.duration)),\n );\n\n return {\n position: 'relative',\n overflow: 'hidden',\n display: 'flex',\n justifyContent: 'space-between',\n borderStyle: 'solid',\n minHeight: makeSize(fileUploadHeightTokens[size]),\n width: '100%',\n backgroundColor: getIn(theme.colors, fileUploadItemBackgroundColors[status].default),\n transitionProperty: 'background-color',\n transitionTimingFunction: easing,\n transitionDuration: duration,\n borderColor: theme.colors.interactive.border.neutral.faded,\n wordBreak: 'break-all',\n\n ...(status !== 'uploading' && {\n '&:hover': {\n backgroundColor: getIn(theme.colors, fileUploadItemBackgroundColors[status].hover),\n },\n }),\n };\n },\n);\n\nexport { StyledFileUploadItemWrapper };\n"],"names":["StyledFileUploadItemWrapper","styled","BaseBox","withConfig","displayName","componentId","_ref","theme","status","size","easing","getIn","motion","fileUploadMotionTokens","duration","castWebType","makeMotionTime","_objectSpread","position","overflow","display","justifyContent","borderStyle","minHeight","makeSize","fileUploadHeightTokens","width","backgroundColor","colors","fileUploadItemBackgroundColors","transitionProperty","transitionTimingFunction","transitionDuration","borderColor","interactive","border","neutral","faded","wordBreak","hover"],"mappings":";;;;;;;;;;;;;;AAYA,IAAMA,2BAA2B,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,6BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CACjD,CAAA,CAAA,UAAAC,IAAA,EAA6B;AAAA,EAAA,IAA1BC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM;IAAEC,IAAI,GAAAH,IAAA,CAAJG,IAAI,CAAA;EACpB,IAAMC,MAAM,GAAGC,KAAK,CAACJ,KAAK,CAACK,MAAM,EAAEC,sBAAsB,CAACH,MAAM,CAAC,CAAA;AACjE,EAAA,IAAMI,QAAQ,GAAGC,WAAW,CAC1BC,cAAc,CAACL,KAAK,CAACJ,KAAK,CAACK,MAAM,EAAEC,sBAAsB,CAACC,QAAQ,CAAC,CACrE,CAAC,CAAA;AAED,EAAA,OAAAG,aAAA,CAAA;AACEC,IAAAA,QAAQ,EAAE,UAAU;AACpBC,IAAAA,QAAQ,EAAE,QAAQ;AAClBC,IAAAA,OAAO,EAAE,MAAM;AACfC,IAAAA,cAAc,EAAE,eAAe;AAC/BC,IAAAA,WAAW,EAAE,OAAO;AACpBC,IAAAA,SAAS,EAAEC,QAAQ,CAACC,sBAAsB,CAAChB,IAAI,CAAC,CAAC;AACjDiB,IAAAA,KAAK,EAAE,MAAM;AACbC,IAAAA,eAAe,EAAEhB,KAAK,CAACJ,KAAK,CAACqB,MAAM,EAAEC,8BAA8B,CAACrB,MAAM,CAAC,CAAA,SAAA,CAAQ,CAAC;AACpFsB,IAAAA,kBAAkB,EAAE,kBAAkB;AACtCC,IAAAA,wBAAwB,EAAErB,MAAM;AAChCsB,IAAAA,kBAAkB,EAAElB,QAAQ;IAC5BmB,WAAW,EAAE1B,KAAK,CAACqB,MAAM,CAACM,WAAW,CAACC,MAAM,CAACC,OAAO,CAACC,KAAK;AAC1DC,IAAAA,SAAS,EAAE,WAAA;GAEP9B,EAAAA,MAAM,KAAK,WAAW,IAAI;AAC5B,IAAA,SAAS,EAAE;AACTmB,MAAAA,eAAe,EAAEhB,KAAK,CAACJ,KAAK,CAACqB,MAAM,EAAEC,8BAA8B,CAACrB,MAAM,CAAC,CAAC+B,KAAK,CAAA;AACnF,KAAA;GACD,CAAA,CAAA;AAEL,CAAC;;;;"}
|
|
@@ -7564,6 +7564,12 @@ type FileUploadCommonProps = {
|
|
|
7564
7564
|
onRemove?: ({ file }: {
|
|
7565
7565
|
file: File;
|
|
7566
7566
|
}) => void;
|
|
7567
|
+
/**
|
|
7568
|
+
* Callback function triggered when a file upload is retried
|
|
7569
|
+
*/
|
|
7570
|
+
onReupload?: ({ file }: {
|
|
7571
|
+
file: File;
|
|
7572
|
+
}) => void;
|
|
7567
7573
|
/**
|
|
7568
7574
|
* Callback function triggered when a file upload is dismissed
|
|
7569
7575
|
*/
|
|
@@ -6204,6 +6204,12 @@ type FileUploadCommonProps = {
|
|
|
6204
6204
|
onRemove?: ({ file }: {
|
|
6205
6205
|
file: File;
|
|
6206
6206
|
}) => void;
|
|
6207
|
+
/**
|
|
6208
|
+
* Callback function triggered when a file upload is retried
|
|
6209
|
+
*/
|
|
6210
|
+
onReupload?: ({ file }: {
|
|
6211
|
+
file: File;
|
|
6212
|
+
}) => void;
|
|
6207
6213
|
/**
|
|
6208
6214
|
* Callback function triggered when a file upload is dismissed
|
|
6209
6215
|
*/
|