Skip to content

Commit 4a11a95

Browse files
committed
Fix FileInputField not resetting properly (#627)
Fix `FileInputField` not resetting properly on `reset` event inside of a form
1 parent f3d65f4 commit 4a11a95

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

src/components/FileInputField/FileInputField.jsx

+26
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import PropTypes from 'prop-types';
22
import React, {
3+
useCallback,
4+
useEffect,
35
useContext,
46
useImperativeHandle,
57
useRef,
@@ -99,6 +101,30 @@ export const FileInputField = React.forwardRef((props, ref) => {
99101
}
100102
};
101103

104+
const handleReset = useCallback((event) => {
105+
setSelectedFileNames([]);
106+
onFilesChanged([], event);
107+
}, [onFilesChanged]);
108+
109+
useEffect(() => {
110+
const inputEl = internalInputRef.current;
111+
if (!inputEl) {
112+
return;
113+
}
114+
115+
const { form } = inputEl;
116+
if (!form) {
117+
return;
118+
}
119+
120+
form.addEventListener('reset', handleReset);
121+
122+
// eslint-disable-next-line consistent-return
123+
return () => {
124+
form.removeEventListener('reset', handleReset);
125+
};
126+
}, [handleReset]);
127+
102128
return (
103129
<div
104130
className={classNames(

0 commit comments

Comments
 (0)