import { VideofileIcon } from "@icons/questionsPage/VideofileIcon"; import { Box, Typography, useMediaQuery, useTheme } from "@mui/material"; import { openCropModal } from "@root/cropModal"; import { closeImageUploadModal, openImageUploadModal } from "@root/imageUploadModal"; import { setPageQuestionOriginalPicture, setPageQuestionPicture, updateQuestion } from "@root/questions/actions"; import AddOrEditImageButton from "@ui_kit/AddOrEditImageButton"; import CustomTextField from "@ui_kit/CustomTextField"; import { CropModal } from "@ui_kit/Modal/CropModal"; import { useState } from "react"; import { useDebouncedCallback } from "use-debounce"; import type { QuizQuestionPage } from "../../../model/questionTypes/page"; import ButtonsOptions from "../ButtonsOptions"; import { UploadImageModal } from "../UploadImage/UploadImageModal"; import { UploadVideoModal } from "../UploadVideoModal"; import SwitchPageOptions from "./switchPageOptions"; type Props = { disableInput?: boolean; question: QuizQuestionPage; }; export default function PageOptions({ disableInput, question }: Props) { const [openVideoModal, setOpenVideoModal] = useState(false); const [switchState, setSwitchState] = useState("setting"); const theme = useTheme(); const isTablet = useMediaQuery(theme.breakpoints.down(980)); const isFigmaTablet = useMediaQuery(theme.breakpoints.down(990)); const isMobile = useMediaQuery(theme.breakpoints.down(780)); const setText = useDebouncedCallback((value) => { updateQuestion(question.id, question => { if (question.type !== "page") return; question.content.text = value; }); }, 200); const SSHC = (data: string) => { setSwitchState(data); }; function handleImageUpload(fileList: FileList | null) { if (!fileList?.length) return; const url = URL.createObjectURL(fileList[0]); setPageQuestionPicture(question.id, url); setPageQuestionOriginalPicture(question.id, url); closeImageUploadModal(); openCropModal(url, url); } function handleCropModalSaveClick(url: string) { setPageQuestionPicture(question.id, url); } return ( <> setText(target.value)} /> { if (question.content.picture) { return openCropModal( question.content.picture, question.content.originalPicture ); } openImageUploadModal(); }} onPlusClick={() => { openImageUploadModal(); }} /> Изображение или {isMobile ? ( + ) : ( + )} Видео setOpenVideoModal(false)} video={question.content.video} onUpload={(url) => { updateQuestion(question.id, question => { if (question.type !== "page") return; question.content.video = url; }); }} /> ); }