import ExpandMoreIcon from "@mui/icons-material/ExpandMore"; import { Box, Button, IconButton, Link, Paper, SxProps, TextField, Theme, Typography, useTheme, Popover, useMediaQuery, Divider } from "@mui/material"; import { incrementCurrentStep, updateQuiz } from "@root/quizes/actions"; import CustomTextField from "@ui_kit/CustomTextField"; import React from "react"; import Info from "../../assets/icons/Info"; import Trash from "@icons/trash"; import { OneIcon } from "../../assets/icons/questionsPage/OneIcon"; import AddPlus from "../../assets/icons/questionsPage/addPlus"; import ArrowLeft from "../../assets/icons/questionsPage/arrowLeft"; import { decrementCurrentStep } from "@root/quizes/actions"; import ButtonSettingForms from "./ButtonSettingForms"; import DrawerNewField from "./DrawerParent"; import WindowMessengers from "./Massengers/WindowMessengers"; import WindowNewField from "./NewField/WindowNewField"; import SwitchContactForm from "./switchContactForm"; import GearIcon from "@icons/GearIcon"; import { useQuestionsStore } from "@root/questions/store"; import { useCurrentQuiz } from "@root/quizes/hooks"; const buttons = [ { name: "Имя", desc: "Дмитрий", key: "name" }, { name: "Email", desc: "mail@example.ru", key: "email" }, { name: "Номер", desc: "+7 900 000 00 00", key: "phone" }, { name: "Фамилия", desc: "Иванов", key: "text" }, { name: "Адрес", desc: "Москва, Лаврушинский пер., 10", key: "address" }, ] export default function ContactFormPage() { const theme = useTheme(); const quiz = useCurrentQuiz() const isTablet = useMediaQuery(theme.breakpoints.down(1000)) const [drawerNewField, setDrawerNewField] = React.useState(""); const [drawerMessenger, setDrawerMessenger] = React.useState(false); const drawerNewFieldHC = (str: string) => { setDrawerNewField(str); }; const drawerMessengerHC = (bool: boolean) => { setDrawerMessenger(bool); }; return ( Как собрать данные посетителя {" "} {/* */} { !quiz?.config.formContact.name.used && !quiz?.config.formContact.email.used && !quiz?.config.formContact.phone.used && !quiz?.config.formContact.text.used && !quiz?.config.formContact.address.used ? : } ); } interface Props { outerContainerSx?: SxProps; children?: React.ReactNode; } function ContactFormParent({ outerContainerSx: sx, children }: Props) { const theme = useTheme(); const isTablet = useMediaQuery(theme.breakpoints.down(1000)) const quiz = useCurrentQuiz() return ( { updateQuiz(quiz.id, (quiz) => { quiz.config.formContact.title = target.value }) }} value={quiz.config.formContact.title} placeholder="Заголовок формы" text={""} /> { updateQuiz(quiz.id, (quiz) => { quiz.config.formContact.desc = target.value }) }} value={quiz.config.formContact.desc} id="outlined-multiline-static" multiline rows={8} placeholder="Дополнительный текст формы" sx={{ backgroundColor: theme.palette.background.default, "& .MuiInputBase-root": { borderRadius: "10px", alignItems: "start", color: theme.palette.grey2.main, color:"black", }, }} /> {children} ); } const SettingField = ({ name, placeholder, type, drawerNewFieldHC }: { name: string, placeholder: string, type: string; drawerNewFieldHC: any }) => { const theme = useTheme(); const quiz = useCurrentQuiz() return ( <> {quiz.config.formContact[type].text || name} {quiz.config.formContact[type].innerText || placeholder} drawerNewFieldHC(type)} sx={{ position: "absolute", right: "0" }}> updateQuiz(quiz?.id, (quiz) => { quiz.config.formContact[type].used = false })} sx={{ width: "48px", ml: "5px" }} > ) } const ButtonsCard = ({ drawerNewFieldHC }: any) => { const theme = useTheme(); const quiz = useCurrentQuiz() return ( { buttons.map((contentData) => { const content = quiz?.config.formContact[contentData.key] return content.used ? : <> }) } { ( quiz?.config.formContact.name.used && quiz?.config.formContact.email.used && quiz?.config.formContact.phone.used && quiz?.config.formContact.text.used && quiz?.config.formContact.address.used ) ? <> : } {/* drawerMessengerHC(true)} sx={{ fontSize: "16px", lineHeight: "19px", color: theme.palette.brightPurple.main, textDecorationColor: theme.palette.brightPurple.main, textAlign: "left", }} > Добавить мессенджеры */} ) } const EmptyCard = ({ drawerNewFieldHC }: { drawerNewFieldHC: (a: string) => void }) => { const theme = useTheme(); const [FC, setFC] = React.useState(false) const openFC = () => setFC(true) const closeFC = () => setFC(false) const popover = React.useRef(null); return ( Будут показаны поля по умолчанию Если вам не нужно собирать контакты,

отключите форму контактов
{/* Добавить мессенджеры */}
) } const PseudoButton = () => { const quiz = useCurrentQuiz() return ( { updateQuiz(quiz.id, (quiz) => { quiz.config.formContact.button = target.value }) }} value={quiz.config.formContact.button} sx={{ heigth: "44px", width: "190px", "& .MuiInputBase-root": { backgroundColor: "#7E2AEA", borderRadius: "8px", color: "white", }, "& .MuiInputBase-input": { padding: "10px 20px", textAlign: "center" }, "& .MuiInputBase-input::placeholder": { color: "white", opacity: "1" } }} placeholder="Название кнопки" > {quiz?.config.formContact.button || "Название кнопки"} ) }