diff --git a/src/pages/Questions/AnswerDraggableList/AnswerItem.tsx b/src/pages/Questions/AnswerDraggableList/AnswerItem.tsx index 6cb8562e..0667d316 100644 --- a/src/pages/Questions/AnswerDraggableList/AnswerItem.tsx +++ b/src/pages/Questions/AnswerDraggableList/AnswerItem.tsx @@ -1,7 +1,7 @@ import { MessageIcon } from "@icons/messagIcon"; import { PointsIcon } from "@icons/questionsPage/PointsIcon"; import { DeleteIcon } from "@icons/questionsPage/deleteIcon"; -import { TextareaAutosize } from "@mui/base/TextareaAutosize"; +import TextareaAutosize from "@mui/base/TextareaAutosize"; import { Box, FormControl, diff --git a/src/pages/Questions/BranchingPanel/index.tsx b/src/pages/Questions/BranchingPanel/index.tsx index ceac346e..30f2f962 100644 --- a/src/pages/Questions/BranchingPanel/index.tsx +++ b/src/pages/Questions/BranchingPanel/index.tsx @@ -1,15 +1,13 @@ import { Box, Typography, Switch, useTheme } from "@mui/material"; import { QuestionsList } from "./QuestionsList"; +import { updateOpenBranchingPanel } from "@root/questions/actions"; +import {useQuestionsStore} from "@root/questions/store"; -type BranchingPanelProps = { - active: boolean; - setActive: (active: boolean) => void; -}; -export const BranchingPanel = ({ active, setActive }: BranchingPanelProps) => { +export const BranchingPanel = () => { const theme = useTheme(); - + const {openBranchingPanel} = useQuestionsStore.getState() return ( { }} > setTimeout(() => setActive(value), 10)} + value={openBranchingPanel} + onChange={(_, value) => { + setTimeout(() => updateOpenBranchingPanel(!value), 10) + console.log(openBranchingPanel) + }} sx={{ width: 50, height: 30, @@ -79,7 +80,7 @@ export const BranchingPanel = ({ active, setActive }: BranchingPanelProps) => { - { active && } + { openBranchingPanel === true && } ); }; diff --git a/src/pages/Questions/ButtonsOptions.tsx b/src/pages/Questions/ButtonsOptions.tsx index ca4e9bea..43e916b6 100644 --- a/src/pages/Questions/ButtonsOptions.tsx +++ b/src/pages/Questions/ButtonsOptions.tsx @@ -11,7 +11,7 @@ import { useMediaQuery, useTheme, } from "@mui/material"; -import { copyQuestion, deleteQuestion, updateQuestion } from "@root/questions/actions"; +import {copyQuestion, deleteQuestion, updateOpenBranchingPanel, updateQuestion} from "@root/questions/actions"; import MiniButtonSetting from "@ui_kit/MiniButtonSetting"; import { CopyIcon } from "../../assets/icons/questionsPage/CopyIcon"; import Branching from "../../assets/icons/questionsPage/branching"; @@ -20,6 +20,7 @@ import { HideIcon } from "../../assets/icons/questionsPage/hideIcon"; import SettingIcon from "../../assets/icons/questionsPage/settingIcon"; import type { AnyTypedQuizQuestion } from "../../model/questionTypes/shared"; import { updateOpenedModalSettingsId } from "@root/questions/actions"; +import {enqueueSnackbar} from "notistack"; interface Props { @@ -42,6 +43,19 @@ export default function ButtonsOptions({ updateOpenedModalSettingsId(question.id) }; + const handleClickBranching = (_, value) => { + const parentId = question.content.rule.parentId + console.log(parentId) + if (parentId.length !== 0) { + setTimeout(() => updateOpenBranchingPanel(!value), 10) + } else { + return enqueueSnackbar("Вопрос не учавствует в ветвлении") + } + + if (parentId === "root") + return enqueueSnackbar("У корня нет условий ветвления") + } + const buttonSetting: { icon: JSX.Element; title: string; @@ -78,7 +92,7 @@ export default function ButtonsOptions({ ), title: "Ветвление", value: "branching", - myFunc: openedModal, + myFunc: openedModal, handleClickBranching }, ]; diff --git a/src/pages/Questions/ButtonsOptionsAndPict.tsx b/src/pages/Questions/ButtonsOptionsAndPict.tsx index fef66769..cfaa3273 100644 --- a/src/pages/Questions/ButtonsOptionsAndPict.tsx +++ b/src/pages/Questions/ButtonsOptionsAndPict.tsx @@ -23,6 +23,9 @@ import ImgIcon from "../../assets/icons/questionsPage/imgIcon"; import SettingIcon from "../../assets/icons/questionsPage/settingIcon"; import { QuizQuestionVariant } from "@model/questionTypes/variant"; import { updateOpenedModalSettingsId } from "@root/questions/actions"; +import { updateOpenBranchingPanel } from "@root/questions/actions"; +import {useQuestionsStore} from "@root/questions/store"; +import { enqueueSnackbar } from "notistack"; interface Props { @@ -42,6 +45,7 @@ export default function ButtonsOptionsAndPict({ const theme = useTheme(); const isMobile = useMediaQuery(theme.breakpoints.down(790)); const isIconMobile = useMediaQuery(theme.breakpoints.down(1050)); + const {openBranchingPanel} = useQuestionsStore.getState() useEffect(() => { if (question.deleteTimeoutId) { @@ -49,6 +53,19 @@ export default function ButtonsOptionsAndPict({ } }, [question]); + const handleClickBranching = (_, value) => { + const parentId = question.content.rule.parentId + console.log(parentId) + if (parentId.length !== 0) { + setTimeout(() => updateOpenBranchingPanel(!value), 10) + } else { + return enqueueSnackbar("Вопрос не учавствует в ветвлении") + } + + if (parentId === "root") + return enqueueSnackbar("У корня нет условий ветвления") + } + return ( setButtonHover("")} onClick={() => { updateOpenedModalSettingsId(question.id) + handleClickBranching(question.id, openBranchingPanel) }} sx={{ height: "30px", diff --git a/src/pages/Questions/QuestionSwitchWindowTool.tsx b/src/pages/Questions/QuestionSwitchWindowTool.tsx index 81e0c028..3ed5c7da 100644 --- a/src/pages/Questions/QuestionSwitchWindowTool.tsx +++ b/src/pages/Questions/QuestionSwitchWindowTool.tsx @@ -5,22 +5,19 @@ import { import { DraggableList } from "./DraggableList"; import { BranchingPanel } from "./BranchingPanel"; import { BranchingMap } from "./BranchingMap"; +import { updateOpenBranchingPanel } from "@root/questions/actions"; +import {useQuestionsStore} from "@root/questions/store"; -interface Props { - settingBranching: boolean; - setSettingBranching: (active: boolean) => void -} -export const QuestionSwitchWindowTool = ({settingBranching, setSettingBranching}:Props) => { +export const QuestionSwitchWindowTool = () => { + const {openBranchingPanel} = useQuestionsStore.getState() return ( - {settingBranching ? : } + {openBranchingPanel? : } ) diff --git a/src/pages/Questions/QuestionsPage.tsx b/src/pages/Questions/QuestionsPage.tsx index 8e5e5a99..5c492f3e 100755 --- a/src/pages/Questions/QuestionsPage.tsx +++ b/src/pages/Questions/QuestionsPage.tsx @@ -24,8 +24,7 @@ export default function QuestionsPage() { const { openedModalSettingsId } = useQuestionsStore(); const isMobile = useMediaQuery(theme.breakpoints.down(660)); const quiz = useCurrentQuiz(); - - const [settingBranching, setSettingBranching] = useState(false); + const openBranchingPanel = useQuestionsStore.getState() if (!quiz) return null; return ( @@ -42,7 +41,7 @@ export default function QuestionsPage() { Заголовок квиза