import { Box, FormControl, FormControlLabel, Radio, RadioGroup, Typography, useTheme } from "@mui/material"; import { deleteAnswer, updateAnswer, useQuizViewStore } from "@stores/quizView"; import RadioCheck from "@ui_kit/RadioCheck"; import RadioIcon from "@ui_kit/RadioIcon"; import { sendAnswer } from "@api/quizRelase"; import { enqueueSnackbar } from "notistack"; import type { QuizQuestionEmoji } from "../../../model/questionTypes/emoji"; import { useQuizData } from "@contexts/QuizDataContext"; import { useState } from "react"; type EmojiProps = { currentQuestion: QuizQuestionEmoji; }; export const Emoji = ({ currentQuestion }: EmojiProps) => { const theme = useTheme(); const { quizId } = useQuizData(); const { answers } = useQuizViewStore(); const { answer } = answers.find( ({ questionId }) => questionId === currentQuestion.id ) ?? {}; const [readySend, setReadySend] = useState(true) return ( {currentQuestion.title} answer === id )} onChange={({ target }) => { updateAnswer( currentQuestion.id, currentQuestion.content.variants[Number(target.value)].answer, currentQuestion.content.variants[Number(target.value)].points || 0 ); } } sx={{ display: "flex", flexWrap: "wrap", flexDirection: "row", justifyContent: "space-between", marginTop: "20px", }} > {currentQuestion.content.variants.map((variant, index) => ( {variant.extendedText && ( {variant.extendedText} )} { event.preventDefault(); if (readySend) { setReadySend(false) try { await sendAnswer({ questionId: currentQuestion.id, body: currentQuestion.content.variants[index].extendedText + " " + currentQuestion.content.variants[index].answer, qid: quizId, }); updateAnswer( currentQuestion.id, currentQuestion.content.variants[index].id, currentQuestion.content.variants[index].points || 0 ); } catch (e) { enqueueSnackbar("ответ не был засчитан"); } if (answer === currentQuestion.content.variants[index].id) { deleteAnswer(currentQuestion.id); try { await sendAnswer({ questionId: currentQuestion.id, body: "", qid: quizId, }); } catch (e) { enqueueSnackbar("ответ не был засчитан"); } } setReadySend(true) } }} control={ } icon={} /> } label={ {variant.answer} } /> ))} ); };