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() {
Заголовок квиза
-
+
useQuestionsStore.se
export const updateDragQuestionContentId = (contentId?: string) => {
console.log("contentId " + contentId)
useQuestionsStore.setState({dragQuestionContentId: contentId ? contentId : null});
-}
+};
+export const updateOpenBranchingPanel = (value: boolean) => useQuestionsStore.setState({openBranchingPanel: !value});
diff --git a/src/stores/questions/store.ts b/src/stores/questions/store.ts
index ffd5cb4d..a230b3d2 100644
--- a/src/stores/questions/store.ts
+++ b/src/stores/questions/store.ts
@@ -7,12 +7,14 @@ export type QuestionsStore = {
questions: (AnyTypedQuizQuestion | UntypedQuizQuestion);
openedModalSettingsId: string | null;
dragQuestionContentId: string | null;
+ openBranchingPanel: boolean;
};
const initialState: QuestionsStore = {
questions: [],
openedModalSettingsId: null as null,
dragQuestionContentId: null,
+ openBranchingPanel: false,
};
export const useQuestionsStore = create()(