Simple, elegant & efficient drop-zone component
DropZone
This is a simple but customizeable component. You can choose between a
pre-styled version, or a bare component that allows you to specify a render
function.
Both versions will trigger an .onDrop(file: HTML5 File, text: String), so you
get both the file handle and its text content in a single event (file reading
can be disabled).
Install
npm i -S react-drop-zone
Pre-Styled version
StyledDropZone Demo
import { StyledDropZone } from 'react-drop-zone'
import 'react-drop-zone/dist/styles.css'
<StyledDropZone onDrop={(file, text) => console.log(file, text)} />
Bare version
DropZone Demo
import DropZone from 'react-drop-zone'
<DropZone onDrop={(file, text) => console.log(file)}>
{
  ({ over, overDocument }) =>
    <div>
      {
        over ?
          'file is over element' :
        overDocument ?
          'file is over document' :
          'no file'
      }
    </div>
}
</DropZone>
Props
| Name | Description | Default | 
|---|---|---|
onDrop (required) | 
called when a file is dropped or selected. Signature: (file: HTML5File, text: String) | 
|
handleClick | 
Handle click events on the rendered component | true | 
dontRead | 
Prevent reading the file content, if it's causing problems | false | 
label | 
[StyledDropZone only] Label on the component | Select or Drop your file here | 
children | 
[DropZone only] Render function that receives ({ over: Boolean, overDocument: Boolean}) | 
false |