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, IconButton, Tooltip, Typography, useMediaQuery, useTheme, } from "@mui/material"; import { copyQuestion, deleteQuestion, updateOpenBranchingPanel, updateDesireToOpenABranchingModal } from "@root/questions/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"; 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 { openBranchingPanel } = useQuestionsStore.getState() const openedModal = () => { updateOpenedModalSettingsId(question.id) }; const handleClickBranching = (_, value) => { const parentId = question.content.rule.parentId if (parentId.length === 0 ){ return enqueueSnackbar("Вопрос не учавствует в ветвлении") } if (parentId === "root") { return enqueueSnackbar("У корня нет условий ветвления") } if (parentId.length !== 0) { // updateOpenBranchingPanel(value) openedModal() } } 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 Все условия обязательны } > { SSHC(value); myFunc(question); }} 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} ) : ( <> { 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)} > { // TODO // const removedId = question.id; // if (question.deleteTimeoutId) { // clearTimeout(question.deleteTimeoutId); // } // removeQuestion(quizId, totalIndex); // const newTimeoutId = window.setTimeout(() => { // removeQuestionForce(quizId, removedId); // }, 5000); // updateQuestionsList(quizId, totalIndex, { // ...question, // deleteTimeoutId: newTimeoutId, // }); deleteQuestion(question.id, quiz.id); }} data-cy="delete-question" > ); }