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"; interface Props { text?: string; sx?: SxProps; heightImg: string; widthImg?: string; } //Научи функцию принимать данные для валидации export default ({ text, sx, heightImg, widthImg }: Props) => { const theme = useTheme(); const imgHC = (imgInp: HTMLInputElement) => { const file = imgInp.files?.[0]; if (file) { if (file.size < 5242880) { setData(URL.createObjectURL(file)); } else { enqueueSnackbar("Размер картинки слишком велик"); } } }; const [data, setData] = useState(""); const [ready, setReady] = useState(false); const dragenterHC = () => { setReady(true); }; const dragexitHC = () => { setReady(false); }; const dropHC = (event: React.DragEvent) => { event.preventDefault(); setReady(false); const file = event.dataTransfer.files[0]; if (file.size < 5242880) { setData(URL.createObjectURL(file)); } else { enqueueSnackbar("Размер картинки слишком велик"); } }; const dragOverHC = (event: React.DragEvent) => { event.preventDefault(); }; return ( imgHC(event.target)} hidden accept="image/*" multiple type="file" /> {text} {data ? ( ) : null} ); };