diff --git a/packages/react/__tests__/__snapshots__/PublicAPI-test.js.snap b/packages/react/__tests__/__snapshots__/PublicAPI-test.js.snap index 5f25e5517da8..410bede864ed 100644 --- a/packages/react/__tests__/__snapshots__/PublicAPI-test.js.snap +++ b/packages/react/__tests__/__snapshots__/PublicAPI-test.js.snap @@ -3168,7 +3168,6 @@ Map { "multiple": false, "onAddFiles": [Function], "pattern": ".[0-9a-z]+$", - "tabIndex": 0, }, "propTypes": Object { "accept": Object { @@ -3201,15 +3200,14 @@ Map { "onAddFiles": Object { "type": "func", }, - "pattern": Object { - "type": "string", + "onClick": Object { + "type": "func", }, - "role": Object { + "pattern": Object { "type": "string", }, - "tabIndex": Object { - "type": "number", - }, + "role": [Function], + "tabIndex": [Function], }, }, "FileUploaderItem" => Object { @@ -3281,6 +3279,9 @@ Map { "invalid": Object { "type": "bool", }, + "name": Object { + "type": "string", + }, "status": Object { "args": Array [ Array [ diff --git a/packages/react/src/components/FileUploader/FileUploader.js b/packages/react/src/components/FileUploader/FileUploader.js index 7b5a1881a594..b7a90d1e29f1 100644 --- a/packages/react/src/components/FileUploader/FileUploader.js +++ b/packages/react/src/components/FileUploader/FileUploader.js @@ -243,8 +243,8 @@ export default class FileUploader extends React.Component {

{ if (matches(evt, [keys.Enter, keys.Space])) { diff --git a/packages/react/src/components/FileUploader/FileUploaderDropContainer.js b/packages/react/src/components/FileUploader/FileUploaderDropContainer.js index 3c0a38689df8..7233f74195e8 100644 --- a/packages/react/src/components/FileUploader/FileUploaderDropContainer.js +++ b/packages/react/src/components/FileUploader/FileUploaderDropContainer.js @@ -11,6 +11,8 @@ import classNames from 'classnames'; import { keys, matches } from '../../internal/keyboard'; import uniqueId from '../../tools/uniqueId'; import { usePrefix } from '../../internal/usePrefix'; +import { composeEventHandlers } from '../../tools/events'; +import deprecate from '../../prop-types/deprecate'; function FileUploaderDropContainer({ accept, @@ -21,9 +23,8 @@ function FileUploaderDropContainer({ multiple, name, onAddFiles, + onClick, pattern, - role, - tabIndex, // eslint-disable-next-line react/prop-types innerRef, ...rest @@ -32,13 +33,15 @@ function FileUploaderDropContainer({ const inputRef = useRef(null); const { current: uid } = useRef(id || uniqueId()); const [isActive, setActive] = useState(false); - const labelClasses = classNames(`${prefix}--file-browse-btn`, { - [`${prefix}--file-browse-btn--disabled`]: disabled, - }); - const dropareaClasses = classNames(`${prefix}--file__drop-container`, { - [`${prefix}--file__drop-container--drag-over`]: isActive, - [className]: className, - }); + const dropareaClasses = classNames( + `${prefix}--file__drop-container`, + `${prefix}--file-browse-btn`, + { + [`${prefix}--file__drop-container--drag-over`]: isActive, + [`${prefix}--file-browse-btn--disabled`]: disabled, + [className]: className, + } + ); /** * Filters the array of added files based on file type restrictions @@ -79,6 +82,12 @@ function FileUploaderDropContainer({ return onAddFiles(event, { addedFiles }); } + const handleClick = () => { + if (!disabled) { + inputRef.current.click(); + } + }; + return (
- {/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */} -