import { ArrowDownIcon } from "@icons/questionsPage/ArrowDownIcon"; import { Box, Button, IconButton, Link, Modal, Typography, useMediaQuery, useTheme, } from "@mui/material"; import { FC, useState } from "react"; import { ContactIcon } from "./icons/ContactIcon"; import { MessageIcon } from "./icons/MessageIcon"; import { PhoneIcon } from "./icons/PhoneIcon"; import { DeleteIcon } from "@icons/questionsPage/deleteIcon"; import homeImg from "./images/home.png"; import videoFrame from "./images/videoFrame.png"; import { EyeIcon } from "./icons/EyeIcon"; import { deleteResult, obsolescenceResult } from "@root/results/actions"; import { resultApi } from "@api/result"; import { useQuizStore } from "@root/quizes/store"; import { useQuestionsStore } from "@root/questions/store"; import AddressIcon from "@icons/ContactFormIcon/AddressIcon"; import type { AxiosError } from "axios"; import { DeleteModal } from "./DeleteModal"; interface Props { isNew: boolean; idResult: string; onClick: () => void; dayResult: string; timeResult: string; name?: string; phone?: string; email?: string; address?: string; onLossNew?: (id: string) => void; openPrePaymentModal: () => void; } export const CardAnswer = ({ name, phone, email, address, isNew = true, idResult, timeResult, dayResult, onLossNew, openPrePaymentModal, }: Props) => { const [isOpen, setIsOpen] = useState(false); const [openDelete, setOpenDelete] = useState(false); const theme = useTheme(); const isTablet = useMediaQuery(theme.breakpoints.down(1000)); const [resultsAnswer, setResultsAnswer] = useState([]); const [resultQuiz, setResultQuiz] = useState([]); const [questionsResultState, setQuestionsResultState] = useState([]); const { editQuizId } = useQuizStore(); const { questions } = useQuestionsStore(); const openResults = async () => { setIsOpen(!isOpen); if (!isOpen) { try { let resAnswer = await resultApi.getAnswerList(Number(idResult)); let resAnswerOnly = resAnswer.filter((res) => res.Result !== true); let resQuiz = resAnswer.filter((res) => res.Result === true); setResultQuiz(resQuiz); setResultsAnswer(resAnswerOnly); let idResults = resQuiz[0].question_id; let questionsResult = questions.filter( (q) => q.backendId === idResults, ); setQuestionsResultState(questionsResult); console.log("тут хранятся ответы", resAnswerOnly); } catch (nativeError) { const error = nativeError as AxiosError; if (error.response?.statusText === "Payment Required") { openPrePaymentModal(); } } } }; return ( { obsolescenceResult(idResult, editQuizId); openResults(); }} sx={{ borderRadius: "12px", maxWidth: isTablet ? "450px" : "auto", width: "100%", boxShadow: "0px 2.767px 8.551px 0px rgba(210, 208, 225, 0.07), 0px 6.65px 20.549px 0px rgba(210, 208, 225, 0.10), 0px 12.522px 38.692px 0px rgba(210, 208, 225, 0.12), 0px 22.336px 69.019px 0px rgba(210, 208, 225, 0.14), 0px 41.778px 129.093px 0px rgba(210, 208, 225, 0.17), 0px 100px 309px 0px rgba(210, 208, 225, 0.24)", }} > {idResult} {dayResult} в {timeResult} {name && ( {name} )} {email && ( {email} )} {phone && ( {phone} )} {address && ( {address} )} {!isTablet && isNew && ( Новая )} {isTablet && isNew ? ( <> Новая setOpenDelete(true)}> ) : ( setOpenDelete(true)}> )} setOpenDelete(false)} onClick={() => { deleteResult(Number(idResult)); setOpenDelete(false); }} /> {isOpen && ( Ответы {resultsAnswer.map((answer, id) => { let titleQuestion; let typeOuestion; let typeQuestionFile; let quest = questions; //массив с вопросами let i; let idAnswer = answer.question_id; //айди вопроса у ответа for (i in quest) { if (quest[i].backendId === idAnswer) { titleQuestion = quest[i].title; typeOuestion = quest[i].type; typeQuestionFile = quest[i].content.type; } } return ( {id + 1}. {titleQuestion}. {typeOuestion === "file" && ( {typeQuestionFile === "video" && ( )} {typeQuestionFile === "picture" && ( )} клик для скачивания )} {(typeOuestion === "images" || typeOuestion === "varimg") && ( <> ')[0] } /> {answer.content.split("<")[0]} )} {!( typeOuestion === "file" || typeOuestion === "images" || typeOuestion === "varimg" ) && ( {answer.content} )} ); })} Результаты {questionsResultState.map((res) => { console.log(questionsResultState, "что за результат тут"); return ( {res.description} {res.title} {res.content.useImage && res.content.back && res.content.back !== " " && ( {""} )} {!res.content.useImage && res.content.back && res.content.back !== " " && ( )} ); })} )} ); };