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", };