2024-01-30 16:49:33 +00:00
|
|
|
import { Box, ThemeProvider } from "@mui/material";
|
2024-02-02 14:35:02 +00:00
|
|
|
import { useQuizData } from "@utils/hooks/useQuizData";
|
2024-01-30 16:49:33 +00:00
|
|
|
import { quizThemes } from "@utils/themes/Publication/themePublication";
|
2023-12-16 14:55:56 +00:00
|
|
|
import { useEffect, useState } from "react";
|
2024-01-30 16:49:33 +00:00
|
|
|
import { ApologyPage } from "./ApologyPage";
|
2023-12-16 14:55:56 +00:00
|
|
|
import { Question } from "./Question";
|
2024-01-30 16:49:33 +00:00
|
|
|
import { StartPageViewPublication } from "./StartPageViewPublication";
|
2023-12-16 14:55:56 +00:00
|
|
|
|
2023-12-17 22:20:52 +00:00
|
|
|
|
2024-02-01 13:18:16 +00:00
|
|
|
export const ViewPage = () => {
|
2024-02-02 14:35:02 +00:00
|
|
|
const { settings, questions, recentlyCompleted } = useQuizData();
|
2024-01-30 16:49:33 +00:00
|
|
|
const [visualStartPage, setVisualStartPage] = useState<boolean>();
|
|
|
|
|
2024-02-02 14:35:02 +00:00
|
|
|
useEffect(() => {
|
2024-01-30 16:49:33 +00:00
|
|
|
const link = document.querySelector('link[rel="icon"]');
|
|
|
|
if (link && settings.cfg.startpage.favIcon) {
|
|
|
|
link.setAttribute("href", settings?.cfg.startpage.favIcon);
|
2023-12-17 18:15:59 +00:00
|
|
|
}
|
2024-02-02 14:35:02 +00:00
|
|
|
|
2024-01-31 12:57:07 +00:00
|
|
|
document.title = settings.name;
|
2024-01-15 17:41:15 +00:00
|
|
|
|
2024-01-30 16:49:33 +00:00
|
|
|
setVisualStartPage(!settings.cfg.noStartPage);
|
|
|
|
}, [settings]);
|
2024-01-15 17:41:15 +00:00
|
|
|
|
2024-02-02 14:35:02 +00:00
|
|
|
const questionsCount = questions.filter(({ type }) => type !== null && type !== "result").length;
|
2024-01-30 16:49:33 +00:00
|
|
|
if (questionsCount === 0) return <ApologyPage message="Нет созданных вопросов" />;
|
|
|
|
|
|
|
|
return (
|
|
|
|
<ThemeProvider theme={quizThemes[settings.cfg.theme || "StandardTheme"]}>
|
2024-02-02 14:35:02 +00:00
|
|
|
{recentlyCompleted ? (
|
2024-01-30 16:49:33 +00:00
|
|
|
<ApologyPage message="Вы уже прошли этот опрос" />
|
|
|
|
) : (
|
|
|
|
<Box>
|
|
|
|
{visualStartPage ? (
|
|
|
|
<StartPageViewPublication setVisualStartPage={setVisualStartPage} />
|
|
|
|
) : (
|
|
|
|
<Question />
|
|
|
|
)}
|
|
|
|
</Box>
|
|
|
|
)}
|
|
|
|
</ThemeProvider>
|
|
|
|
);
|
2024-02-02 14:35:02 +00:00
|
|
|
};
|