import { useEffect, useRef, useState } from "react"; // import { useBlocker } from "react-router-dom"; 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 { 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"; import IconPlus from "@icons/IconPlus"; import Info from "@icons/Info"; import Plus from "@icons/Plus"; import ArrowLeft from "@icons/questionsPage/arrowLeft"; 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 [triggerExit, setTriggerExit] = useState<{ follow: boolean; path: string; }>({ follow: false, path: "" }); const [openNotificationModal, setOpenNotificationModal] = useState(true); const isReadyToLeaveRef = useRef(true); // const blocker = useBlocker(false); useEffect( function calcIsReadyToLeave() { let isReadyToLeave = true; results.forEach((result) => { if (checkEmptyData({ resultData: result })) { isReadyToLeave = false; } }); isReadyToLeaveRef.current = isReadyToLeave; }, [results], ); useEffect(() => { return () => { if (!isReadyToLeaveRef.current && window.location.pathname !== "/edit") { setOpenNotificationModal(true); } }; }, []); const cnsl = results.filter((q) => q.content.usage); const shouldBlock = true; // Replace this // useEffect(() => { // if (shouldBlock) { // blocker.proceed?.() // } // }, [shouldBlock]); const leavePage = (leave: boolean) => { if (leave) { } setOpenNotificationModal(false); }; return ( Настройки результатов {quiz.config.resultInfo.when === "email" && ( )} Создайте результат {cnsl.map((resultQuestion) => ( ))} <> ); };