import { QuizQuestionVariant } from "@model/questionTypes/variant"; import { QuizQuestionVarImg } from "@model/questionTypes/varimg"; import { Box, Button, IconButton, Modal, Typography, useMediaQuery, useTheme, } from "@mui/material"; import { copyQuestion, deleteQuestion, deleteQuestionWithTimeout, } from "@root/questions/actions"; import { useQuestionsStore } from "@root/questions/store"; import { useCurrentQuiz } from "@root/quizes/hooks"; import { updateDesireToOpenABranchingModal } from "@root/uiTools/actions"; import MiniButtonSetting from "@ui_kit/MiniButtonSetting"; import { ReallyChangingModal } from "@ui_kit/Modal/ReallyChangingModal/ReallyChangingModal"; import { DeleteFunction } from "@utils/deleteFunc"; import { useEffect, useState } from "react"; import { CopyIcon } from "../../assets/icons/questionsPage/CopyIcon"; import Branching from "../../assets/icons/questionsPage/branching"; import { DeleteIcon } from "../../assets/icons/questionsPage/deleteIcon"; import ImgIcon from "../../assets/icons/questionsPage/imgIcon"; import SettingIcon from "../../assets/icons/questionsPage/settingIcon"; interface Props { switchState: string; SSHC: (data: string) => void; question: QuizQuestionVariant | QuizQuestionVarImg; openBranchingPage: boolean; setOpenBranchingPage: (a: boolean) => void; } export default function ButtonsOptionsAndPict({ SSHC, switchState, question, openBranchingPage, setOpenBranchingPage, }: Props) { const [buttonHover, setButtonHover] = useState(""); const [openedReallyChangingModal, setOpenedReallyChangingModal] = useState(false); const theme = useTheme(); const isMobile = useMediaQuery(theme.breakpoints.down(790)); const isIconMobile = useMediaQuery(theme.breakpoints.down(1050)); const { questions } = useQuestionsStore.getState(); const quiz = useCurrentQuiz(); const [openDelete, setOpenDelete] = useState(false); useEffect(() => { if (question.deleteTimeoutId) { clearTimeout(question.deleteTimeoutId); } }, [question]); return ( setButtonHover("setting")} onMouseLeave={() => setButtonHover("")} onClick={() => { SSHC("setting"); }} sx={{ maxWidth: "104px", minWidth: isIconMobile ? "30px" : "64px", height: "30px", backgroundColor: switchState === "setting" ? theme.palette.brightPurple.main : "transparent", color: switchState === "setting" ? "#ffffff" : theme.palette.grey3.main, "&:hover": { color: switchState === "setting" ? theme.palette.grey3.main : null, }, }} > {isIconMobile ? null : "Настройки"} {/* setButtonHover("help")}*/} {/* onMouseLeave={() => setButtonHover("")}*/} {/* onClick={() => {*/} {/* SSHC("help");*/} {/* }}*/} {/* sx={{*/} {/* minWidth: isIconMobile ? "30px" : "64px",*/} {/* maxWidth: "102px",*/} {/* height: "30px",*/} {/* backgroundColor:*/} {/* switchState === "help"*/} {/* ? theme.palette.brightPurple.main*/} {/* : "transparent",*/} {/* color:*/} {/* switchState === "help" ? "#ffffff" : theme.palette.grey3.main,*/} {/* "&:hover": {*/} {/* color: switchState === "help" ? theme.palette.grey3.main : null,*/} {/* },*/} {/* }}*/} {/*>*/} {/* */} {/* {isIconMobile ? null : "Подсказка"}*/} {/**/} <> {/* Будет показан при условии Название Условие 1, Условие 2 Все условия обязательны } > */} {question.type !== "text" && ( setButtonHover("branching")} onMouseLeave={() => setButtonHover("")} onClick={() => { setOpenBranchingPage(true); updateDesireToOpenABranchingModal(question.content.id); }} sx={{ display: quiz.config.type === "form" ? "none" : "flex", height: "30px", maxWidth: "103px", minWidth: isIconMobile ? "30px" : "64px", backgroundColor: switchState === "branching" ? theme.palette.brightPurple.main : "transparent", color: switchState === "branching" ? "#ffffff" : theme.palette.grey3.main, "&:hover": { color: switchState === "branching" ? theme.palette.grey3.main : null, }, }} > {isIconMobile ? null : "Ветвление"} )} {/* */} setButtonHover("image")} onMouseLeave={() => setButtonHover("")} onClick={() => { SSHC("image"); }} sx={{ height: "30px", maxWidth: "123px", minWidth: isIconMobile ? "30px" : "64px", backgroundColor: switchState === "image" ? theme.palette.brightPurple.main : "transparent", color: switchState === "image" ? "#ffffff" : theme.palette.grey3.main, "&:hover": { color: switchState === "image" ? theme.palette.grey3.main : null, }, }} > {isIconMobile ? null : "Изображение"} {/* setOpenedReallyChangingModal(true)} sx={{ minWidth: "30px", height: "30px", backgroundColor: "#FEDFD0", }} > setOpenedReallyChangingModal(true)} sx={{ minWidth: "30px", height: "30px", backgroundColor: "#FEDFD0", }} > setOpenedReallyChangingModal(true)} sx={{ minWidth: "30px", height: "30px", backgroundColor: "#FEDFD0", }} > */} {/* */} copyQuestion(question.id, question.quizId)} > {(quiz?.config.type !== "form" || question.id !== questions[0].id) && ( { if (question.type === null) { deleteQuestion(question.id); } if (question.content.rule.parentId.length !== 0) { setOpenDelete(true); } else { deleteQuestionWithTimeout(question.id, () => DeleteFunction(question), ); } }} data-cy="delete-question" > )} setOpenDelete(false)}> Вы удаляете вопрос, участвующий в ветвлении. Все его потомки потеряют данные ветвления. Вы уверены, что хотите удалить вопрос? setOpenedReallyChangingModal(false)} /> ); }