1.0.3 • Published 5 years ago
@yelysei/react-files-dnd v1.0.3
@yelysei/react-files-dnd
A light-weighted and customizable React Component that handles Files Drag & Drop.
Installation
Install with npm:
npm i @yelysei/react-files-dnd
or with yarn:
yarn add @yelysei/react-files-dnd
Usage
First you need to import FilesDragAndDrop component:
import FilesDragAndDrop from '@yelysei/react-files-dnd';
And then use it like this:
<FilesDragAndDrop
onUpload={(files) => console.log(files)}
count={3}
formats={['jpg', 'png', 'svg']}
containerStyles={{
width: '200px',
height: '200px',
border: '1px solid #cccccc',
}}
openDialogOnClick
>
<div style={{
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
}}>
Drop files here
</div>
</FilesDragAndDrop>
Props
Here is the list of all available props:
Name | Type | Required | Description |
---|---|---|---|
onUpload | function | + | Function that will be called when files are dropped into the component and successfully validated. Receives list of files |
children | node | + | Inner content of the component |
count | number | Max count of files | |
formats | string[] | List of available file formats | |
openDialogOnClick | boolean | If enabled, file dialog will be opened on click at the component | |
hoverText | string or function | Message that will appear when files are dragged over the component. Function receives available file formats and max files count.Default value: 'Drop files here' | |
successText | string or function | Message that will appear when files are successfully uploaded. Function receives list of uploaded files.Default value: 'Successfully uploaded' | |
errorCountText | string or function | Message that will appear when more files than available are dropped into the component. Function receives available max files count.Default value: ({count}) => `Only ${count} file${count !== 1 ? 's' : ''} can be uploaded at a time` | |
errorFormatText | string or function | Message that will appear when files with incorrect formats are dropped into the component. Function receives available file formats.Default value: ({formats}) => `Only following file formats are acceptable: ${formats.join(', ')}` | |
containerStyles | CSS properties | Custom styles for container | |
hoverMessageStyles | CSS properties | Custom styles for hover message | |
successMessageStyles | CSS properties | Custom styles for success message | |
errorMessageStyles | CSS properties | Custom styles for error message | |
successTime | number | Time duration in milliseconds when the success message will be displayed.Default value: 1000 | |
errorTime | number | Time duration in milliseconds when the error message will be displayed.Default value: 2000 | |
onDrop | function | Function that will be called when files are dropped into the component but not validated yet. Receives list of files | |
onDragEnter | function | Function that will be called when dragged files entered the component | |
onDragLeave | function | Function that will be called when dragged files leaved the component |