import { ImageAddIcons } from "@icons/ImageAddIcons"; import { MessageIcon } from "@icons/messagIcon"; import { PointsIcon } from "@icons/questionsPage/PointsIcon"; import { DeleteIcon } from "@icons/questionsPage/deleteIcon"; import { Box, IconButton, InputAdornment, Link, Popover, TextField, TextareaAutosize, Typography, useMediaQuery, useTheme } from "@mui/material"; import { addQuestionVariant, uploadQuestionImage } from "@root/questions/actions"; import { useCurrentQuiz } from "@root/quizes/hooks"; import AddOrEditImageButton from "@ui_kit/AddOrEditImageButton"; import { CropModal, useCropModalState } from "@ui_kit/Modal/CropModal"; import { useState } from "react"; import { useDisclosure } from "../../../utils/useDisclosure"; import { EnterIcon } from "../../../assets/icons/questionsPage/enterIcon"; import type { QuizQuestionVarImg } from "../../../model/questionTypes/varimg"; import { AnswerDraggableList } from "../AnswerDraggableList"; import ButtonsOptionsAndPict from "../ButtonsOptionsAndPict"; import { UploadImageModal } from "../UploadImage/UploadImageModal"; import SwitchOptionsAndPict from "./switchOptionsAndPict"; interface Props { question: QuizQuestionVarImg; } export default function OptionsAndPicture({ question }: Props) { const [switchState, setSwitchState] = useState("setting"); const [selectedVariantId, setSelectedVariantId] = useState(null); const theme = useTheme(); const isTablet = useMediaQuery(theme.breakpoints.down(1000)); const isMobile = useMediaQuery(theme.breakpoints.down(790)); const quizQid = useCurrentQuiz()?.qid; const [isImageUploadOpen, openImageUploadModal, closeImageUploadModal] = useDisclosure(); const { isCropModalOpen, openCropModal, closeCropModal, imageBlob, originalImageUrl, setCropModalImageBlob, } = useCropModalState(); const SSHC = (data: string) => { setSwitchState(data); }; const handleImageUpload = async (file: File) => { if (!selectedVariantId) return; const url = await uploadQuestionImage(question.id, quizQid, file, (question, url) => { if (!("variants" in question.content)) return; const variant = question.content.variants.find(variant => variant.id === selectedVariantId); if (!variant) return; variant.extendedText = url; variant.originalImageUrl = url; }); closeImageUploadModal(); openCropModal(file, url); }; function handleCropModalSaveClick(imageBlob: Blob) { if (!selectedVariantId) return; uploadQuestionImage(question.id, quizQid, imageBlob, (question, url) => { if (!("variants" in question.content)) return; const variant = question.content.variants.find(variant => variant.id === selectedVariantId); if (!variant) return; variant.extendedText = url; }); } return ( <> ( <> {!isMobile && ( { setSelectedVariantId(variant.id); if (variant.extendedText) { return openCropModal( variant.extendedText, variant.originalImageUrl ); } openImageUploadModal(); }} onPlusClick={() => { setSelectedVariantId(variant.id); openImageUploadModal(); }} sx={{ mx: "10px" }} /> )} )} additionalMobile={(variant) => ( <> {isMobile && ( { setSelectedVariantId(variant.id); if (variant.extendedText) { return openCropModal( variant.extendedText, variant.originalImageUrl ); } openImageUploadModal(); }} onPlusClick={() => { setSelectedVariantId(variant.id); openImageUploadModal(); }} sx={{ m: "8px", width: "auto" }} /> )} )} /> {/**/} {/* */} {/* */} {/* */} {/* */} {/* {!isMobile && (*/} {/* */} {/* */} {/* */} {/* */} {/* */} {/* +*/} {/* */} {/* */} {/* )}*/} {/* */} {/* ),*/} {/* endAdornment: (*/} {/* */} {/* */} {/* */} {/* */} {/* */} {/* */} {/* */} {/* */} {/* */} {/* */} {/* */} {/* ),*/} {/* }}*/} {/* sx={{*/} {/* "& .MuiInputBase-root": {*/} {/* padding: "13.5px",*/} {/* borderRadius: "10px",*/} {/* background: "#ffffff",*/} {/* height: "48px",*/} {/* },*/} {/* "& .MuiOutlinedInput-notchedOutline": {*/} {/* border: "none",*/} {/* },*/} {/* }}*/} {/* inputProps={{*/} {/* sx: { fontSize: "18px", lineHeight: "21px", py: 0 },*/} {/* }}*/} {/* />*/} {/*{isMobile && (*/} {/* */} {/* */} {/* */} {/* */} {/* */} {/* */} {/* */} {/* +*/} {/* */} {/* */} {/* */} {/*)}*/} {/**/} { addQuestionVariant(question.id); }} > Добавьте ответ {isMobile ? null : ( <> или нажмите Enter )} ); }