From 3e86ef34b1ead59e63bc8e18d00b3e43fbc52c22 Mon Sep 17 00:00:00 2001 From: Nastya Date: Fri, 5 Jan 2024 17:54:09 +0300 Subject: [PATCH] =?UTF-8?q?=D1=81=D1=82=D1=80=20=D1=80=D0=B5=D0=B7=D1=83?= =?UTF-8?q?=D0=BB=D1=8C=D1=82=D0=B0=D1=82=D0=BE=D0=B2=20=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=8F=D0=B5=D1=82=20=D0=BD=D0=B0=D0=BB=D0=B8?= =?UTF-8?q?=D1=87=D0=B8=D0=B5=20=D0=BB=D0=B8=D0=BD=D0=B5=D0=B9=D0=BD=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D1=80=D0=B5=D0=B7=D1=83=D0=BB=D1=82=D0=B0=20+?= =?UTF-8?q?=20=D0=B2=D1=8B=D1=85=D0=BE=D0=B4=20=D1=81=D0=BE=20=D1=81=D1=82?= =?UTF-8?q?=D1=80=20=D1=80=D0=B5=D0=B7=D1=83=D0=BB=D1=82=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=BA=D0=B8=D0=B4=D0=B0=D0=B5=D1=82=20=D0=BD=D0=B0=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=D1=8C=D0=BD=D0=BE=D0=B5=20=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/ResultPage/ResultSettings.tsx | 9 ++++++++- src/pages/startPage/EditPage.tsx | 3 +-- src/stores/uiTools/actions.ts | 3 +++ src/stores/uiTools/store.ts | 2 ++ src/ui_kit/Sidebar/Sidebar.tsx | 14 ++++++++------ 5 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/pages/ResultPage/ResultSettings.tsx b/src/pages/ResultPage/ResultSettings.tsx index 65a40fd7..e583995e 100644 --- a/src/pages/ResultPage/ResultSettings.tsx +++ b/src/pages/ResultPage/ResultSettings.tsx @@ -18,7 +18,7 @@ import { ResultCard, checkEmptyData } from "./cards/ResultCard"; import { EmailSettingsCard } from "./cards/EmailSettingsCard"; import { useCurrentQuiz } from "@root/quizes/hooks"; import { useQuestionsStore } from "@root/questions/store"; -import { deleteQuestion } from "@root/questions/actions"; +import { createResult, deleteQuestion } from "@root/questions/actions"; import { QuizQuestionResult } from "@model/questionTypes/result"; import IconPlus from "@icons/IconPlus"; @@ -57,6 +57,13 @@ export const ResultSettings = () => { ); useEffect(() => { + //Всегда должен существовать хоть 1 резулт - "line" + if ( + !questions?.find( (q) => (q.type === "result" && q.content.rule.parentId === "line")) + ) { + createResult(quiz?.backendId, "line"); + console.log("Я не нашёл линейный резулт и собираюсь создать новый"); + } return () => { if (!isReadyToLeaveRef.current && window.location.pathname !== "/edit") { setOpenNotificationModal(true); diff --git a/src/pages/startPage/EditPage.tsx b/src/pages/startPage/EditPage.tsx index 2466efb7..778bbbe5 100755 --- a/src/pages/startPage/EditPage.tsx +++ b/src/pages/startPage/EditPage.tsx @@ -54,13 +54,12 @@ export default function EditPage({ const { editQuizId } = useQuizStore(); const { questions } = useQuestionsStore(); console.log(questions); - const { whyCantCreatePublic, showConfirmLeaveModal } = useUiTools(); + const { whyCantCreatePublic, showConfirmLeaveModal, nextStep } = useUiTools(); const theme = useTheme(); const navigate = useNavigate(); const currentStep = useQuizStore((state) => state.currentStep); const isBranchingLogic = useMediaQuery(theme.breakpoints.down(1100)); const isMobile = useMediaQuery(theme.breakpoints.down(660)); - const [nextStep, setNextStep] = useState(0); const quizConfig = quiz?.config; // const [openBranchingPage, setOpenBranchingPage] = useState(false); diff --git a/src/stores/uiTools/actions.ts b/src/stores/uiTools/actions.ts index 2f3cd9cd..2ec4526e 100644 --- a/src/stores/uiTools/actions.ts +++ b/src/stores/uiTools/actions.ts @@ -40,3 +40,6 @@ export const setShowConfirmLeaveModal = (showConfirmLeaveModal: boolean) => export const updateSomeWorkBackend = (someWorkBackend: boolean) => useUiTools.setState({ someWorkBackend }); + +export const updateNextStep = (nextStep: number) => + useUiTools.setState({ nextStep }); diff --git a/src/stores/uiTools/store.ts b/src/stores/uiTools/store.ts index 3d297e39..122ccbf9 100644 --- a/src/stores/uiTools/store.ts +++ b/src/stores/uiTools/store.ts @@ -12,6 +12,7 @@ export type UiTools = { deleteNodeId: string | null; showConfirmLeaveModal: boolean; someWorkBackend: boolean; + nextStep: number }; export type WhyCantCreatePublic = { @@ -30,6 +31,7 @@ const initialState: UiTools = { deleteNodeId: null, showConfirmLeaveModal: false, someWorkBackend: false, + nextStep: -1 }; export const useUiTools = create()( diff --git a/src/ui_kit/Sidebar/Sidebar.tsx b/src/ui_kit/Sidebar/Sidebar.tsx index 9b11b3a2..915d72d3 100755 --- a/src/ui_kit/Sidebar/Sidebar.tsx +++ b/src/ui_kit/Sidebar/Sidebar.tsx @@ -11,6 +11,7 @@ import MenuItem from "../MenuItem"; import { useCurrentQuiz } from "@root/quizes/hooks"; import { useLocation, useNavigate } from "react-router-dom"; import { setCurrentStep } from "@root/quizes/actions"; +import { updateNextStep } from "@root/uiTools/actions"; const quizSettingsMenuItems = [ [TagIcon, "Дополнения"], @@ -37,6 +38,7 @@ export default function Sidebar({ changePage, disableCollapse }: SidebarProps) { navigate("/edit"); } + updateNextStep(index) changePage(index); }; @@ -106,9 +108,9 @@ export default function Sidebar({ changePage, disableCollapse }: SidebarProps) { key={index} text={menuItem.sidebarText} isCollapsed={isMenuCollapsed} - isActive={currentStep === index} + isActive={currentStep === index && pathname.startsWith("/edit")} disabled={ - index === 0 + pathname.startsWith("/edit") ? false : quiz === undefined ? true @@ -117,7 +119,7 @@ export default function Sidebar({ changePage, disableCollapse }: SidebarProps) { icon={