import { useState } from "react"; import { useParams } from "react-router-dom"; import { Box, Typography, useMediaQuery, useTheme } from "@mui/material"; import ButtonsOptions from "../ButtonsOptions"; import SwitchRating from "./switchRating"; import { questionStore, updateQuestionsList } from "@root/questions"; import CustomTextField from "@ui_kit/CustomTextField"; import TropfyIcon from "../../../assets/icons/questionsPage/tropfyIcon"; import FlagIcon from "../../../assets/icons/questionsPage/FlagIcon"; import HeartIcon from "../../../assets/icons/questionsPage/heartIcon"; import LikeIcon from "../../../assets/icons/questionsPage/likeIcon"; import LightbulbIcon from "../../../assets/icons/questionsPage/lightbulbIcon"; import HashtagIcon from "../../../assets/icons/questionsPage/hashtagIcon"; import StarIconMini from "../../../assets/icons/questionsPage/StarIconMini"; interface Props { totalIndex: number; } export type ButtonRatingFrom = { name: string; icon: JSX.Element; }; export default function RatingOptions({ totalIndex }: Props) { const [switchState, setSwitchState] = useState("setting"); const quizId = Number(useParams().quizId); const { listQuestions } = questionStore(); const theme = useTheme(); const isMobile = useMediaQuery(theme.breakpoints.down(790)); const buttonRatingForm: ButtonRatingFrom[] = [ { name: "star", icon: }, { name: "trophie", icon: }, { name: "flag", icon: }, { name: "heart", icon: }, { name: "like", icon: }, { name: "bubble", icon: , }, { name: "hashtag", icon: }, ]; const SSHC = (data: string) => { setSwitchState(data); }; return ( <> {Array.from( { length: listQuestions[quizId][totalIndex].content.steps }, (_, index) => index ).map((itemNumber) => ( { updateQuestionsList(quizId, totalIndex, { content: { ...listQuestions[quizId][totalIndex].content, ratingExpanded: true, }, }); }, sx: { cursor: "pointer", transform: "scale(1.5)", ":hover": { transform: "scale(1.7)", transition: "0.2s", }, }, } : { sx: { transform: "scale(1.5)" } })} > { buttonRatingForm.find( ({ name }) => listQuestions[quizId][totalIndex].content.form === name )?.icon } ))} Негативно Позитивно {listQuestions[quizId][totalIndex].content.ratingExpanded && (listQuestions[quizId][totalIndex].content.ratingDescription ? ( {listQuestions[quizId][totalIndex].content.ratingDescription} ) : ( { if (key === "Enter") { const currentTarget = target as HTMLInputElement; updateQuestionsList(quizId, totalIndex, { content: { ...listQuestions[quizId][totalIndex].content, ratingDescription: currentTarget.value.substring(0, 20), }, }); } }} onBlur={({ target }) => { updateQuestionsList(quizId, totalIndex, { content: { ...listQuestions[quizId][totalIndex].content, ratingDescription: target.value.substring(0, 20), }, }); }} /> ))} ); }