useDropZone

Tags:

A React Hook that allows you to create a dropzone.

Demo

Try to drop a PNG file from your computer, or just test the over state via image below.

Source
IsOverDropZone:
false
Drop files here
img

(The photo below is merely a image, NOT a file. You need to drop files here from your explorer to see files list)

No files dropped 🤷

Usage

See API for more details.

Source

Click links below to view source on GitHub.

API

const { isOverDropZone, files } = useDropZone(elementTarget, options)

ElementTarget

ElementTarget is a union type that represents various kinds of elements that can be targeted.

See ElementTarget or ElementTarget Types for more details.

Options

export type UseDropZoneOptions = { /** * The file types that are accepted by the drop zone. */ dataTypes?: string[] | ((types: readonly string[]) => boolean) /** * A callback that is called when the user drops files in the drop zone. */ onDrop?: (files: File[] | null, event: DragEvent) => void /** * A callback that is called when the user drags files over the drop zone. */ onEnter?: (files: File[] | null, event: DragEvent) => void /** * A callback that is called when the user drags files out of the drop zone. */ onLeave?: (files: File[] | null, event: DragEvent) => void /** * A callback that is called when the user drags files over the drop zone. */ onOver?: (files: File[] | null, event: DragEvent) => void }

Returns

export type UseDropZoneReturns = { /** * The files that were dropped in the drop zone. */ files: File[] | null /** * Whether the user is currently dragging files over the drop zone. */ isOverDropZone: boolean }