import React, { useState, useCallback, useEffect } from 'react' import { useDropzone } from 'react-dropzone' import classNames from 'classnames'; import Icon from 'components/Icon'; // const initialFile: { // file: ?File, // preview: string, // metadata: ?object, // uploaded: boolean, // }; export default function Dropzone({ text = 'Drag/Drop files here or click here', onDrop, initialFiles = [], onDeleteFile, hint, className, }) { const [files, setFiles] = useState([]); useEffect(() => { setFiles([ ...initialFiles ]); }, [initialFiles]); const {getRootProps, getInputProps} = useDropzone({ accept: 'image/*', onDrop: (acceptedFiles) => { const _files = acceptedFiles.map((file) => ({ file, preview: URL.createObjectURL(file), uploaded: false, })); setFiles(_files); } }); const handleRemove = useCallback((index) => { const deletedFile = files.splice(index, 1); setFiles([...files]); onDeleteFile && onDeleteFile(deletedFile); }, [files, onDeleteFile]); const thumbs = files.map((file, index) => (
{ text }