import { AnyTypedQuizQuestion } from "@model/questionTypes/shared"; import { Box, ButtonBase, Typography, useTheme } from "@mui/material"; import { openCropModal } from "@root/cropModal"; import { closeImageUploadModal, openImageUploadModal } from "@root/imageUploadModal"; import { setQuestionBackgroundImage, setQuestionOriginalBackgroundImage } from "@root/questions/actions"; import { CropModal } from "@ui_kit/Modal/CropModal"; import UploadBox from "@ui_kit/UploadBox"; import { type DragEvent } from "react"; import UploadIcon from "../../../assets/icons/UploadIcon"; import { UploadImageModal } from "./UploadImageModal"; type UploadImageProps = { question: AnyTypedQuizQuestion; }; export default function UploadImage({ question }: UploadImageProps) { const theme = useTheme(); const handleImageUpload = (files: FileList | null) => { if (!files?.length) return; const [file] = Array.from(files); const url = URL.createObjectURL(file); setQuestionBackgroundImage(question.id, url); setQuestionOriginalBackgroundImage(question.id, url); closeImageUploadModal(); openCropModal(url, url); }; const handleDrop = (event: DragEvent) => { event.preventDefault(); event.stopPropagation(); handleImageUpload(event.dataTransfer.files); }; function handleCropModalSaveClick(url: string) { setQuestionBackgroundImage(question.id, url); } return ( Загрузить изображение {question.content.back ? question background : } text="5 MB максимум" /> } ); }