import { MessageIcon } from "@icons/messagIcon"; import { PointsIcon } from "@icons/questionsPage/PointsIcon"; import { DeleteIcon } from "@icons/questionsPage/deleteIcon"; import TextareaAutosize from "@mui/base/TextareaAutosize"; import { Box, FormControl, IconButton, InputAdornment, Popover, TextField, useMediaQuery, useTheme, } from "@mui/material"; import { addQuestionVariant, deleteQuestionVariant, setQuestionVariantField } from "@root/questions/actions"; import type { KeyboardEvent, ReactNode } from "react"; import { useState } from "react"; import { Draggable } from "react-beautiful-dnd"; import { useDebouncedCallback } from "use-debounce"; import type { ImageQuestionVariant, QuestionVariant } from "../../../model/questionTypes/shared"; type AnswerItemProps = { index: number; questionId: string; variant: QuestionVariant | ImageQuestionVariant; largeCheck: boolean; additionalContent?: ReactNode; additionalMobile?: ReactNode; }; export const AnswerItem = ({ index, variant, questionId, largeCheck, additionalContent, additionalMobile, }: AnswerItemProps) => { const theme = useTheme(); const isTablet = useMediaQuery(theme.breakpoints.down(790)); const [isOpen, setIsOpen] = useState(false); const [anchorEl, setAnchorEl] = useState(null); const handleClick = (event: React.MouseEvent) => { setAnchorEl(event.currentTarget); setIsOpen(true); }; const handleClose = () => { setIsOpen(false); }; return ( {(provided) => ( { setQuestionVariantField(questionId, variant.id, "answer", target.value) }} onKeyDown={(event: KeyboardEvent) => { if (event.code === "Enter" && !largeCheck) { addQuestionVariant(questionId); } }} InputProps={{ startAdornment: ( <> {additionalContent} ), endAdornment: ( setQuestionVariantField(questionId, variant.id, "hints", e.target.value)} onKeyDown={( event: KeyboardEvent ) => event.stopPropagation()} /> deleteQuestionVariant(questionId, variant.id)} > ), }} sx={{ "& .MuiInputBase-root": { padding: additionalContent ? "5px 13px" : "13px", borderRadius: "10px", background: "#ffffff", "& input.MuiInputBase-input": { height: "22px", }, "& textarea.MuiInputBase-input": { marginTop: "1px", }, "& .MuiOutlinedInput-notchedOutline": { border: "none", }, }, }} inputProps={{ sx: { fontSize: "18px", lineHeight: "21px", py: 0, ml: "13px" }, "data-cy": "quiz-variant-question-answer", }} /> {additionalMobile} )} ); };