frontPanel/src/pages/IntegrationsPage/PartnersBoard/PartnersBoard.tsx

134 lines
3.6 KiB
TypeScript
Raw Normal View History

import { Box, Typography, useMediaQuery, useTheme } from "@mui/material";
import React, { FC, lazy, Suspense } from "react";
import { ServiceButton } from "./ServiceButton/ServiceButton";
import { YandexMetricaLogo } from "../mocks/YandexMetricaLogo";
// import AnalyticsModal from "./AnalyticsModal/AnalyticsModal";
import { VKPixelLogo } from "../mocks/VKPixelLogo";
2024-05-01 09:34:37 +00:00
import { QuizMetricType } from "@model/quizSettings";
2024-05-17 12:04:59 +00:00
import { AmoCRMLogo } from "../mocks/AmoCRMLogo";
const AnalyticsModal = lazy(() =>
import("./AnalyticsModal/AnalyticsModal").then((module) => ({
default: module.AnalyticsModal,
})),
);
const AmoCRMModal = lazy(() =>
import("../IntegrationsModal/AmoCRMModal").then((module) => ({
default: module.AmoCRMModal,
})),
);
type PartnersBoardProps = {
setIsModalOpen: (value: boolean) => void;
2024-05-01 09:34:37 +00:00
companyName: keyof typeof QuizMetricType | null;
setCompanyName: (value: keyof typeof QuizMetricType) => void;
isModalOpen: boolean;
handleCloseModal: () => void;
2024-05-17 12:04:59 +00:00
setIsAmoCrmModalOpen: (value: boolean) => void;
isAmoCrmModalOpen: boolean;
handleCloseAmoSRMModal: () => void;
};
export const PartnersBoard: FC<PartnersBoardProps> = ({
setIsModalOpen,
isModalOpen,
handleCloseModal,
companyName,
setCompanyName,
2024-05-17 12:04:59 +00:00
setIsAmoCrmModalOpen,
isAmoCrmModalOpen,
handleCloseAmoSRMModal,
}) => {
const theme = useTheme();
const isMobile = useMediaQuery(theme.breakpoints.down(600));
return (
<Box
sx={{
width: "100%",
display: "flex",
flexDirection: "column",
justifyContent: { xs: "center", sm: "center", md: "start" },
}}
>
<Box>
2024-05-17 12:04:59 +00:00
<Typography
variant="h6"
sx={{
textAlign: { xs: "start", sm: "start", md: "start" },
lineHeight: "1",
marginBottom: "12px",
}}
>
CRM
</Typography>
<Box
sx={{
display: "flex",
flexWrap: "wrap",
justifyContent: { xs: "start", sm: "start", md: "start" },
}}
>
<ServiceButton
logo={<AmoCRMLogo />}
setIsModalOpen={setIsAmoCrmModalOpen}
setCompanyName={setCompanyName}
name={"amoCRM"}
/>
</Box>
<Typography
variant="h6"
sx={{
textAlign: { xs: "start", sm: "start", md: "start" },
lineHeight: "1",
marginBottom: "12px",
}}
>
Аналитика
</Typography>
<Box
sx={{
display: "flex",
flexWrap: "wrap",
justifyContent: { xs: "start", sm: "start", md: "start" },
}}
>
<ServiceButton
logo={<YandexMetricaLogo />}
setIsModalOpen={setIsModalOpen}
name={"yandex"}
setCompanyName={setCompanyName}
/>
<ServiceButton
logo={<VKPixelLogo />}
title={"VK Пиксель"}
name={"vk"}
setIsModalOpen={setIsModalOpen}
setCompanyName={setCompanyName}
></ServiceButton>
</Box>
</Box>
2024-05-01 09:34:37 +00:00
{companyName && (
<Suspense>
<AnalyticsModal
isModalOpen={isModalOpen}
handleCloseModal={handleCloseModal}
companyName={companyName}
/>
</Suspense>
2024-05-01 09:34:37 +00:00
)}
2024-05-17 12:04:59 +00:00
{companyName && (
<Suspense>
<AmoCRMModal
isModalOpen={isAmoCrmModalOpen}
handleCloseModal={handleCloseAmoSRMModal}
companyName={companyName}
/>
</Suspense>
2024-05-17 12:04:59 +00:00
)}
</Box>
);
};