fix: UploadImage

This commit is contained in:
IlyaDoronin 2023-08-14 18:35:57 +03:00
parent f2a9e61452
commit 1d5166075e
2 changed files with 108 additions and 11 deletions

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 36 KiB

@ -1,8 +1,19 @@
import { Typography, Box, useTheme, ButtonBase, Modal } from "@mui/material"; import {
Typography,
Box,
useTheme,
ButtonBase,
Modal,
TextField,
InputAdornment,
} from "@mui/material";
import UploadBox from "@ui_kit/UploadBox"; import UploadBox from "@ui_kit/UploadBox";
import UploadIcon from "../../assets/icons/UploadIcon"; import UploadIcon from "../../assets/icons/UploadIcon";
import SearchIcon from "../../assets/icons/SearchIcon";
import * as React from "react"; import * as React from "react";
import UnsplashIcon from "../../assets/icons/Unsplash.svg";
interface ModalkaProps { interface ModalkaProps {
imgHC: (imgInp: HTMLInputElement) => void; imgHC: (imgInp: HTMLInputElement) => void;
} }
@ -40,31 +51,94 @@ const Modalka: React.FC<ModalkaProps> = ({ imgHC }) => {
background: theme.palette.background.default, background: theme.palette.background.default,
}} }}
> >
<Typography>Добавьте изображение</Typography> <Typography
sx={{ marginBottom: "20px", fontWeight: "bold", color: "#4D4D4D" }}
>
Добавьте изображение
</Typography>
<ButtonBase component="label" sx={{ justifyContent: "flex-start" }}> <ButtonBase component="label" sx={{ justifyContent: "flex-start" }}>
<input onChange={(event) => imgHC(event.target)} hidden accept="image/*" multiple type="file" /> <input
onChange={(event) => imgHC(event.target)}
hidden
accept="image/*"
multiple
type="file"
/>
<Box <Box
ref={dropZone} ref={dropZone}
sx={{ sx={{
width: "580px", width: "580px",
padding: "33px", padding: "33px 10px 33px 55px",
display: "flex", display: "flex",
justifyContent: "space-between",
alignItems: "center", alignItems: "center",
backgroundColor: theme.palette.background.default, backgroundColor: theme.palette.background.default,
border: `1px solid ${ready ? "red" : theme.palette.grey2.main}`, border: `1px solid ${ready ? "red" : theme.palette.grey2.main}`,
borderRadius: "8px", borderRadius: "8px",
gap: "55px",
}} }}
onDragEnter={handleDragEnter} // Применяем обработчик onDragEnter напрямую onDragEnter={handleDragEnter} // Применяем обработчик onDragEnter напрямую
> >
<UploadIcon /> <UploadIcon />
<Box> <Box>
<Typography>Загрузите или перетяните сюда файл</Typography> <Typography sx={{ color: "#9A9AAF", fontWeight: "bold" }}>
<Typography>Принимает JPG, PNG, и GIF формат максимум 5mb</Typography> Загрузите или перетяните сюда файл
</Typography>
<Typography sx={{ color: "#9A9AAF", fontSize: "16px" }}>
Принимает JPG, PNG, и GIF формат максимум 5mb
</Typography>
</Box> </Box>
</Box> </Box>
</ButtonBase> </ButtonBase>
<Typography>Или выберите на фотостоке</Typography> <Box
sx={{
display: "flex",
justifyContent: "space-between",
margin: "20px 0",
}}
>
<Typography
sx={{
fontWeight: "bold",
color: "#4D4D4D",
}}
>
Или выберите на фотостоке
</Typography>
<img src={UnsplashIcon} alt="" />
</Box>
<TextField
id="search-in-unsplash"
placeholder="Ищите изображения на английском языка"
sx={{
"& .MuiInputBase-input": {
height: "48px",
padding: "0 10px 0 0",
},
"& .MuiOutlinedInput-notchedOutline": {
borderRadius: "8px",
},
"& .Mui-focused .MuiOutlinedInput-notchedOutline": {
border: "1px solid rgba(0, 0, 0, 0.23)",
},
"& .MuiInputBase-root.MuiOutlinedInput-root .MuiOutlinedInput-notchedOutline":
{
borderColor: "rgba(0, 0, 0, 0.23)",
},
}}
InputProps={{
startAdornment: (
<InputAdornment
position="start"
sx={{
outline: "none",
"& svg > path": { stroke: "#9A9AAF" },
}}
>
<SearchIcon />
</InputAdornment>
),
}}
/>
</Box> </Box>
</Box> </Box>
); );
@ -87,14 +161,28 @@ export default function UploadImage() {
return ( return (
<Box sx={{ padding: "20px" }}> <Box sx={{ padding: "20px" }}>
<Typography sx={{ fontWeight: 500, color: theme.palette.grey3.main, mt: "11px", mb: "14px" }}> <Typography
sx={{
fontWeight: 500,
color: theme.palette.grey3.main,
mt: "11px",
mb: "14px",
}}
>
Загрузить изображение Загрузить изображение
</Typography> </Typography>
<ButtonBase onClick={handleOpen} sx={{ width: "100%", maxWidth: "260px" }}> <ButtonBase
onClick={handleOpen}
sx={{ width: "100%", maxWidth: "260px" }}
>
{img ? ( {img ? (
<img width="400" src={img} /> <img width="400" src={img} />
) : ( ) : (
<UploadBox sx={{ maxWidth: "260px" }} icon={<UploadIcon />} text="5 MB максимум" /> <UploadBox
sx={{ maxWidth: "260px" }}
icon={<UploadIcon />}
text="5 MB максимум"
/>
)} )}
</ButtonBase> </ButtonBase>
<Modal <Modal