import React from 'react'; import Dropzone from 'react-dropzone'; import styled from 'styled-components'; import UploadService from 'services/uploadService'; import { fetchData } from 'services/fileService'; export const getColor = (props) => { if (props.isDragAccept) { return '#00e676'; } if (props.isDragReject) { return '#ff1744'; } if (props.isDragActive) { return '#2196f3'; } }; export const enableBorder = (props) => (props.isDragActive ? 'dashed' : 'none'); export const DropDiv = styled.div` width:33%; border-width: 2px; border-radius: 2px; border-color: ${(props) => getColor(props)}; border-style: ${(props) => enableBorder(props)}; outline: none; transition: border 0.24s ease-in-out; `; const CollectionDropZone = ({ children, closeModal, refetchData, collectionLatestFile, setProgressView, token, progressBarProps }) => { const upload = async (acceptedFiles) => { closeModal(); progressBarProps.setPercentComplete(0); setProgressView(true); await UploadService.uploadFiles(acceptedFiles, collectionLatestFile, token, progressBarProps); refetchData(); setProgressView(false); } return ( {({ getRootProps, getInputProps, isDragActive, isDragAccept, isDragReject, }) => { return ( {children} ); }} ); }; export default CollectionDropZone;