npm / react-dropzone
react-dropzone
What changed in react-dropzone 14 to 20, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-17.
react-dropzone 204 changes
Breaking changes 1
Node.js 20 is no longer supported; the minimum supported Node.js version is now 22.
New APIs and options 1
Exposes rejected files from drag operations so applications can access and handle drag file rejections.
Fixes and other changes 2
In-flight processing is aborted when the dropzone unmounts, preventing processing from continuing after unmount.
Empty validator error arrays are now accepted.
react-dropzone 197 changes
Breaking changes 1
acceptedFiles and onDropAccepted now return files within the limit instead of rejecting the entire batch.
New APIs and options 2
MIME types can now be grouped in the accept configuration.
Adds paste-to-upload support, allowing developers to handle uploaded files pasted into the dropzone.
Behavior and default changes 1
Validators can now be asynchronous, allowing validation logic that awaits results.
Fixes and other changes 3
Drops on the dropzone are ignored while the file dialog is open.
Dragged files are detected via items kind when the drag event types omit Files.
The file input is hidden in-flow to prevent scroll jumps for users interacting with the dropzone.
react-dropzone 1813 changes
Breaking changes 3
The validator is skipped during drag, changing when validation logic runs.
FileWithPath now requires path or relativePath, so plain File is no longer assignable; type onDrop handlers as File[].
The full extension-to-MIME table is no longer bundled; pass COMMON_MIME_TYPES from file-selector/mime to restore it.
New APIs and options 2
Adds isDragUnknown state so developers can detect when the drag state is unknown.
Adds a prop to override file rejection messages.
Behavior and default changes 1
File size errors are formatted using human-readable units, making rejection messages easier for developers and users to understand.
Tooling 1
@types/react is added as an optional peer dependency for projects needing React type definitions.
Fixes and other changes 6
Prevents the browser from opening files dropped on disabled or noDrag dropzones.
Falls back to the native input when the file picker is blocked.
The root receives aria-disabled when the dropzone is disabled, improving accessibility semantics.
Drop callback event types remain event-shaped, improving type accuracy for callback consumers.
The hidden file input is labeled, improving its accessibility.
Extensions are now enforced when paired with wildcard MIME types in the accept configuration.
react-dropzone 174 changes
Breaking changes 3
defaultProps are removed and replaced by default parameter values.
prop-types support is removed in favor of TypeScript types.
The package now requires React 18 or newer.
Tooling 1
Hand-written typings are replaced by declarations generated from the source.
react-dropzone 164 changes
Breaking changes 4
The dist/es/ output path is removed, requiring consumers of old deep-import paths to migrate.
The package now uses an exports map with ESM and CJS entry points.
Building the package now requires Node 20 or newer.
The UMD build is removed, so CDN and script-tag consumers must migrate.
react-dropzone 151 changes
Breaking changes 1
isDragReject now reflects only active drag state and clears after drop; use fileRejections or onDropRejected/onDrop for post-drop rejection UI.
react-dropzone 144 changes
New APIs and options 1
Adds state for detecting drag activity at the document level.
Fixes and other changes 3
Prevents the tarball from being included in the published package, avoiding unintended package contents for users.
The dragLeave filter logic is corrected.
Files with an empty type are now accepted during drag events.