frontPanel/src/pages/IntegrationsPage/IntegrationsPage.tsx

81 lines
2.6 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";
import amoCrmLogo from "./mocks/amoCrmLogo.png";
import { IntegrationsModal } from "./IntegrationsModal/IntegrationsModal";
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 [step, setStep] = useState<number>(0);
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
useEffect(() => {
if (editQuizId === null) navigate("/list");
}, [navigate, editQuizId]);
const heightBar = heightSidebar + 51 + 88 + 36 + 25;
const partnersMock = [
{ category: "CRM", name: "amoCRM", logo: amoCrmLogo },
{ category: "CRM", name: "bitrix" },
{ category: "CRM", name: "RetailCRM." },
{ category: "CRM", name: "SugarCRM." },
{ category: "SocialMedia", name: "Telegram" },
{ category: "SocialMedia", name: "VKontakte" },
{ category: "SocialMedia", name: "X.com" },
{ category: "Сервисы рассылок", name: "Mailchimp" },
{ category: "Сервисы рассылок", name: "GetResponse" },
{ category: "Сервисы рассылок", name: "SendPulse" },
];
if (quiz === undefined)
return (
<Skeleton sx={{ width: "100vw", height: "100vh", transform: "none" }} />
);
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
partners={partnersMock}
setIsModalOpen={setIsModalOpen}
/>
<IntegrationsModal
isModalOpen={isModalOpen}
setIsModalOpen={setIsModalOpen}
/>
</Box>
</>
);
};