mirror of
https://github.com/oceanprotocol/commons.git
synced 2023-03-15 18:03:00 +01:00
35 lines
888 B
TypeScript
35 lines
888 B
TypeScript
|
import React, { useCallback } from 'react'
|
||
|
import { useDropzone } from 'react-dropzone'
|
||
|
import styles from './Dropzone.module.scss'
|
||
|
|
||
|
export default function Dropzone({
|
||
|
handleOnDrop,
|
||
|
disabled
|
||
|
}: {
|
||
|
handleOnDrop(files: FileList): void
|
||
|
disabled?: boolean
|
||
|
}) {
|
||
|
const onDrop = useCallback(acceptedFiles => handleOnDrop(acceptedFiles), [
|
||
|
handleOnDrop
|
||
|
])
|
||
|
|
||
|
const { getRootProps, getInputProps, isDragActive } = useDropzone({
|
||
|
onDrop
|
||
|
})
|
||
|
|
||
|
return (
|
||
|
<div
|
||
|
{...getRootProps({
|
||
|
className: isDragActive
|
||
|
? styles.dragover
|
||
|
: disabled
|
||
|
? styles.disabled
|
||
|
: styles.dropzone
|
||
|
})}
|
||
|
>
|
||
|
<input {...getInputProps()} />
|
||
|
<p>{`Drag 'n' drop some files here, or click to select files`}</p>
|
||
|
</div>
|
||
|
)
|
||
|
}
|