import { FC } from "react"; import { Box, Button } 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"; interface Iprops { resultData: AnyTypedQuizQuestion; } export const MediaSelectionAndDisplay: FC = ({ resultData }) => { const quizQid = useCurrentQuiz()?.qid; const { isCropModalOpen, openCropModal, closeCropModal, imageBlob, originalImageUrl, setCropModalImageBlob } = useCropModalState(); const [isImageUploadOpen, openImageUploadModal, closeImageUploadModal] = useDisclosure(); async function handleImageUpload(file: File) { const url = await uploadQuestionImage(resultData.id, quizQid, file, (question, url) => { question.content.back = url; question.content.originalBack = url; }); closeImageUploadModal(); openCropModal(file, url); } 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 && ( updateQuestion(resultData.id, (q) => { q.content.video = e.target.value; }) } /> )} ); };