restored amo modal
This commit is contained in:
parent
e1ba407cc8
commit
9e21fc491d
@ -15,7 +15,6 @@ import { IntegrationStep4 } from "./IntegrationStep4/IntegrationStep4";
|
|||||||
import { IntegrationStep5 } from "./IntegrationStep5/IntegrationStep5";
|
import { IntegrationStep5 } from "./IntegrationStep5/IntegrationStep5";
|
||||||
import { IntegrationStep6 } from "./IntegrationStep6/IntegrationStep6";
|
import { IntegrationStep6 } from "./IntegrationStep6/IntegrationStep6";
|
||||||
import { funnelsMock, performersMock, stagesMock } from "../mocks/MockData";
|
import { funnelsMock, performersMock, stagesMock } from "../mocks/MockData";
|
||||||
import File from "@ui_kit/QuizPreview/QuizPreviewQuestionTypes/File";
|
|
||||||
import { IntegrationsModalTitle } from "./IntegrationsModalTitle/IntegrationsModalTitle";
|
import { IntegrationsModalTitle } from "./IntegrationsModalTitle/IntegrationsModalTitle";
|
||||||
import { SettingsBlock } from "./SettingsBlock/SettingsBlock";
|
import { SettingsBlock } from "./SettingsBlock/SettingsBlock";
|
||||||
import { IntegrationStep7 } from "./IntegrationStep7/IntegrationStep7";
|
import { IntegrationStep7 } from "./IntegrationStep7/IntegrationStep7";
|
||||||
@ -32,7 +31,7 @@ type IntegrationsModalProps = {
|
|||||||
export type TagKeys = "contact" | "company" | "deal" | "buyer";
|
export type TagKeys = "contact" | "company" | "deal" | "buyer";
|
||||||
export type TTags = Record<TagKeys, string[] | []>;
|
export type TTags = Record<TagKeys, string[] | []>;
|
||||||
|
|
||||||
export const IntegrationsModal: FC<IntegrationsModalProps> = ({
|
export const AmoCRMModal: FC<IntegrationsModalProps> = ({
|
||||||
isModalOpen,
|
isModalOpen,
|
||||||
handleCloseModal,
|
handleCloseModal,
|
||||||
companyName,
|
companyName,
|
||||||
@ -209,6 +208,7 @@ export const IntegrationsModal: FC<IntegrationsModalProps> = ({
|
|||||||
fontSize: isMobile ? "20px" : "24px",
|
fontSize: isMobile ? "20px" : "24px",
|
||||||
fontWeight: "500",
|
fontWeight: "500",
|
||||||
padding: "20px",
|
padding: "20px",
|
||||||
|
color: theme.palette.grey2.main,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Интеграция с {companyName ? companyName : "партнером"}
|
Интеграция с {companyName ? companyName : "партнером"}
|
@ -9,7 +9,7 @@ import {
|
|||||||
} from "react";
|
} from "react";
|
||||||
import { ItemsSelectionView } from "./ItemsSelectionView/ItemsSelectionView";
|
import { ItemsSelectionView } from "./ItemsSelectionView/ItemsSelectionView";
|
||||||
import { ItemDetailsView } from "./ItemDetailsView/ItemDetailsView";
|
import { ItemDetailsView } from "./ItemDetailsView/ItemDetailsView";
|
||||||
import { TitleKeys, TQuestionEntity } from "../IntegrationsModal";
|
import { TitleKeys, TQuestionEntity } from "../AmoCRMModal";
|
||||||
import Box from "@mui/material/Box";
|
import Box from "@mui/material/Box";
|
||||||
|
|
||||||
type IntegrationStep6Props = {
|
type IntegrationStep6Props = {
|
||||||
|
@ -2,12 +2,7 @@ import { Box, Typography, useTheme } from "@mui/material";
|
|||||||
import { FC } from "react";
|
import { FC } from "react";
|
||||||
import { IconBtnAdd } from "./IconBtnAdd/IconBtnAdd";
|
import { IconBtnAdd } from "./IconBtnAdd/IconBtnAdd";
|
||||||
import { AnswerItem } from "./AnswerItem/AnswerItem";
|
import { AnswerItem } from "./AnswerItem/AnswerItem";
|
||||||
import {
|
import { TagKeys, TitleKeys, TQuestionEntity, TTags } from "../../AmoCRMModal";
|
||||||
TagKeys,
|
|
||||||
TitleKeys,
|
|
||||||
TQuestionEntity,
|
|
||||||
TTags,
|
|
||||||
} from "../../IntegrationsModal";
|
|
||||||
|
|
||||||
type ItemProps = {
|
type ItemProps = {
|
||||||
title: TitleKeys | TagKeys;
|
title: TitleKeys | TagKeys;
|
||||||
|
@ -2,7 +2,7 @@ import { Box, useTheme } from "@mui/material";
|
|||||||
import { Item } from "../Item/Item";
|
import { Item } from "../Item/Item";
|
||||||
import { StepButtonsBlock } from "../../StepButtonsBlock/StepButtonsBlock";
|
import { StepButtonsBlock } from "../../StepButtonsBlock/StepButtonsBlock";
|
||||||
import { FC } from "react";
|
import { FC } from "react";
|
||||||
import { TQuestionEntity } from "../../IntegrationsModal";
|
import { TQuestionEntity } from "../../AmoCRMModal";
|
||||||
|
|
||||||
type TitleKeys = "contacts" | "company" | "deal" | "users" | "buyers";
|
type TitleKeys = "contacts" | "company" | "deal" | "users" | "buyers";
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ import {
|
|||||||
useState,
|
useState,
|
||||||
} from "react";
|
} from "react";
|
||||||
|
|
||||||
import { TagKeys, TTags } from "../IntegrationsModal";
|
import { TagKeys, TTags } from "../AmoCRMModal";
|
||||||
import Box from "@mui/material/Box";
|
import Box from "@mui/material/Box";
|
||||||
import { ItemsSelectionView } from "../IntegrationStep6/ItemsSelectionView/ItemsSelectionView";
|
import { ItemsSelectionView } from "../IntegrationStep6/ItemsSelectionView/ItemsSelectionView";
|
||||||
import { TagsDetailsView } from "./TagsDetailsView/TagsDetailsView";
|
import { TagsDetailsView } from "./TagsDetailsView/TagsDetailsView";
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { Box, Typography, useTheme } from "@mui/material";
|
import { Box, Typography, useTheme } from "@mui/material";
|
||||||
import { StepButtonsBlock } from "../../StepButtonsBlock/StepButtonsBlock";
|
import { StepButtonsBlock } from "../../StepButtonsBlock/StepButtonsBlock";
|
||||||
import { FC } from "react";
|
import { FC } from "react";
|
||||||
import { TagKeys, TTags } from "../../IntegrationsModal";
|
import { TagKeys, TTags } from "../../AmoCRMModal";
|
||||||
import { Item } from "../../IntegrationStep6/Item/Item";
|
import { Item } from "../../IntegrationStep6/Item/Item";
|
||||||
|
|
||||||
type TagsDetailsViewProps = {
|
type TagsDetailsViewProps = {
|
||||||
|
@ -5,7 +5,7 @@ import { SettingItemHeader } from "./SettingItemHeader/SettingItemHeader";
|
|||||||
import { ResponsiblePerson } from "./ResponsiblePerson/ResponsiblePerson";
|
import { ResponsiblePerson } from "./ResponsiblePerson/ResponsiblePerson";
|
||||||
import { SelectedParameter } from "./SelectedParameter/SelectedParameter";
|
import { SelectedParameter } from "./SelectedParameter/SelectedParameter";
|
||||||
import { FileBlock } from "../../IntegrationStep5/FileBlock/FileBlock";
|
import { FileBlock } from "../../IntegrationStep5/FileBlock/FileBlock";
|
||||||
import { TQuestionEntity, TTags } from "../../IntegrationsModal";
|
import { TQuestionEntity, TTags } from "../../AmoCRMModal";
|
||||||
|
|
||||||
type SettingItemProps = {
|
type SettingItemProps = {
|
||||||
step: number;
|
step: number;
|
||||||
|
@ -2,7 +2,7 @@ import { FC } from "react";
|
|||||||
import { Box, useMediaQuery, useTheme } from "@mui/material";
|
import { Box, useMediaQuery, useTheme } from "@mui/material";
|
||||||
import { StepButtonsBlock } from "../StepButtonsBlock/StepButtonsBlock";
|
import { StepButtonsBlock } from "../StepButtonsBlock/StepButtonsBlock";
|
||||||
import { SettingItem } from "./SettingItem/SettingItem";
|
import { SettingItem } from "./SettingItem/SettingItem";
|
||||||
import { TQuestionEntity, TTags } from "../IntegrationsModal";
|
import { TQuestionEntity, TTags } from "../AmoCRMModal";
|
||||||
|
|
||||||
type SettingsBlockProps = {
|
type SettingsBlockProps = {
|
||||||
stepTitles: string[];
|
stepTitles: string[];
|
||||||
|
@ -5,7 +5,6 @@ import { useCurrentQuiz } from "@root/quizes/hooks";
|
|||||||
import { useQuizStore } from "@root/quizes/store";
|
import { useQuizStore } from "@root/quizes/store";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { PartnersBoard } from "./PartnersBoard/PartnersBoard";
|
import { PartnersBoard } from "./PartnersBoard/PartnersBoard";
|
||||||
import { partnersMock } from "./mocks/MockData";
|
|
||||||
import { QuizMetricType } from "@model/quizSettings";
|
import { QuizMetricType } from "@model/quizSettings";
|
||||||
|
|
||||||
interface IntegrationsPageProps {
|
interface IntegrationsPageProps {
|
||||||
@ -26,6 +25,9 @@ export const IntegrationsPage = ({
|
|||||||
const [companyName, setCompanyName] = useState<
|
const [companyName, setCompanyName] = useState<
|
||||||
keyof typeof QuizMetricType | null
|
keyof typeof QuizMetricType | null
|
||||||
>(null);
|
>(null);
|
||||||
|
|
||||||
|
const [isAmoCrmModalOpen, setIsAmoCrmModalOpen] = useState<boolean>(false);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (editQuizId === null) navigate("/list");
|
if (editQuizId === null) navigate("/list");
|
||||||
}, [navigate, editQuizId]);
|
}, [navigate, editQuizId]);
|
||||||
@ -38,9 +40,9 @@ export const IntegrationsPage = ({
|
|||||||
|
|
||||||
const handleCloseModal = () => {
|
const handleCloseModal = () => {
|
||||||
setIsModalOpen(false);
|
setIsModalOpen(false);
|
||||||
// setTimeout(() => {
|
};
|
||||||
// setCompanyName(null);
|
const handleCloseAmoSRMModal = () => {
|
||||||
// }, 300);
|
setIsAmoCrmModalOpen(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -63,18 +65,15 @@ export const IntegrationsPage = ({
|
|||||||
Интеграции
|
Интеграции
|
||||||
</Typography>
|
</Typography>
|
||||||
<PartnersBoard
|
<PartnersBoard
|
||||||
partners={partnersMock}
|
|
||||||
setIsModalOpen={setIsModalOpen}
|
setIsModalOpen={setIsModalOpen}
|
||||||
companyName={companyName}
|
companyName={companyName}
|
||||||
setCompanyName={setCompanyName}
|
setCompanyName={setCompanyName}
|
||||||
isModalOpen={isModalOpen}
|
isModalOpen={isModalOpen}
|
||||||
handleCloseModal={handleCloseModal}
|
handleCloseModal={handleCloseModal}
|
||||||
|
setIsAmoCrmModalOpen={setIsAmoCrmModalOpen}
|
||||||
|
isAmoCrmModalOpen={isAmoCrmModalOpen}
|
||||||
|
handleCloseAmoSRMModal={handleCloseAmoSRMModal}
|
||||||
/>
|
/>
|
||||||
{/*<IntegrationsModal*/}
|
|
||||||
{/* isModalOpen={isModalOpen}*/}
|
|
||||||
{/* handleCloseModal={handleCloseModal}*/}
|
|
||||||
{/* companyName={companyName}*/}
|
|
||||||
{/*/>*/}
|
|
||||||
</Box>
|
</Box>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
@ -1,50 +0,0 @@
|
|||||||
import { Box, Typography, useTheme } from "@mui/material";
|
|
||||||
import { FC } from "react";
|
|
||||||
import { Partner } from "../PartnersBoard";
|
|
||||||
|
|
||||||
type PartnerItemProps = {
|
|
||||||
partner: Partner;
|
|
||||||
setIsModalOpen: (value: boolean) => void;
|
|
||||||
setCompanyName: (value: string) => void;
|
|
||||||
};
|
|
||||||
|
|
||||||
export const PartnerItem: FC<PartnerItemProps> = ({
|
|
||||||
partner,
|
|
||||||
setIsModalOpen,
|
|
||||||
setCompanyName,
|
|
||||||
}) => {
|
|
||||||
const theme = useTheme();
|
|
||||||
|
|
||||||
const handleClick = () => {
|
|
||||||
setCompanyName(partner.name);
|
|
||||||
setIsModalOpen(true);
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
{partner && (
|
|
||||||
<Box
|
|
||||||
sx={{
|
|
||||||
width: 250,
|
|
||||||
height: 60,
|
|
||||||
backgroundColor: "white",
|
|
||||||
borderRadius: "8px",
|
|
||||||
padding: "0 20px",
|
|
||||||
display: "flex",
|
|
||||||
alignItems: "center",
|
|
||||||
marginBottom: "2%",
|
|
||||||
marginRight: "2%",
|
|
||||||
cursor: "pointer",
|
|
||||||
}}
|
|
||||||
onClick={handleClick}
|
|
||||||
>
|
|
||||||
{partner.logo ? (
|
|
||||||
<img height={"100%"} src={partner.logo} alt={partner.name} />
|
|
||||||
) : (
|
|
||||||
<Typography>{partner.name}</Typography>
|
|
||||||
)}
|
|
||||||
</Box>
|
|
||||||
)}
|
|
||||||
</>
|
|
||||||
);
|
|
||||||
};
|
|
@ -1,44 +1,36 @@
|
|||||||
import { Box, Typography, useTheme } from "@mui/material";
|
import { Box, Typography, useTheme } from "@mui/material";
|
||||||
import { FC } from "react";
|
import React, { FC } from "react";
|
||||||
import { ServiceButton } from "./ServiceButton/ServiceButton";
|
import { ServiceButton } from "./ServiceButton/ServiceButton";
|
||||||
import { YandexMetricaLogo } from "../mocks/YandexMetricaLogo";
|
import { YandexMetricaLogo } from "../mocks/YandexMetricaLogo";
|
||||||
import AnalyticsModal from "./AnalyticsModal/AnalyticsModal";
|
import AnalyticsModal from "./AnalyticsModal/AnalyticsModal";
|
||||||
import { VKPixelLogo } from "../mocks/VKPixelLogo";
|
import { VKPixelLogo } from "../mocks/VKPixelLogo";
|
||||||
import { QuizMetricType } from "@model/quizSettings";
|
import { QuizMetricType } from "@model/quizSettings";
|
||||||
|
import { AmoCRMLogo } from "../mocks/AmoCRMLogo";
|
||||||
export type Partner = {
|
import { AmoCRMModal } from "../IntegrationsModal/AmoCRMModal";
|
||||||
name: string;
|
|
||||||
logo?: string;
|
|
||||||
category: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
type PartnersBoardProps = {
|
type PartnersBoardProps = {
|
||||||
partners: Partner[];
|
|
||||||
setIsModalOpen: (value: boolean) => void;
|
setIsModalOpen: (value: boolean) => void;
|
||||||
companyName: keyof typeof QuizMetricType | null;
|
companyName: keyof typeof QuizMetricType | null;
|
||||||
setCompanyName: (value: keyof typeof QuizMetricType) => void;
|
setCompanyName: (value: keyof typeof QuizMetricType) => void;
|
||||||
isModalOpen: boolean;
|
isModalOpen: boolean;
|
||||||
handleCloseModal: () => void;
|
handleCloseModal: () => void;
|
||||||
|
setIsAmoCrmModalOpen: (value: boolean) => void;
|
||||||
|
isAmoCrmModalOpen: boolean;
|
||||||
|
handleCloseAmoSRMModal: () => void;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const PartnersBoard: FC<PartnersBoardProps> = ({
|
export const PartnersBoard: FC<PartnersBoardProps> = ({
|
||||||
partners,
|
|
||||||
setIsModalOpen,
|
setIsModalOpen,
|
||||||
isModalOpen,
|
isModalOpen,
|
||||||
handleCloseModal,
|
handleCloseModal,
|
||||||
companyName,
|
companyName,
|
||||||
setCompanyName,
|
setCompanyName,
|
||||||
|
setIsAmoCrmModalOpen,
|
||||||
|
isAmoCrmModalOpen,
|
||||||
|
handleCloseAmoSRMModal,
|
||||||
}) => {
|
}) => {
|
||||||
const theme = useTheme();
|
const theme = useTheme();
|
||||||
|
|
||||||
// const partnersByCategory = partners.reduce(
|
|
||||||
// (acc, partner) => {
|
|
||||||
// (acc[partner.category] = acc[partner.category] || []).push(partner);
|
|
||||||
// return acc;
|
|
||||||
// },
|
|
||||||
// {} as Record<string, Partner[]>,
|
|
||||||
// );
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Box
|
<Box
|
||||||
sx={{
|
sx={{
|
||||||
@ -48,39 +40,32 @@ export const PartnersBoard: FC<PartnersBoardProps> = ({
|
|||||||
justifyContent: { xs: "center", sm: "center", md: "start" },
|
justifyContent: { xs: "center", sm: "center", md: "start" },
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{/*{Object.entries(partnersByCategory).map(([category, partners]) => (*/}
|
|
||||||
{/* <Box key={category}>*/}
|
|
||||||
{/* <Typography*/}
|
|
||||||
{/* variant="h6"*/}
|
|
||||||
{/* sx={{*/}
|
|
||||||
{/* textAlign: { xs: "center", sm: "start", md: "start" },*/}
|
|
||||||
{/* lineHeight: "1",*/}
|
|
||||||
{/* marginBottom: "12px",*/}
|
|
||||||
{/* }}*/}
|
|
||||||
{/* >*/}
|
|
||||||
{/* {category}*/}
|
|
||||||
{/* </Typography>*/}
|
|
||||||
{/* <Box*/}
|
|
||||||
{/* sx={{*/}
|
|
||||||
{/* display: "flex",*/}
|
|
||||||
{/* flexWrap: "wrap",*/}
|
|
||||||
{/* justifyContent: { xs: "center", sm: "start", md: "start" },*/}
|
|
||||||
{/* }}*/}
|
|
||||||
{/* >*/}
|
|
||||||
{/* {partners.map((partner) => (*/}
|
|
||||||
{/* <PartnerItem*/}
|
|
||||||
{/* key={partner.name}*/}
|
|
||||||
{/* partner={partner}*/}
|
|
||||||
{/* setIsModalOpen={setIsModalOpen}*/}
|
|
||||||
{/* setCompanyName={setCompanyName}*/}
|
|
||||||
{/* />*/}
|
|
||||||
{/* ))}*/}
|
|
||||||
|
|
||||||
{/* </Box>*/}
|
|
||||||
{/* </Box>*/}
|
|
||||||
{/*))}*/}
|
|
||||||
|
|
||||||
<Box>
|
<Box>
|
||||||
|
<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
|
<Typography
|
||||||
variant="h6"
|
variant="h6"
|
||||||
sx={{
|
sx={{
|
||||||
@ -120,6 +105,13 @@ export const PartnersBoard: FC<PartnersBoardProps> = ({
|
|||||||
companyName={companyName}
|
companyName={companyName}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
{companyName && (
|
||||||
|
<AmoCRMModal
|
||||||
|
isModalOpen={isAmoCrmModalOpen}
|
||||||
|
handleCloseModal={handleCloseAmoSRMModal}
|
||||||
|
companyName={companyName}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
</Box>
|
</Box>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
6
src/pages/IntegrationsPage/mocks/AmoCRMLogo.tsx
Normal file
6
src/pages/IntegrationsPage/mocks/AmoCRMLogo.tsx
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
import React from "react";
|
||||||
|
import { ReactComponent as AmoLogo } from "./amoCRMLogo.svg";
|
||||||
|
|
||||||
|
export const AmoCRMLogo = () => {
|
||||||
|
return <AmoLogo />;
|
||||||
|
};
|
@ -1,9 +1,3 @@
|
|||||||
import amoCrmLogo from "./amoCrmLogo.png";
|
|
||||||
|
|
||||||
export const partnersMock = [
|
|
||||||
{ category: "CRM", name: "amoCRM", logo: amoCrmLogo },
|
|
||||||
];
|
|
||||||
|
|
||||||
export const performersMock = [
|
export const performersMock = [
|
||||||
"Ангелина Полякова",
|
"Ангелина Полякова",
|
||||||
"Петр Иванов",
|
"Петр Иванов",
|
||||||
|
9
src/pages/IntegrationsPage/mocks/amoCRMLogo.svg
Normal file
9
src/pages/IntegrationsPage/mocks/amoCRMLogo.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 72 KiB |
Binary file not shown.
Before Width: | Height: | Size: 3.3 KiB |
Loading…
Reference in New Issue
Block a user