import { Box, useTheme } from "@mui/material"; import { useEffect, useState } from "react"; 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 { useQuizData } from "@utils/hooks/useQuizData"; import { notReachable } from "@utils/notReachable"; import { quizThemes } from "@utils/themes/Publication/themePublication"; import { useRootContainerSize } from "../../contexts/RootContainerWidthContext"; export const Question = () => { const theme = useTheme(); const { settings, questions } = useQuizData(); const [currentQuestion, setCurrentQuestion] = useState(); const [showContactForm, setShowContactForm] = useState(false); const [showResultForm, setShowResultForm] = useState(false); const isMobile = useRootContainerSize() < 650; useEffect(() => { if (settings?.cfg.haveRoot) {//ветвимся const questionId = settings?.cfg.haveRoot || ""; const nextQuestion = questions.find(q => q.id === questionId || q.content.id === questionId) || null; if (nextQuestion?.type) { setCurrentQuestion(nextQuestion); return; } } else {//идём прямо setCurrentQuestion(questions[0]); } }, []); 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 && (