Upgrading react-dropzone 16 to 17
Breaking16.0.0 → 17.0.0Breaking2Changed2
BreakingUpgrade verdict
1 breaking change.
In plain terms
- Runtime prop validation and legacy default props are gone; defaults now come from default parameter values and types come from TypeScript.
Must act 1 item needs code or config changes
Drops prop-types.
Installs 3 packages in all (was 8).
What you must change
Breaking1
Removes prop-types and defaultProps in favor of TypeScript types and default parameter values.
prop-typesdefaultPropsAPI changes
Generated by DepDelta from published .d.ts files. Not mixed with prose notes.
- added:
const default: React.ForwardRefExoticComponent<DropzoneProps & React.RefAttributes<DropzoneRef>> - added:
enum ErrorCode - added:
export { FileWithPath } - added:
function useDropzone(props?: DropzoneOptions): DropzoneState - added:
index Accept[key: string]: readonly string[] - added:
index DropzoneRootProps[key: string]: any - added:
interface Accept - added:
interface DropzoneInputProps extends React.InputHTMLAttributes<HTMLInputElement> - added:
interface DropzoneProps extends DropzoneOptions - added:
interface DropzoneRef - added:
interface DropzoneRootProps extends React.HTMLAttributes<HTMLElement> - added:
interface FileError - added:
interface FileRejection - added:
member ErrorCode.FileInvalidType = 'file-invalid-type' - added:
member ErrorCode.FileTooLarge = 'file-too-large' - added:
member ErrorCode.FileTooSmall = 'file-too-small' - added:
member ErrorCode.TooManyFiles = 'too-many-files' - added:
property DropzoneInputProps.refKey?: string - added:
property DropzoneProps.children?: (state: DropzoneState) => React.ReactElement - added:
property DropzoneRef.open: () => void - added:
property DropzoneRootProps.refKey?: string - added:
property FileError.code: ErrorCode | string - added:
property FileError.message: string - added:
property FileRejection.errors: readonly FileError[] - added:
property FileRejection.file: FileWithPath - added:
type DropEvent = React.DragEvent<HTMLElement> | React.ChangeEvent<HTMLInputElement> | DragEvent | Event | Array<FileSystemFileHandle> - added:
type DropzoneOptions = Pick<React.HTMLProps<HTMLElement>, SharedProps> & { accept?: Accept; minSize?: number; maxSize?: number; maxFiles?: number; preventDropOnDocument?: boolean; no… - added:
type DropzoneState = DropzoneRef & { isFocused: boolean; isDragActive: boolean; isDragAccept: boolean; isDragReject: boolean; isDragGlobal: boolean; isFileDialogActive: boolean; ac…
- removed:
default function Dropzone(props: DropzoneProps & React.RefAttributes<DropzoneRef>): React.ReactElement - removed:
enum ErrorCode - removed:
export { FileWithPath } - removed:
function useDropzone(options?: DropzoneOptions): DropzoneState - removed:
index Accept[key: string]: readonly string[] - removed:
index DropzoneRootProps[key: string]: any - removed:
interface Accept - removed:
interface DropzoneInputProps extends React.InputHTMLAttributes<HTMLInputElement> - removed:
interface DropzoneProps extends DropzoneOptions - removed:
interface DropzoneRef - removed:
interface DropzoneRootProps extends React.HTMLAttributes<HTMLElement> - removed:
interface FileError - removed:
interface FileRejection - removed:
member ErrorCode.FileInvalidType = 'file-invalid-type' - removed:
member ErrorCode.FileTooLarge = 'file-too-large' - removed:
member ErrorCode.FileTooSmall = 'file-too-small' - removed:
member ErrorCode.TooManyFiles = 'too-many-files' - removed:
method DropzoneProps.children?(state: DropzoneState): React.ReactElement - removed:
property DropzoneInputProps.refKey?: string - removed:
property DropzoneRef.open: () => void - removed:
property DropzoneRootProps.refKey?: string - removed:
property FileError.code: ErrorCode | string - removed:
property FileError.message: string - removed:
property FileRejection.errors: readonly FileError[] - removed:
property FileRejection.file: FileWithPath - removed:
type DropEvent = React.DragEvent<HTMLElement> | React.ChangeEvent<HTMLInputElement> | DragEvent | Event | Array<FileSystemFileHandle> - removed:
type DropzoneOptions = Pick<React.HTMLProps<HTMLElement>, PropTypes> & { accept?: Accept; minSize?: number; maxSize?: number; maxFiles?: number; preventDropOnDocument?: boolean; noCl… - removed:
type DropzoneState = DropzoneRef & { isFocused: boolean; isDragActive: boolean; isDragAccept: boolean; isDragReject: boolean; isDragGlobal: boolean; isFileDialogActive: boolean; ac…