import React, { useState, useEffect } from 'react'; import { useFilePicker, utils } from 'react-sage'; import { makeStyles } from '@material-ui/core/styles'; import { CardActionArea, CardMedia, Typography, Button } from '@material-ui/core'; import { CloudUpload, CancelOutlined, Link, Publish } from '@material-ui/icons/'; import UploadImage from '../../components/UploadImage/UploadImage'; interface PropTypes { file?: File | string; setFile: (file?: File | string) => void; } const useStyles = makeStyles({ root: { display: 'flex', justifyContent: 'center', flexDirection: 'column', alignItems: 'center', width: '50%' }, clearIcon: { opacity: '.5', fontSize: 50 }, media: { height: '100%', width: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center' }, text: { textAlign: 'center' } }); const PollCreationImage: React.FC = ({ file, setFile }) => { const classes = useStyles(); const { files, onClick, HiddenFileInput } = useFilePicker(); const [url, setUrl] = useState(); const [isMediaHover, setIsMediaHover] = useState(false); const [isModalOpen, setIsModalOpen] = useState(false); const handleMouseEnter = (): void => { setIsMediaHover(true); }; const handleMouseLeave = (): void => { setIsMediaHover(false); }; useEffect(() => { if (files?.length) { const chosenFile = files[0]; setFile(chosenFile); utils.loadFile(chosenFile).then(result => setUrl(result)); } }, [files, setFile]); const handleOpenModal = () => { setIsModalOpen(true); }; const callback = (result: string) => { setUrl(result); setFile(result); }; const Upload = ( <> or ); const Media = ( {isMediaHover && } ); return (
{file ? (url && Media) : Upload}
); }; export default PollCreationImage;