frontPanel/src/pages/IntegrationsPage/IntegrationsPage.tsx

81 lines
2.4 KiB
TypeScript
Raw Normal View History

import { Skeleton, Typography, useMediaQuery, useTheme } from "@mui/material";
import React, { useEffect, useState } from "react";
import Box from "@mui/material/Box";
import { useCurrentQuiz } from "@root/quizes/hooks";
import { useQuizStore } from "@root/quizes/store";
import { useNavigate } from "react-router-dom";
import { PartnersBoard } from "./PartnersBoard/PartnersBoard";
2024-05-01 09:34:37 +00:00
import { QuizMetricType } from "@model/quizSettings";
interface IntegrationsPageProps {
heightSidebar: number;
mobileSidebar: boolean;
}
export const IntegrationsPage = ({
heightSidebar,
mobileSidebar,
}: IntegrationsPageProps) => {
const quiz = useCurrentQuiz();
const { editQuizId } = useQuizStore();
const theme = useTheme();
const navigate = useNavigate();
const isMobile = useMediaQuery(theme.breakpoints.down(660));
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
2024-05-01 09:34:37 +00:00
const [companyName, setCompanyName] = useState<
keyof typeof QuizMetricType | null
>(null);
2024-05-17 12:04:59 +00:00
const [isAmoCrmModalOpen, setIsAmoCrmModalOpen] = useState<boolean>(false);
useEffect(() => {
if (editQuizId === null) navigate("/list");
}, [navigate, editQuizId]);
const heightBar = heightSidebar + 51 + 88 + 36 + 25;
if (quiz === undefined)
return (
<Skeleton sx={{ width: "100vw", height: "100vh", transform: "none" }} />
);
const handleCloseModal = () => {
setIsModalOpen(false);
2024-05-17 12:04:59 +00:00
};
const handleCloseAmoSRMModal = () => {
setIsAmoCrmModalOpen(false);
};
return (
<>
<Box
sx={{
width: "100%",
padding: isMobile
? mobileSidebar
? `calc(${heightBar}px - 92px) 16px 70px 16px`
: "67px 16px 70px 16px"
: "25px",
height: isMobile ? "100vh" : "calc(100vh - 80px)",
}}
>
<Typography
variant="h5"
sx={{ marginBottom: "40px", color: "#333647" }}
>
Интеграции
</Typography>
<PartnersBoard
setIsModalOpen={setIsModalOpen}
companyName={companyName}
setCompanyName={setCompanyName}
isModalOpen={isModalOpen}
handleCloseModal={handleCloseModal}
2024-05-17 12:04:59 +00:00
setIsAmoCrmModalOpen={setIsAmoCrmModalOpen}
isAmoCrmModalOpen={isAmoCrmModalOpen}
handleCloseAmoSRMModal={handleCloseAmoSRMModal}
/>
</Box>
</>
);
};