import type { QuestionVariant } from "@/model/questionTypes/shared"; import { useQuizSettings } from "@contexts/QuizDataContext"; import { FormControlLabel, TextareaAutosize, Radio, useTheme, Box, Input } 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 { MouseEvent } from "react"; import { useDebouncedCallback } from "use-debounce"; type VarimgVariantProps = { questionId: string; variant: QuestionVariant; index: number; isSending: boolean; setIsSending: (isSending: boolean) => void; questionLargeCheck: boolean; isMulti: boolean; answer: string | string[] | undefined; ownPlaceholder: string; }; interface OwnInputProps { questionId: string; variant: QuestionVariant; largeCheck: boolean; ownPlaceholder: string; } const OwnInput = ({ questionId, variant, largeCheck, ownPlaceholder }: OwnInputProps) => { const theme = useTheme(); const ownVariants = useQuizViewStore((state) => state.ownVariants); const { updateOwnVariant } = useQuizViewStore((state) => state); const ownAnswer = ownVariants[ownVariants.findIndex((v) => v.id === variant.id)]?.variant.answer || ""; return largeCheck ? ( ) => e.stopPropagation()} onChange={(e: React.ChangeEvent) => { updateOwnVariant(variant.id, e.target.value); }} /> ) : ( ) => e.stopPropagation()} onChange={(e: React.ChangeEvent) => { updateOwnVariant(variant.id, e.target.value); }} /> ); }; export const VarimgVariant = ({ questionId, variant, index, isSending, setIsSending, questionLargeCheck, ownPlaceholder, answer, }: VarimgVariantProps) => { const { settings } = useQuizSettings(); const { updateAnswer, deleteAnswer } = useQuizViewStore((state) => state); const theme = useTheme(); const sendVariant = async (event: MouseEvent) => { event.preventDefault(); updateAnswer(questionId, variant.id, variant.points || 0); if (answer === variant.id) { deleteAnswer(questionId); } }; return ( ) : ( variant.answer ) } control={ } icon={} /> } /> ); };