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 { openCropModal } from "@root/cropModal"; import { closeImageUploadModal, openImageUploadModal } from "@root/imageUploadModal"; import { addQuestionVariant, setVariantImageUrl, setVariantOriginalImageUrl } from "@root/questions/actions"; import AddOrEditImageButton from "@ui_kit/AddOrEditImageButton"; import { CropModal } from "@ui_kit/Modal/CropModal"; import { useState } from "react"; 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 SSHC = (data: string) => { setSwitchState(data); }; const handleImageUpload = (files: FileList | null) => { if (!files?.length || !selectedVariantId) return; const [file] = Array.from(files); const url = URL.createObjectURL(file); setVariantImageUrl(question.id, selectedVariantId, url); setVariantOriginalImageUrl(question.id, selectedVariantId, url); closeImageUploadModal(); openCropModal(url, url); }; function handleCropModalSaveClick(url: string) { if (!selectedVariantId) return; setVariantImageUrl(question.id, selectedVariantId, url); } return ( <> ( <> {!isMobile && ( { if (!("originalImageUrl" in variant)) return; setSelectedVariantId(variant.id); if (variant.extendedText) return openCropModal( variant.extendedText, variant.originalImageUrl ); openImageUploadModal(); }} onPlusClick={() => { setSelectedVariantId(variant.id); openImageUploadModal(); }} sx={{ mx: "10px" }} /> )} )} additionalMobile={(variant) => ( <> {isMobile && ( { if (!("originalImageUrl" in variant)) return; 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 )} ); }