import { Box, Typography, useTheme } from "@mui/material"; import React, { FC, lazy, Suspense } from "react"; import { ServiceButton } from "./buttons/ServiceButton"; import { ZapierButton } from "./buttons/ZapierButton"; import { PostbackButton } from "./buttons/PostbackButton"; import { YandexMetricaLogo } from "../mocks/YandexMetricaLogo"; import { VKPixelLogo } from "../mocks/VKPixelLogo"; import { QuizMetricType } from "@model/quizSettings"; import { AmoCRMLogo } from "../mocks/AmoCRMLogo"; import type { LeadTargetModel } from "@/api/leadtarget"; import { useCurrentQuiz } from "@/stores/quizes/hooks"; const AnalyticsModal = lazy(() => import("./AnalyticsModal/AnalyticsModal").then((module) => ({ default: module.AnalyticsModal, })) ); const AmoCRMModal = lazy(() => import("../IntegrationsModal/Amo").then((module) => ({ default: module.AmoCRMModal, })) ); const ZapierModal = lazy(() => import("../IntegrationsModal/Zapier").then((module) => ({ default: module.ZapierModal, })) ); const PostbackModal = lazy(() => import("../IntegrationsModal/Postback").then((module) => ({ default: module.PostbackModal, })) ); type PartnersBoardProps = { setIsModalOpen: (value: boolean) => void; companyName: keyof typeof QuizMetricType | null; setCompanyName: (value: keyof typeof QuizMetricType) => void; isModalOpen: boolean; handleCloseModal: () => void; setIsAmoCrmModalOpen: (value: boolean) => void; isAmoCrmModalOpen: boolean; handleCloseAmoSRMModal: () => void; setIsZapierModalOpen: (value: boolean) => void; isZapierModalOpen: boolean; handleCloseZapierModal: () => void; setIsPostbackModalOpen: (value: boolean) => void; isPostbackModalOpen: boolean; handleClosePostbackModal: () => void; zapierTarget?: LeadTargetModel | null; postbackTarget?: LeadTargetModel | null; }; export const PartnersBoard: FC = ({ setIsModalOpen, isModalOpen, handleCloseModal, companyName, setCompanyName, setIsAmoCrmModalOpen, isAmoCrmModalOpen, handleCloseAmoSRMModal, setIsZapierModalOpen, isZapierModalOpen, handleCloseZapierModal, setIsPostbackModalOpen, isPostbackModalOpen, handleClosePostbackModal, zapierTarget, postbackTarget, }) => { const theme = useTheme(); const quiz = useCurrentQuiz(); const sectionTitleStyles = { textAlign: { xs: "start", sm: "start", md: "start" } as const, lineHeight: "1", marginBottom: "12px", marginTop: "20px", color: theme.palette.grey3.main, fontSize: "18px", }; const containerStyles = { display: "flex", flexWrap: "wrap", justifyContent: { xs: "start", sm: "start", md: "start" }, gap: { xs: "15px", md: "20px" }, }; return ( CRM } setIsModalOpen={setIsAmoCrmModalOpen} setCompanyName={setCompanyName} name={"amoCRM"} /> Аналитика } setIsModalOpen={setIsModalOpen} name={"yandex"} setCompanyName={setCompanyName} /> } title={"VK Пиксель"} name={"vk"} setIsModalOpen={setIsModalOpen} setCompanyName={setCompanyName} /> Автоматизация {companyName && ( )} {companyName && isAmoCrmModalOpen && ( )} {companyName && isZapierModalOpen && ( )} {companyName && isPostbackModalOpen && ( )} ); };