diff --git a/lib/api/quizRelase.ts b/lib/api/quizRelase.ts index 5dbc126..e8ba0ca 100644 --- a/lib/api/quizRelase.ts +++ b/lib/api/quizRelase.ts @@ -252,3 +252,40 @@ export function sendFC({ questionId, body, qid, preview }: SendFCParams) { method: "POST", }); } + +//форма контактов +export type SendResultParams = { + questionId: string; + pointsSum: number; + qid: string; + preview: boolean; +}; + +export function sendResult({ questionId, pointsSum, qid, preview }: SendResultParams) { + if (preview) return; + const formData = new FormData(); + + // const keysBody = Object.keys(body) + // const content:any = {} + // fields.forEach((key) => { + // if (keysBody.includes(key)) content[key] = body.key + // }) + + const answers = [ + { + question_id: questionId, + content: pointsSum.toString(), + result: false, + qid, + }, + ]; + + formData.append("answers", JSON.stringify(answers)); + formData.append("qid", qid); + + return publicationMakeRequest({ + url: domain + `/answer/v1.0.0/answer`, + body: formData, + method: "POST", + }); +} diff --git a/lib/components/ViewPublicationPage/ContactForm/ContactForm.tsx b/lib/components/ViewPublicationPage/ContactForm/ContactForm.tsx index 6ce5068..c57d4c9 100644 --- a/lib/components/ViewPublicationPage/ContactForm/ContactForm.tsx +++ b/lib/components/ViewPublicationPage/ContactForm/ContactForm.tsx @@ -24,11 +24,14 @@ import { NameplateLogo } from "@icons/NameplateLogo"; import type { FormContactFieldData, FormContactFieldName } from "@model/settingsData"; import type { QuizQuestionResult } from "@model/questionTypes/result"; import type { AnyTypedQuizQuestion } from "@model/questionTypes/shared"; +import { isProduction } from "@/utils/defineDomain"; type Props = { currentQuestion: AnyTypedQuizQuestion; onShowResult: () => void; }; +//Костыль для особого квиза. Для него не нужно показывать email адрес +const isDisableEmail = window.location.pathname.includes("/377c7570-1bee-4320-ac1e-d731b6223ce8"); export const ContactForm = ({ currentQuestion, onShowResult }: Props) => { const theme = useTheme(); @@ -114,7 +117,8 @@ export const ContactForm = ({ currentQuestion, onShowResult }: Props) => { async function handleShowResultsClick() { const FC = settings.cfg.formContact.fields; - if (FC["email"].used !== EMAIL_REGEXP.test(email)) { + + if (!isDisableEmail && FC["email"].used !== EMAIL_REGEXP.test(email)) { return enqueueSnackbar("введена некорректная почта"); } @@ -250,6 +254,9 @@ export const ContactForm = ({ currentQuestion, onShowResult }: Props) => { setText={setText} adress={adress} setAdress={setAdress} + crutch={{ + disableEmail: isDisableEmail, + }} /> { >; adress: string; setAdress: Dispatch>; + crutch: { + disableEmail: boolean; + }; }; export const Inputs = ({ @@ -32,6 +35,7 @@ export const Inputs = ({ setText, adress, setAdress, + crutch, }: InputsProps) => { const { settings } = useQuizSettings(); const FC = settings.cfg.formContact.fields; @@ -95,7 +99,7 @@ export const Inputs = ({ return ( <> {FC["name"].used ? Name : <>} - {FC["email"].used ? Email : <>} + {FC["email"].used && !crutch.disableEmail ? Email : <>} {FC["phone"].used ? Phone : <>} {FC["text"].used ? Text : <>} {FC["address"].used ? Adress : <>} diff --git a/lib/components/ViewPublicationPage/PointSystemResultList.tsx b/lib/components/ViewPublicationPage/PointSystemResultList.tsx index d9b57b8..686c455 100644 --- a/lib/components/ViewPublicationPage/PointSystemResultList.tsx +++ b/lib/components/ViewPublicationPage/PointSystemResultList.tsx @@ -7,7 +7,6 @@ import { AnyTypedQuizQuestion, QuizQuestionVariant } from "@/index"; export const PointSystemResultList = () => { const theme = useTheme(); - const { questions } = useQuizSettings(); const answers = useQuizViewStore((state) => state.answers); @@ -20,7 +19,6 @@ export const PointSystemResultList = () => { let currentVariants = currentQuestion.content.variants; const currentAnswer = answers.find((a) => a.questionId === currentQuestion.id); - const answeredVariant = currentVariants.find((v, i) => { if (v.id === currentAnswer?.answer) { answerIndex = i; @@ -55,14 +53,20 @@ export const PointSystemResultList = () => { > {currentQuestion.page + 1}. - {currentQuestion.title || "Вопрос без названия"} + + {currentQuestion.title || "Вопрос без названия"} + - {answeredVariant?.points || "0"}/1 + {answeredVariant?.points || "0"} {questionSelect} -