import { useState } from "react"; import {Box, ButtonBase, useTheme, Typography, SxProps, Theme} from "@mui/material"; import UploadIcon from "../../assets/icons/UploadIcon"; import { SnackbarProvider, enqueueSnackbar } from 'notistack'; import Resizer from "react-image-file-resizer"; interface Props { text?: string; sx?: SxProps; heightImg: string; widthImg?: string } export default ({text, sx, heightImg, widthImg}: Props) => { const theme = useTheme(); // const callback = (newFileUri:any) => setData(URL.createObjectURL(newFileUri)); const callback = (uri:any) => { var link = document.createElement('a'); link.href = uri; link.download = 'Download.jpg'; document.body.appendChild(link); link.click(); document.body.removeChild(link); }; const resizeImage = (imageFile:any) => { console.log(imageFile[0]) try { Resizer.imageFileResizer( imageFile[0], 150, 150, "JPEG", 100, 0, callback, ); } catch (err) { console.log(err); } } const imgHC = (imgInp:any) => { const [file] = imgInp.files if (file.size < 5242880) { setData(URL.createObjectURL(file)) } else {enqueueSnackbar('Размер картинки слишком велик')} resizeImage(imgInp.files) } const [data, setData] = useState("") const [ready, setReady] = useState(false); const dragenterHC = () => { // console.log("onDragEnter") setReady(true) } const dragexitHC = () => { // console.log("onDragExit") setReady(false) } const dropHC = (event: any) => { event.preventDefault() // console.log("onDrop") setReady(false) const file = event.dataTransfer.files[0] console.log(event.dataTransfer.files[0]) if (file.size < 5242880) { setData(URL.createObjectURL(file)) } else {enqueueSnackbar('Размер картинки слишком велик')} // try { // Resizer.imageFileResizer( // file, // 50, // 50, // "JPEG", // 100, // 0, // callback, // ); // // } catch (err) { // console.log(err); // } // } const dragOverHC = (event: any) => { event.preventDefault() // console.log("onDragOver") } return ( imgHC(event.target)} hidden accept="image/*" multiple type="file" /> {text} {data ? : null } ) }