import {
Box,
Button,
ButtonBase,
Link,
Paper,
Typography,
useMediaQuery,
useTheme,
} from "@mui/material";
import { useCurrentQuiz } from "@root/quizes/hooks";
import YoutubeEmbedIframe from "../../ui_kit/StartPagePreview/YoutubeEmbedIframe";
import { QuizStartpageAlignType, QuizStartpageType } from "@model/quizSettings";
import { notReachable } from "../../utils/notReachable";
import { useUADevice } from "../../utils/hooks/useUADevice";
interface Props {
setVisualStartPage: (a:boolean) => void
}
export const StartPageViewPublication = ({setVisualStartPage}:Props) => {
const theme = useTheme();
const quiz = useCurrentQuiz();
const { isMobileDevice } = useUADevice();
if (!quiz) return null;
const handleCopyNumber = () => {
navigator.clipboard.writeText(quiz.config.info.phonenumber);
};
const background = quiz.config.startpage.background.type === "image"
? quiz.config.startpage.background.desktop
? (
)
: null
: quiz.config.startpage.background.type === "video"
? quiz.config.startpage.background.video
? (
)
: null
: null;
return (
{quiz.config.startpage.logo && (
)}
{quiz.config.info.orgname}
{quiz.config.info.site}
}
quizMainBlock={<>
{quiz.name}
{quiz.config.startpage.description}
{quiz.config.info.clickable ? (
isMobileDevice ? (
{quiz.config.info.phonenumber}
) : (
{quiz.config.info.phonenumber}
)
) : (
{quiz.config.info.phonenumber}
)}
{quiz.config.info.law}
>}
backgroundBlock={background}
startpageType={quiz.config.startpageType}
alignType={quiz.config.startpage.position}
/>
);
}
function QuizPreviewLayoutByType({ quizHeaderBlock, quizMainBlock, backgroundBlock, startpageType, alignType }: {
quizHeaderBlock: JSX.Element;
quizMainBlock: JSX.Element;
backgroundBlock: JSX.Element | null;
startpageType: QuizStartpageType;
alignType: QuizStartpageAlignType;
}) {
const theme = useTheme();
const isTablet = useMediaQuery(theme.breakpoints.down(630));
switch (startpageType) {
case null:
case "standard": {
return (
{quizHeaderBlock}
{quizMainBlock}
{backgroundBlock}
);
}
case "expanded": {
return (
{quizHeaderBlock}
{quizMainBlock}
{backgroundBlock}
);
}
case "centered": {
return (
{quizHeaderBlock}
{backgroundBlock &&
{backgroundBlock}
}
{quizMainBlock}
);
}
default: notReachable(startpageType);
}
}
const startpageAlignTypeToJustifyContent: Record = {
left: "start",
center: "center",
right: "end",
};