2023-05-10 17:35:30 +00:00
|
|
|
|
import ChartIcon from "@icons/ChartIcon";
|
|
|
|
|
import LinkIcon from "@icons/LinkIcon";
|
|
|
|
|
import PencilIcon from "@icons/PencilIcon";
|
2023-11-13 18:04:51 +00:00
|
|
|
|
import { Quiz } from "@model/quiz/quiz";
|
2022-12-09 11:48:15 +00:00
|
|
|
|
import MoreHorizIcon from "@mui/icons-material/MoreHoriz";
|
2023-11-13 18:04:51 +00:00
|
|
|
|
import {
|
|
|
|
|
Box,
|
|
|
|
|
Button,
|
|
|
|
|
IconButton,
|
|
|
|
|
Typography,
|
|
|
|
|
useMediaQuery,
|
|
|
|
|
useTheme,
|
|
|
|
|
} from "@mui/material";
|
|
|
|
|
import { deleteQuiz } from "@root/quizes/actions";
|
|
|
|
|
import { useNavigate } from "react-router-dom";
|
|
|
|
|
|
2022-12-09 11:48:15 +00:00
|
|
|
|
|
|
|
|
|
interface Props {
|
2023-11-13 18:04:51 +00:00
|
|
|
|
quiz: Quiz;
|
|
|
|
|
openCount?: number;
|
|
|
|
|
applicationCount?: number;
|
|
|
|
|
conversionPercent?: number;
|
2022-12-09 11:48:15 +00:00
|
|
|
|
}
|
|
|
|
|
|
2023-10-18 12:46:59 +00:00
|
|
|
|
export default function QuizCard({
|
2023-11-13 18:04:51 +00:00
|
|
|
|
quiz,
|
|
|
|
|
openCount = 0,
|
|
|
|
|
applicationCount = 0,
|
|
|
|
|
conversionPercent = 0,
|
2023-10-18 12:46:59 +00:00
|
|
|
|
}: Props) {
|
2023-11-13 18:04:51 +00:00
|
|
|
|
const theme = useTheme();
|
|
|
|
|
const isMobile = useMediaQuery(theme.breakpoints.down(600));
|
|
|
|
|
const navigate = useNavigate();
|
|
|
|
|
|
|
|
|
|
function handleEditClick() {
|
|
|
|
|
navigate(`/setting/${quiz.id}`);
|
|
|
|
|
}
|
2022-12-09 11:48:15 +00:00
|
|
|
|
|
2023-11-13 18:04:51 +00:00
|
|
|
|
return (
|
|
|
|
|
<Box
|
|
|
|
|
sx={{
|
|
|
|
|
display: "flex",
|
|
|
|
|
flexDirection: "column",
|
|
|
|
|
backgroundColor: "white",
|
|
|
|
|
width: "560px",
|
|
|
|
|
height: "280px",
|
|
|
|
|
p: "20px",
|
|
|
|
|
borderRadius: "12px",
|
|
|
|
|
boxSizing: "border-box",
|
|
|
|
|
boxShadow: `0px 100px 309px rgba(210, 208, 225, 0.24),
|
2022-12-09 11:48:15 +00:00
|
|
|
|
0px 41.7776px 129.093px rgba(210, 208, 225, 0.172525),
|
|
|
|
|
0px 22.3363px 69.0192px rgba(210, 208, 225, 0.143066),
|
|
|
|
|
0px 12.5216px 38.6916px rgba(210, 208, 225, 0.12),
|
|
|
|
|
0px 6.6501px 20.5488px rgba(210, 208, 225, 0.0969343),
|
|
|
|
|
0px 2.76726px 8.55082px rgba(210, 208, 225, 0.0674749)`,
|
2023-11-13 18:04:51 +00:00
|
|
|
|
}}
|
2023-10-18 12:46:59 +00:00
|
|
|
|
>
|
2023-11-13 18:04:51 +00:00
|
|
|
|
<Typography variant="h5">{quiz.name}</Typography>
|
|
|
|
|
<Box
|
|
|
|
|
sx={{
|
|
|
|
|
display: "flex",
|
|
|
|
|
alignItems: "center",
|
|
|
|
|
mt: "10px",
|
|
|
|
|
gap: "10px",
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<LinkIcon bgcolor="#EEE4FC" color={theme.palette.brightPurple.main} />
|
|
|
|
|
<Typography color={theme.palette.grey3.main}>
|
|
|
|
|
быстрая ссылка ...
|
|
|
|
|
</Typography>
|
|
|
|
|
</Box>
|
|
|
|
|
<Box
|
|
|
|
|
sx={{
|
|
|
|
|
display: "flex",
|
|
|
|
|
mt: "32px",
|
|
|
|
|
mr: "22px",
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<Box sx={{ flex: "1 1 0" }}>
|
|
|
|
|
<Typography variant="h5">{openCount}</Typography>
|
|
|
|
|
<Typography color={theme.palette.grey3.main}>Открытий</Typography>
|
|
|
|
|
</Box>
|
|
|
|
|
<Box sx={{ flex: "1 1 0" }}>
|
|
|
|
|
<Typography variant="h5">{applicationCount}</Typography>
|
|
|
|
|
<Typography color={theme.palette.grey3.main}>Заявок</Typography>
|
|
|
|
|
</Box>
|
|
|
|
|
<Box sx={{ flex: "1 1 0" }}>
|
|
|
|
|
<Typography variant="h5">{conversionPercent} %</Typography>
|
|
|
|
|
<Typography color={theme.palette.grey3.main}>Конверсия</Typography>
|
|
|
|
|
</Box>
|
|
|
|
|
</Box>
|
|
|
|
|
<Box
|
|
|
|
|
sx={{
|
|
|
|
|
mt: "auto",
|
|
|
|
|
display: "flex",
|
|
|
|
|
gap: isMobile ? "10px" : "20px",
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<Button
|
|
|
|
|
variant="contained"
|
|
|
|
|
sx={{
|
|
|
|
|
padding: "10px 39px",
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
Заявки
|
|
|
|
|
</Button>
|
|
|
|
|
<Button
|
|
|
|
|
variant="outlined"
|
|
|
|
|
startIcon={<PencilIcon />}
|
|
|
|
|
onClick={handleEditClick}
|
|
|
|
|
sx={{
|
|
|
|
|
padding: isMobile ? "10px" : "10px 20px",
|
|
|
|
|
minWidth: "unset",
|
|
|
|
|
color: theme.palette.brightPurple.main,
|
|
|
|
|
"& .MuiButton-startIcon": {
|
|
|
|
|
marginRight: isMobile ? 0 : "4px",
|
|
|
|
|
marginLeft: 0,
|
|
|
|
|
},
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
{isMobile ? "" : "Редактировать"}
|
|
|
|
|
</Button>
|
|
|
|
|
<Button
|
|
|
|
|
variant="outlined"
|
|
|
|
|
startIcon={<ChartIcon />}
|
|
|
|
|
sx={{
|
|
|
|
|
minWidth: "46px",
|
|
|
|
|
padding: "10px 10px",
|
|
|
|
|
"& .MuiButton-startIcon": {
|
|
|
|
|
mr: 0,
|
|
|
|
|
ml: 0,
|
|
|
|
|
},
|
|
|
|
|
}}
|
|
|
|
|
/>
|
|
|
|
|
<IconButton
|
|
|
|
|
sx={{
|
|
|
|
|
color: theme.palette.brightPurple.main,
|
|
|
|
|
ml: "auto",
|
|
|
|
|
}}
|
|
|
|
|
onClick={() => deleteQuiz(quiz.id)}
|
|
|
|
|
>
|
|
|
|
|
<MoreHorizIcon sx={{ transform: "scale(1.75)" }} />
|
|
|
|
|
</IconButton>
|
|
|
|
|
</Box>
|
|
|
|
|
</Box>
|
|
|
|
|
);
|
2023-10-18 12:46:59 +00:00
|
|
|
|
}
|