import React, { useLayoutEffect, useRef, useState } from "react"; 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, Popover, Typography, useMediaQuery, useTheme, } from "@mui/material"; import { deleteQuiz, setEditQuizId } from "@root/quizes/actions"; import { Link, useNavigate } from "react-router-dom"; import { inCart } from "../../pages/Tariffs/Tariffs"; import makeRequest from "@api/makeRequest"; import { enqueueSnackbar } from "notistack"; import { useDomainDefine } from "@utils/hooks/useDomainDefine"; import CopyIcon from "@icons/CopyIcon"; import ChartIcon from "@icons/ChartIcon"; interface Props { quiz: Quiz; openCount?: number; applicationCount?: number; conversionPercent?: number; onClickCopy: (value: string) => void; } export default function QuizCard({ quiz, openCount = 0, applicationCount = 0, conversionPercent = 0, onClickCopy, }: Props) { const theme = useTheme(); const isMobile = useMediaQuery(theme.breakpoints.down(600)); const navigate = useNavigate(); const [subMenuOpen, setSubMenuOpen] = useState(false); const subMenuRef = useRef(null); const { isTestServer } = useDomainDefine(); function handleEditClick() { setEditQuizId(quiz.backendId); navigate("/edit"); } function handleStatisticClick() { setEditQuizId(quiz.backendId); navigate(`/analytics`); } const questionCount = useRef(quiz.questions_count.toString() || ""); useLayoutEffect(() => { const pay = async () => { try { await makeRequest({ method: "POST", url: process.env.REACT_APP_DOMAIN + "/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} {isTestServer ? `https://s.hbpn.link/${quiz.qid}` : `https://hbpn.link/${quiz.qid}`} {openCount} Открытий {applicationCount} Заявок {conversionPercent} % Конверсия onClickCopy(quiz.id)} sx={{ height: "44px", width: "44px", borderRadius: "6px", }} > setSubMenuOpen(true)} data-cy="delete-quiz" > setSubMenuOpen(false)} anchorOrigin={{ vertical: "top", horizontal: "right" }} > setSubMenuOpen(false)}> {/* */} ); }