import IconPlus from "@icons/IconPlus"; import Info from "@icons/Info"; import Plus from "@icons/Plus"; import ArrowLeft from "@icons/questionsPage/arrowLeft"; import { Box, Button, Typography, Paper, Modal, TextField } from "@mui/material"; import { incrementCurrentStep } from "@root/quizes/actions"; import CustomWrapper from "@ui_kit/CustomWrapper"; import { DescriptionForm } from "./DescriptionForm/DescriptionForm"; import { ResultListForm } from "./ResultListForm"; import { SettingForm } from "./SettingForm"; import { useEffect, useRef, useState } from "react"; import { WhenCard } from "./cards/WhenCard"; 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 { QuizQuestionResult } from "@model/questionTypes/result"; export const ResultSettings = () => { const { questions } = useQuestionsStore(); const quiz = useCurrentQuiz(); const results = useQuestionsStore().questions.filter((q): q is QuizQuestionResult => q.type === "result"); const [quizExpand, setQuizExpand] = useState(true); const [resultContract, setResultContract] = useState(true); const isReadyToLeaveRef = useRef(true); console.log(quiz) console.log(results) useEffect( function calcIsReadyToLeave() { let isReadyToLeave = true; results.forEach((result) => { if (checkEmptyData({ resultData: result })) { isReadyToLeave = false; } }); isReadyToLeaveRef.current = isReadyToLeave; }, [results] ); useEffect(() => { return () => { if (isReadyToLeaveRef.current === false) alert("Пожалуйста, проверьте, что вы заполнили все результаты"); }; }, []); return ( Настройки результатов {quiz.config.resultInfo.when === "email" && } Создайте результат {results.map((resultQuestion) => ( ))} <> ); };