стр результатов проверяет наличие линейного резулта + выход со стр резултов кидает на правильное меню

This commit is contained in:
Nastya 2024-01-05 17:54:09 +03:00
parent 6b5bf705c6
commit 3e86ef34b1
5 changed files with 22 additions and 9 deletions

@ -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);

@ -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<number>(0);
const quizConfig = quiz?.config;
// const [openBranchingPage, setOpenBranchingPage] = useState<boolean>(false);

@ -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 });

@ -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<UiTools>()(

@ -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={
<Icon
color={
currentStep === index
currentStep === index && pathname.startsWith("/edit")
? theme.palette.brightPurple.main
: isMenuCollapsed
? "white"
@ -154,9 +156,9 @@ export default function Sidebar({ changePage, disableCollapse }: SidebarProps) {
}}
text={"Дизайн"}
isCollapsed={isMenuCollapsed}
isActive={currentStep === 6}
isActive={pathname.startsWith("/design")}
disabled={
currentStep === 6
pathname.startsWith("/design")
? false
: quiz === undefined
? true
@ -165,7 +167,7 @@ export default function Sidebar({ changePage, disableCollapse }: SidebarProps) {
icon={
<PencilCircleIcon
color={
currentStep === 6
pathname.startsWith("/design")
? theme.palette.brightPurple.main
: isMenuCollapsed
? "white"