import { AnyTypedQuizQuestion } from "@model/questionTypes/shared"; import { Box, ButtonBase, Typography } from "@mui/material"; import { updateQuestion } from "@root/questions/actions"; import CustomTextField from "@ui_kit/CustomTextField"; import SelectableButton from "@ui_kit/SelectableButton"; import UploadBox from "@ui_kit/UploadBox"; import { useState } from "react"; import { useDebouncedCallback } from "use-debounce"; import UploadIcon from "../../assets/icons/UploadIcon"; import { UploadVideoModal } from "./UploadVideoModal"; type BackgroundType = "text" | "video"; type HelpQuestionsProps = { question: AnyTypedQuizQuestion; }; export default function HelpQuestions({ question }: HelpQuestionsProps) { const [open, setOpen] = useState(false); const [backgroundType, setBackgroundType] = useState("text"); const updateQuestionHint = useDebouncedCallback((value) => { updateQuestion(question.id, question => { question.content.hint.text = value; }); }, 200); return ( Подсказка консультанта setBackgroundType("text")} sx={{ maxWidth: "130px" }} > Текст setBackgroundType("video")} sx={{ maxWidth: "130px" }} > Видео {backgroundType === "text" ? ( <> updateQuestionHint(target.value || " ")} /> ) : ( Загрузите видео setOpen(true)} sx={{ justifyContent: "flex-start" }} > {question.content.hint.video ? ( setOpen(false)} video={question.content.hint.video} onUpload={url => updateQuestion(question.id, question => { question.content.hint.video = url; })} /> )} ); }