import { useState, useRef, useLayoutEffect } from "react"; import ChartIcon from "@icons/ChartIcon"; import LinkIcon from "@icons/LinkIcon"; import PencilIcon from "@icons/PencilIcon"; import { Quiz } from "@model/quiz/quiz"; import MoreHorizIcon from "@mui/icons-material/MoreHoriz"; import { Box, Button, IconButton, Typography, useMediaQuery, useTheme, Popover, } from "@mui/material"; import { deleteQuiz, setEditQuizId } from "@root/quizes/actions"; import { useNavigate } from "react-router-dom"; import { inCart } from "../../pages/Tariffs/Tariffs"; import { makeRequest } from "@frontend/kitui"; import { enqueueSnackbar } from "notistack"; interface Props { quiz: Quiz; openCount?: number; applicationCount?: number; conversionPercent?: number; } export default function QuizCard({ quiz, openCount = 0, applicationCount = 0, conversionPercent = 0, }: Props) { const theme = useTheme(); const isMobile = useMediaQuery(theme.breakpoints.down(600)); const navigate = useNavigate(); const [subMenuOpen, setSubMenuOpen] = useState(false); const subMenuRef = useRef(null); function handleEditClick() { setEditQuizId(quiz.backendId); navigate("/edit"); } const questionCount = useRef(quiz.questions_count.toString() || ""); useLayoutEffect(() => { const pay = async () => { try { await makeRequest({ method: "POST", url: "https://squiz.pena.digital/customer/cart/pay", }); inCart(); } catch (e) { enqueueSnackbar( "Попробуйте снова купить тариф после зачисления средств", ); } }; const params = new URLSearchParams(window.location.search); const fromSquiz = params.get("action"); if (fromSquiz === "fromhub") { window.history.replaceState(null, "", "/list"); pay(); } }, []); return ( {quiz.name.length === 0 || quiz.name === " " ? quiz.config.type === "form" ? "Form " + quiz.backendId : "Quiz " + quiz.backendId : quiz.name} быстрая ссылка ... {openCount} Открытий {applicationCount} Заявок {conversionPercent} % Конверсия {/* */} {/* */} ); }