import { useState, FC } from "react"; import { Box, Button, ButtonBase, Tooltip, Typography, useTheme, } from "@mui/material"; import CustomTextField from "./CustomTextField"; import { updateQuestion, uploadQuestionImage } from "@root/questions/actions"; import { CropModal, useCropModalState } from "@ui_kit/Modal/CropModal"; import AddOrEditImageButton from "@ui_kit/AddOrEditImageButton"; import { UploadImageModal } from "../pages/Questions/UploadImage/UploadImageModal"; import { useDisclosure } from "../utils/useDisclosure"; import { useCurrentQuiz } from "../stores/quizes/hooks"; import { AnyTypedQuizQuestion } from "@model/questionTypes/shared"; import UploadBox from "@ui_kit/UploadBox"; import UploadIcon from "@icons/UploadIcon"; import InfoIcon from "@icons/InfoIcon"; interface Iprops { resultData: AnyTypedQuizQuestion; } export const MediaSelectionAndDisplay: FC = ({ resultData }) => { const [pictureUploding, setPictureUploading] = useState(false); const quizQid = useCurrentQuiz()?.qid; const theme = useTheme(); const { isCropModalOpen, openCropModal, closeCropModal, imageBlob, originalImageUrl, setCropModalImageBlob, } = useCropModalState(); const [isImageUploadOpen, openImageUploadModal, closeImageUploadModal] = useDisclosure(); async function handleImageUpload(file: File) { setPictureUploading(true); const url = await uploadQuestionImage( resultData.id, quizQid, file, (question, url) => { question.content.back = url; question.content.originalBack = url; }, ); closeImageUploadModal(); openCropModal(file, url); setPictureUploading(false); } function handleCropModalSaveClick(imageBlob: Blob) { uploadQuestionImage(resultData.id, quizQid, imageBlob, (question, url) => { question.content.back = url; }); } return ( {resultData.content.useImage && ( { if (resultData.content.back) { return openCropModal( resultData.content.back, resultData.content.originalBack, ); } openImageUploadModal(); }} onPlusClick={() => { openImageUploadModal(); }} /> )} {!resultData.content.useImage && ( <> Добавить видео { const file = event.target.files?.[0]; if (file) { uploadQuestionImage( resultData.id, quizQid, file, (question, url) => { question.content.video = url; }, ); } }} hidden accept=".mp4" multiple type="file" /> } sx={{ height: "48px", width: "48px", }} /> {resultData.content.video ? ( ); };