import { useQuizSettings } from "@contexts/QuizDataContext"; import { CheckboxIcon } from "@icons/Checkbox"; import type { QuestionVariant } from "@model/questionTypes/shared"; import { Checkbox, FormControlLabel, TextField as MuiTextField, Radio, TextFieldProps, useTheme } from "@mui/material"; import { useQuizViewStore } from "@stores/quizView"; import RadioCheck from "@ui_kit/RadioCheck"; import RadioIcon from "@ui_kit/RadioIcon"; import { quizThemes } from "@utils/themes/Publication/themePublication"; import type { FC, MouseEvent } from "react"; const TextField = MuiTextField as unknown as FC; export const VariantItem = ({ questionId, isMulti, variant, answer, index, own = false, }: { isMulti: boolean; questionId: string; variant: QuestionVariant; answer: string | string[] | undefined; index: number; own?: boolean; }) => { const { settings } = useQuizSettings(); const theme = useTheme(); const { updateAnswer, deleteAnswer } = useQuizViewStore((state) => state); const sendVariant = async (event: MouseEvent) => { event.preventDefault(); const variantId = variant.id; if (isMulti) { const currentAnswer = typeof answer !== "string" ? answer || [] : []; return updateAnswer( questionId, currentAnswer.includes(variantId) ? currentAnswer?.filter((item) => item !== variantId) : [...currentAnswer, variantId], variant.points || 0 ); } updateAnswer(questionId, variantId, answer === variantId ? 0 : variant.points || 0); if (answer === variantId) { deleteAnswer(questionId); } }; return ( } icon={} /> ) : ( } icon={} /> ) } label={own ? : variant.answer} onClick={sendVariant} /> ); };