import { quizApi } from "@api/quiz"; import { devlog } from "@frontend/kitui"; import BackArrowIcon from "@icons/BackArrowIcon"; import { Burger } from "@icons/Burger"; import EyeIcon from "@icons/EyeIcon"; import { PenaLogoIcon } from "@icons/PenaLogoIcon"; import { Box, Button, Container, FormControl, IconButton, TextField, useMediaQuery, useTheme, } from "@mui/material"; import { decrementCurrentStep, resetEditConfig, setQuizes } from "@root/quizes/actions"; import { useCurrentQuiz } from "@root/quizes/hooks"; import { useQuizStore } from "@root/quizes/store"; import CustomAvatar from "@ui_kit/Header/Avatar"; import NavMenuItem from "@ui_kit/Header/NavMenuItem"; import PenaLogo from "@ui_kit/PenaLogo"; import Sidebar from "@ui_kit/Sidebar"; import Stepper from "@ui_kit/Stepper"; import SwitchStepPages from "@ui_kit/switchStepPages"; import { isAxiosError } from "axios"; import { enqueueSnackbar } from "notistack"; import { useEffect, useState } from "react"; import { Link, useNavigate } from "react-router-dom"; import useSWR from "swr"; import { SidebarMobile } from "./Sidebar/SidebarMobile"; import { cleanQuestions } from "@root/questions/actions"; export default function StartPage() { useSWR("quizes", () => quizApi.getList(), { onSuccess: setQuizes, onError: error => { const message = isAxiosError(error) ? (error.response?.data ?? "") : ""; devlog("Error getting quiz list", error); enqueueSnackbar(`Не удалось получить квизы. ${message}`); }, }); const theme = useTheme(); const navigate = useNavigate(); const editQuizId = useQuizStore(state => state.editQuizId); const quiz = useCurrentQuiz(); const currentStep = useQuizStore(state => state.currentStep); const isTablet = useMediaQuery(theme.breakpoints.down(1000)); const isMobile = useMediaQuery(theme.breakpoints.down(660)); const [mobileSidebar, setMobileSidebar] = useState(false); const quizConfig = quiz?.config; useEffect(() => { if (editQuizId === null) navigate("/list"); }, [navigate, editQuizId]); useEffect(() => () => { resetEditConfig(); cleanQuestions(); }, []); return ( <> {/*хедер*/} {isMobile ? ( ) : ( )} {isTablet ? ( {isMobile ? ( setMobileSidebar(!mobileSidebar)} style={{ fontSize: "30px", color: "white", cursor: "pointer" }} /> ) : ( )} ) : ( <> )} {isMobile ? : } {quizConfig && <> } {isTablet && [1, 2, 3].includes(currentStep) && ( )} ); }