import { Box, useMediaQuery, useTheme } from "@mui/material"; import { useEffect, useState } from "react"; import { getQuestionById } from "@stores/quizData/actions"; import { ContactForm } from "./ContactForm"; import { Footer } from "./Footer"; import { ResultForm } from "./ResultForm"; import { Date } from "./questions/Date"; import { Emoji } from "./questions/Emoji"; import { File } from "./questions/File"; import { Images } from "./questions/Images"; import { Number } from "./questions/Number"; import { Page } from "./questions/Page"; import { Rating } from "./questions/Rating"; import { Select } from "./questions/Select"; import { Text } from "./questions/Text"; import { Variant } from "./questions/Variant"; import { Varimg } from "./questions/Varimg"; import type { AnyTypedQuizQuestion } from "../../model/questionTypes/shared"; import { NameplateLogoFQ } from "@icons/NameplateLogoFQ"; import { NameplateLogoFQDark } from "@icons/NameplateLogoFQDark"; import { QuizQuestionResult } from "@model/questionTypes/result"; import { useQuestionsStore } from "@stores/quizData/store"; import { notReachable } from "@utils/notReachable"; import { quizThemes } from "@utils/themes/Publication/themePublication"; export const Question = () => { const theme = useTheme(); const settings = useQuestionsStore(state => state.settings); const questions = useQuestionsStore(state => state.items); const [currentQuestion, setCurrentQuestion] = useState(); const [showContactForm, setShowContactForm] = useState(false); const [showResultForm, setShowResultForm] = useState(false); const isMobile = useMediaQuery(theme.breakpoints.down(650)); useEffect(() => { if (settings?.cfg.haveRoot) {//ветвимся const nextQuestion = getQuestionById(settings?.cfg.haveRoot || ""); if (nextQuestion?.type) { setCurrentQuestion(nextQuestion); return; } } else {//идём прямо setCurrentQuestion(questions[0]); } }, []); if (!settings) throw new Error("settings is null"); if (!currentQuestion || currentQuestion.type === "result") return "не смог отобразить вопрос"; return ( {!showContactForm && !showResultForm && ( {quizThemes[settings.cfg.theme].isLight ? ( ) : ( )} )} {showResultForm && settings?.cfg.resultInfo.showResultForm === "before" && ( )} {showContactForm && ( )} {showResultForm && settings?.cfg.resultInfo.showResultForm === "after" && ( )} {!showContactForm && !showResultForm && (