import { DoubleArrowRight } from "@icons/questionsPage/DoubleArrowRight"; import { DoubleTick } from "@icons/questionsPage/DoubleTick"; import { VectorQuestions } from "@icons/questionsPage/VectorQuestions"; import { DeleteIcon } from "@icons/questionsPage/deleteIcon"; import type { SxProps } from "@mui/material"; import { Box, Button, IconButton, Modal, Tooltip, Typography, useMediaQuery, useTheme, } from "@mui/material"; import { copyQuestion, deleteQuestion, deleteQuestionWithTimeout, clearRuleForAll, updateQuestion, getQuestionByContentId } from "@root/questions/actions"; import { updateOpenBranchingPanel, updateDesireToOpenABranchingModal, } from "@root/uiTools/actions"; import MiniButtonSetting from "@ui_kit/MiniButtonSetting"; import { CopyIcon } from "../../assets/icons/questionsPage/CopyIcon"; import Branching from "../../assets/icons/questionsPage/branching"; import Clue from "../../assets/icons/questionsPage/clue"; import { HideIcon } from "../../assets/icons/questionsPage/hideIcon"; import SettingIcon from "../../assets/icons/questionsPage/settingIcon"; import type { AnyTypedQuizQuestion } from "../../model/questionTypes/shared"; import { useCurrentQuiz } from "@root/quizes/hooks"; import { enqueueSnackbar } from "notistack"; import { useQuestionsStore } from "@root/questions/store"; import { updateOpenedModalSettingsId } from "@root/uiTools/actions"; import { updateRootContentId } from "@root/quizes/actions"; import { useUiTools } from "@root/uiTools/store"; import {useState} from "react"; import { updateSomeWorkBackend } from "@root/uiTools/actions"; import { DeleteFunction } from "@utils/deleteFunc"; interface Props { switchState: string; SSHC: (data: string) => void; question: AnyTypedQuizQuestion; sx?: SxProps; } export default function ButtonsOptions({ SSHC, switchState, question, }: Props) { const theme = useTheme(); const isMobile = useMediaQuery(theme.breakpoints.down(790)); const isWrappMiniButtonSetting = useMediaQuery(theme.breakpoints.down(920)); const quiz = useCurrentQuiz(); const { questions } = useQuestionsStore.getState(); const [openDelete, setOpenDelete] = useState(false); const openedModal = () => { updateOpenBranchingPanel(true); updateDesireToOpenABranchingModal(question.content.id); }; const buttonSetting: { icon: JSX.Element; title: string; value: string; myFunc?: any; }[] = [ { icon: ( ), title: "Настройки", value: "setting", }, // { // icon: ( // // ), // title: "Подсказка", // value: "help", // }, { icon: ( ), title: "Ветвление", value: "branching", myFunc: (question) => { updateOpenBranchingPanel(true); updateDesireToOpenABranchingModal(question.content.id); } }, ]; return ( {buttonSetting.map(({ icon, title, value, myFunc }) => ( {value === "branching" ? ( Будет показан при условии Название Условие 1, Условие 2 Все условия обязательны } > { openedModal(); // SSHC(value); // myFunc(question); }} sx={{ display: quiz.config.type === "form" ? "none" : "flex", backgroundColor: switchState === value ? theme.palette.brightPurple.main : "transparent", color: switchState === value ? "#ffffff" : theme.palette.grey3.main, minWidth: isWrappMiniButtonSetting ? "30px" : "64px", height: "30px", "&:hover": { color: theme.palette.grey3.main, "& path": { stroke: theme.palette.grey3.main }, }, }} > {icon} {isWrappMiniButtonSetting ? null : title} ) : ( <> { SSHC(value); myFunc(); }} sx={{ backgroundColor: switchState === value ? theme.palette.brightPurple.main : "transparent", color: switchState === value ? "#ffffff" : theme.palette.grey3.main, minWidth: isWrappMiniButtonSetting ? "30px" : "64px", height: "30px", "&:hover": { color: theme.palette.grey3.main, "& path": { stroke: theme.palette.grey3.main }, }, }} > {icon} {isWrappMiniButtonSetting ? null : title} )} ))} <> copyQuestion(question.id, question.quizId)} > { if(question.content.rule.parentId.length !== 0) { setOpenDelete(true) } else { deleteQuestionWithTimeout(question.id, () => DeleteFunction(questions, question, quiz)); } }} data-cy="delete-question" > setOpenDelete(false)}> Вы удаляете вопрос, участвующий в ветвлении. Все его потомки потеряют данные ветвления. Вы уверены, что хотите удалить вопрос? ); }