From b4f1bb89092b0db6f6032466ca32e9d58f1f5cf6 Mon Sep 17 00:00:00 2001 From: Nastya Date: Sun, 31 Dec 2023 03:04:35 +0300 Subject: [PATCH] =?UTF-8?q?=D1=80=D0=B5=D0=B7=D1=83=D0=BB=D1=82=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=BA=D0=B0=D0=B7=D1=8B=D0=B2=D0=B0=D0=B5=D1=82=D1=81?= =?UTF-8?q?=D1=8F=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=20=D0=A4=D0=9A=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=20=D1=82=D0=B8=D0=BF=D0=B0=20=D0=BA=D0=B2=D0=B8?= =?UTF-8?q?=D0=B7=D0=B0=20=D0=B5=D0=BC=D0=B5=D0=B9=D0=BB+=20=D0=B5=D0=B4?= =?UTF-8?q?=D0=B8=D0=BD=D0=BE=D1=80=D0=B0=D0=B7=D0=BE=D0=B2=D0=BE=D0=B5=20?= =?UTF-8?q?=D0=BE=D1=82=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B8=20=D0=BA=D0=BB=D0=B8=D0=BA=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/ViewPublicationPage/ContactForm.tsx | 92 ++++++++++++------- src/pages/ViewPublicationPage/Footer.tsx | 8 +- src/pages/ViewPublicationPage/Question.tsx | 2 +- 3 files changed, 64 insertions(+), 38 deletions(-) diff --git a/src/pages/ViewPublicationPage/ContactForm.tsx b/src/pages/ViewPublicationPage/ContactForm.tsx index 09d0b7e..c0bff21 100644 --- a/src/pages/ViewPublicationPage/ContactForm.tsx +++ b/src/pages/ViewPublicationPage/ContactForm.tsx @@ -15,7 +15,9 @@ import type { AnyTypedQuizQuestion } from "../../model/questionTypes/shared"; import { enqueueSnackbar } from "notistack"; import { sendFC } from "@api/quizRelase"; import { NameplateLogo } from "@icons/NameplateLogo"; -import {modes} from "../../utils/themes/Publication/themePublication"; +import { modes } from "../../utils/themes/Publication/themePublication"; +import { QuizQuestionResult } from "@model/questionTypes/result"; +import { ApologyPage } from "./ApologyPage"; type ContactFormProps = { currentQuestion: any; @@ -47,14 +49,17 @@ export const ContactForm = ({ const [text, setText] = useState("") const [adress, setAdress] = useState("") + const fireOnce = useRef(true) + const [fire, setFire] = useState(false) + const followNextForm = () => { setShowContactForm(false); setShowResultForm(true); }; const theme = useTheme(); const mode = modes; -//@ts-ignore - const resultQuestion = items.find((question) => { + //@ts-ignore + const resultQuestion: QuizQuestionResult = items.find((question) => { if (settings?.cfg.haveRoot) { //ветвимся return ( question.type === "result" && @@ -101,6 +106,8 @@ export const ContactForm = ({ } } + if (!resultQuestion) return + return ( {settings?.cfg.formContact.title || "Заполните форму, чтобы получить результаты теста"} @@ -152,7 +159,7 @@ export const ContactForm = ({ alignItems: "center", justifyContent: "center", flexDirection: "column", - backgroundColor: theme.palette.background.default, + backgroundColor: theme.palette.background.default, p: "30px" }}> @@ -179,27 +186,40 @@ export const ContactForm = ({ // settings?.cfg.resultInfo.when === "after" && ( )} @@ -211,13 +231,13 @@ export const ContactForm = ({ width: "450px", }} > - { setReady(target.checked) }} checked={ready} colorIcon={theme.palette.primary.main}/> + { setReady(target.checked) }} checked={ready} colorIcon={theme.palette.primary.main} /> С  - Положением об обработке персональных данных -  и  - Политикой конфиденциальности -  ознакомлен + Положением об обработке персональных данных +  и  + Политикой конфиденциальности +  ознакомлен @@ -226,16 +246,20 @@ export const ContactForm = ({ display: "flex", alignItems: "center", mt: "20px", - gap: "15px" + gap: "15px" }} > - - - Сделано на Penasettings + + + Сделано на Penasettings diff --git a/src/pages/ViewPublicationPage/Footer.tsx b/src/pages/ViewPublicationPage/Footer.tsx index ce47858..5910249 100644 --- a/src/pages/ViewPublicationPage/Footer.tsx +++ b/src/pages/ViewPublicationPage/Footer.tsx @@ -103,7 +103,7 @@ export const Footer = ({ setCurrentQuestion, question, setShowContactForm, setSh } } - if (nextQuestion && settings?.cfg.resultInfo.when === "after") { + if (nextQuestion && (settings?.cfg.resultInfo.when === "after" || settings?.cfg.resultInfo.when === "email")) { if (isEmpty) { setShowContactForm(true); //после+пустая @@ -117,8 +117,9 @@ export const Footer = ({ setCurrentQuestion, question, setShowContactForm, setSh }; const getNextQuestionId = () => { - console.log("net") + console.log("Смотрим какой вопрос будет дальше. Что у нас сегодня вкусненького? Щя покажу от какого вопроса мы ищем следующий шаг") console.log(question) + console.log("От вот этого /|") let readyBeNextQuestion = ""; //вопрос обязателен, анализируем ответ и условия ветвления @@ -157,7 +158,7 @@ export const Footer = ({ setCurrentQuestion, question, setShowContactForm, setSh if (!question.required) {//вопрос не обязателен и не нашли совпадений между ответами и условиями ветвления console.log("вопрос не обязателен ищем дальше") const defaultQ = question.content.rule.default - if (defaultQ) return defaultQ + if (defaultQ.length > 1 && defaultQ !== " ") return defaultQ //Вопросы типа страница, ползунок, своё поле для ввода и дата не могут иметь больше 1 ребёнка. Пользователь не может настроить там дефолт //Кинуть на ребёнка надо даже если там нет дефолта if ( @@ -227,6 +228,7 @@ export const Footer = ({ setCurrentQuestion, question, setShowContactForm, setSh } const nextQuestionId = getNextQuestionId(); + console.log(nextQuestionId) if (nextQuestionId) { const nextQuestion = getQuestionById(nextQuestionId); diff --git a/src/pages/ViewPublicationPage/Question.tsx b/src/pages/ViewPublicationPage/Question.tsx index 84edc48..8ae9176 100644 --- a/src/pages/ViewPublicationPage/Question.tsx +++ b/src/pages/ViewPublicationPage/Question.tsx @@ -118,7 +118,7 @@ export const Question = ({ questions }: QuestionProps) => { setShowResultForm={setShowResultForm} /> )} - {showResultForm && settings?.cfg.resultInfo.when === "after" && ( + {showResultForm && (settings?.cfg.resultInfo.when === "after" || settings?.cfg.resultInfo.when === "email") && (