Open source • MIT licensed

A hooks-first, headless file uploader for React

One hook for the entire upload lifecycle.

Drag, validate, queue, retry, cancel. Your markup, your styles.

How it works

Watch MediaDrop handle different file states, validations, and upload scenarios in real-time

Try a state

hero.png

Drag a file here

isDragActive: false

const { getRootProps, isDragActive } = useMediaDrop()
 
<div {...getRootProps()} data-active={isDragActive} />