From 7c396f1f5099b51e5c1a1a6142469461ccbf645c Mon Sep 17 00:00:00 2001 From: Tamara Date: Thu, 4 Jan 2024 03:12:12 +0300 Subject: [PATCH] =?UTF-8?q?=D1=83=D0=B1=D1=80=D0=B0=D0=BB=D0=B0=20=D1=83?= =?UTF-8?q?=D0=B4=D0=B2=D0=BE=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=88=D0=B0=D0=BF?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=B8=20=D1=81=D0=B0=D0=B9=D0=B4=D0=B1=D0=B0?= =?UTF-8?q?=D1=80=D0=B0+=D0=BD=D0=B8=D0=B6=D0=BD=D0=B5=D0=B5=20=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D1=8E(=D0=B3=D0=BE=D1=82=D0=BE=D0=B2=D0=BE)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.tsx | 23 ++-- src/pages/DesignPage/DesignPage.tsx | 13 -- src/pages/createQuize/MyQuizzesFull.tsx | 2 + src/pages/main.tsx | 48 +++++-- src/pages/startPage/EditPage.tsx | 159 ------------------------ 5 files changed, 51 insertions(+), 194 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 09a95a93..ff27dd94 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -101,13 +101,6 @@ export function useUserAccountFetcher({ dayjs.locale("ru"); const routeslink = [ - { - path: "/list", - page: , - header: false, - sidebar: false, - footer: false, - }, { path: "/tariffs", page: , @@ -122,13 +115,6 @@ const routeslink = [ sidebar: true, footer: true, }, - { - path: "/view", - page: , - header: false, - sidebar: false, - footer: false, - }, { path: "/design", page: , @@ -211,13 +197,20 @@ export default function App() { } /> + } /> + } /> }> {routeslink.map((e, i) => ( +
} /> ))} diff --git a/src/pages/DesignPage/DesignPage.tsx b/src/pages/DesignPage/DesignPage.tsx index 94c5f547..8940a67c 100644 --- a/src/pages/DesignPage/DesignPage.tsx +++ b/src/pages/DesignPage/DesignPage.tsx @@ -25,19 +25,6 @@ import QuizPreview from "@ui_kit/QuizPreview/QuizPreview"; export const DesignPage = () => { const quiz = useCurrentQuiz(); const { editQuizId } = useQuizStore(); - - useEffect(() => { - const getData = async () => { - const quizes = await quizApi.getList(); - setQuizes(quizes); - if (editQuizId) { - const questions = await questionApi.getList({ quiz_id: editQuizId }); - setQuestions(questions); - } - }; - getData(); - }, []); - const { showConfirmLeaveModal } = useUiTools(); const theme = useTheme(); const navigate = useNavigate(); diff --git a/src/pages/createQuize/MyQuizzesFull.tsx b/src/pages/createQuize/MyQuizzesFull.tsx index b0f15fe1..44c2099d 100644 --- a/src/pages/createQuize/MyQuizzesFull.tsx +++ b/src/pages/createQuize/MyQuizzesFull.tsx @@ -15,6 +15,7 @@ import { useNavigate } from "react-router-dom"; import { resetEditConfig } from "@root/quizes/actions"; import FirstQuiz from "./FirstQuiz"; import QuizCard from "./QuizCard"; +import HeaderFull from "@ui_kit/Header/HeaderFull"; interface Props { outerContainerSx?: SxProps; @@ -32,6 +33,7 @@ export default function MyQuizzesFull({ return ( <> + {quizes.length === 0 ? ( ) : ( diff --git a/src/pages/main.tsx b/src/pages/main.tsx index 0aee0fe8..50ca3118 100755 --- a/src/pages/main.tsx +++ b/src/pages/main.tsx @@ -3,10 +3,10 @@ import Sidebar from "@ui_kit/Sidebar"; import Box from "@mui/material/Box"; import { useTheme, useMediaQuery } from "@mui/material"; import HeaderFull from "@ui_kit/Header/HeaderFull"; -import { useState } from "react"; +import { useEffect, useState } from "react"; import { SidebarMobile } from "./startPage/Sidebar/SidebarMobile"; import { setShowConfirmLeaveModal } from "@root/uiTools/actions"; -import { setCurrentStep } from "@root/quizes/actions"; +import { setCurrentStep, setQuizes } from "@root/quizes/actions"; import { useQuizStore } from "@root/quizes/store"; import { SmallSwitchQuestionListGraph } from "@ui_kit/Toolbars/SmallSwitchQuestionListGraph"; import { PanelSwitchQuestionListGraph } from "@ui_kit/Toolbars/PanelSwitchQuestionListGraph"; @@ -17,6 +17,9 @@ import { LinkSimple } from "@icons/LinkSimple"; import { useCurrentQuiz } from "@root/quizes/hooks"; import { deleteTimeoutedQuestions } from "@utils/deleteTimeoutedQuestions"; import { useQuestionsStore } from "@root/questions/store"; +import { quizApi } from "@api/quiz"; +import { questionApi } from "@api/question"; +import { createResult, setQuestions } from "@root/questions/actions"; interface Props { sidebar: boolean; @@ -30,7 +33,34 @@ export default function Main({ sidebar, header, footer, page }: Props) { const quiz = useCurrentQuiz(); const quizConfig = quiz?.config; const { questions } = useQuestionsStore(); + const { editQuizId } = useQuizStore(); const currentStep = useQuizStore((state) => state.currentStep); + + useEffect(() => { + const getData = async () => { + const quizes = await quizApi.getList(); + setQuizes(quizes); + + if (editQuizId) { + const questions = await questionApi.getList({ quiz_id: editQuizId }); + + setQuestions(questions); + //Всегда должен существовать хоть 1 резулт - "line" + if ( + !questions?.find( + (q) => + (q.type === "result" && q.content.includes(':"line"')) || + q.content.includes(":'line'"), + ) + ) { + createResult(quiz?.backendId, "line"); + console.log("Я не нашёл линейный резулт и собираюсь создать новый"); + } + } + }; + getData(); + }, []); + const isMobile = useMediaQuery(theme.breakpoints.down(600)); const isMobileSm = useMediaQuery(theme.breakpoints.down(370)); const isBranchingLogic = useMediaQuery(theme.breakpoints.down(1100)); @@ -45,6 +75,9 @@ export default function Main({ sidebar, header, footer, page }: Props) { } setOpenBranchingPage((old) => !old); }; + + if (!quizConfig) return <>; + const isConditionMet = [1].includes(currentStep) && quizConfig.type !== "form"; @@ -58,9 +91,10 @@ export default function Main({ sidebar, header, footer, page }: Props) { setCurrentStep(index); }; + return ( <> - {header ?
: } +
{page} - {footer ? ( + + {footer && ( )} - ) : ( - <> )} diff --git a/src/pages/startPage/EditPage.tsx b/src/pages/startPage/EditPage.tsx index b5fe6a2d..3b4a15c8 100755 --- a/src/pages/startPage/EditPage.tsx +++ b/src/pages/startPage/EditPage.tsx @@ -41,65 +41,22 @@ import { AnyTypedQuizQuestion } from "@model/questionTypes/shared"; import { ModalInfoWhyCantCreate } from "./ModalInfoWhyCantCreate"; import { ConfirmLeaveModal } from "./ConfirmLeaveModal"; import { checkQuestionHint } from "@utils/checkQuestionHint"; -import { deleteTimeoutedQuestions } from "@utils/deleteTimeoutedQuestions"; -import { toggleQuizPreview } from "@root/quizPreview"; -import { LinkSimple } from "@icons/LinkSimple"; -import { SmallSwitchQuestionListGraph } from "@ui_kit/Toolbars/SmallSwitchQuestionListGraph"; -import { PanelSwitchQuestionListGraph } from "@ui_kit/Toolbars/PanelSwitchQuestionListGraph"; -import { ButtonTestPublication } from "@ui_kit/Toolbars/ButtonTestPublication"; -import { ButtonRecallQuiz } from "@ui_kit/Toolbars/ButtonRecallQuiz"; export default function EditPage() { const quiz = useCurrentQuiz(); const { editQuizId } = useQuizStore(); const { questions } = useQuestionsStore(); console.log(questions); - - useEffect(() => { - const getData = async () => { - const quizes = await quizApi.getList(); - setQuizes(quizes); - - if (editQuizId) { - const questions = await questionApi.getList({ quiz_id: editQuizId }); - - setQuestions(questions); - //Всегда должен существовать хоть 1 резулт - "line" - if ( - !questions?.find( - (q) => - (q.type === "result" && q.content.includes(':"line"')) || - q.content.includes(":'line'"), - ) - ) { - createResult(quiz?.backendId, "line"); - console.log("Я не нашёл линейный резулт и собираюсь создать новый"); - } - } - }; - getData(); - }, []); - const { whyCantCreatePublic, showConfirmLeaveModal } = 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 isLinkButton = useMediaQuery(theme.breakpoints.down(708)); - const isMobileSm = useMediaQuery(theme.breakpoints.down(370)); - const [mobileSidebar, setMobileSidebar] = useState(false); const [nextStep, setNextStep] = useState(0); const quizConfig = quiz?.config; const [openBranchingPage, setOpenBranchingPage] = useState(false); - const openBranchingPageHC = () => { - if (!openBranchingPage) { - deleteTimeoutedQuestions(questions, quiz); - } - setOpenBranchingPage((old) => !old); - }; - useEffect(() => { if (editQuizId === null) navigate("/list"); }, [navigate, editQuizId]); @@ -144,33 +101,14 @@ export default function EditPage() { const isConditionMet = [1].includes(currentStep) && quizConfig.type !== "form"; - const changePage = (index: number) => { - if (currentStep === 2) { - setNextStep(index); - setShowConfirmLeaveModal(true); - - return; - } - - setCurrentStep(index); - }; - return ( <> - {/*
*/} - - {/*{isMobile ? (*/} - {/* */} - {/*) : (*/} - {/* */} - {/*)}*/} - )} - - {/**/} - {/* {isConditionMet &&*/} - {/* (isBranchingLogic ? (*/} - {/* */} - {/* ) : (*/} - {/* */} - {/* ))}*/} - {/* /!* Кнопка тестового просмотра *!/*/} - {/* */} - {/* /!* Кнопка отозвать *!/*/} - {/* */} - {/* /!* Ссылка *!/*/} - {/* {quiz?.status === "start" &&*/} - {/* (!isLinkButton ? (*/} - {/* */} - {/* https://hbpn.link/{quiz.qid}*/} - {/* */} - {/* ) : (*/} - {/* */} - {/* */} - {/* */} - {/* ))}*/} - {/* /!* Маленькая кнопка ссылки *!/*/} - {/* {isMobile && quiz?.status === "start" && (*/} - {/* */} - {/* */} - {/* */} - {/* )}*/} - {/**/}