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 */}
-