From 25f055cb8e32428a5ab9ef94b16c3b0ac5c2eaa5 Mon Sep 17 00:00:00 2001 From: Nastya Date: Tue, 4 Jun 2024 03:08:24 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B0=D0=BC=D0=BE=205-6=20=D1=88=D0=B0=D0=B3?= =?UTF-8?q?=D0=B8=20=D0=BF=D0=BE=D0=BC=D0=B5=D0=BD=D1=8F=D0=BD=D1=8B=20?= =?UTF-8?q?=D0=BC=D0=B5=D1=81=D1=82=D0=B0=D0=BC=D0=B8,=20=D0=B4=D0=BE?= =?UTF-8?q?=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE=20=D1=83=D0=B4=D0=B0?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B0=D0=BA=D0=BA=D0=B0=D1=83?= =?UTF-8?q?=D0=BD=D1=82=D0=B0,=20=D1=83=D0=B1=D1=80=D0=B0=D0=BD=D1=8B=20?= =?UTF-8?q?=D1=8E=D0=B7=D0=B5=D1=80=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/integration.ts | 17 +++- src/model/questionTypes/shared.ts | 4 + .../IntegrationsModal/AmoCRMModal.tsx | 79 ++++++++++++++----- .../AmoModalTitle/AmoModalTitle.tsx | 8 +- .../AmoRemoveAccount/AmoRemoveAccount.tsx | 61 ++++++++++++++ .../IntegrationStep6/AmoStep6.tsx | 40 +++++----- .../TagsDetailsView/TagsDetailsView.tsx | 15 ++-- .../IntegrationStep7/AmoStep7.tsx | 48 +++++------ .../Item/AnswerItem/AnswerItem.tsx | 0 .../Item/IconBtnAdd/IconBtnAdd.tsx | 0 .../Item/Item.tsx | 0 .../ItemDetailsView/ItemDetailsView.tsx | 15 ++-- .../ItemsSelectionView/ItemsSelectionView.tsx | 1 + .../PartnersBoard/PartnersBoard.tsx | 4 + src/utils/parse-error.ts | 2 +- 15 files changed, 212 insertions(+), 82 deletions(-) create mode 100644 src/pages/IntegrationsPage/IntegrationsModal/AmoRemoveAccount/AmoRemoveAccount.tsx rename src/pages/IntegrationsPage/IntegrationsModal/{IntegrationStep7 => IntegrationStep6}/TagsDetailsView/TagsDetailsView.tsx (88%) rename src/pages/IntegrationsPage/IntegrationsModal/{IntegrationStep6 => IntegrationStep7}/Item/AnswerItem/AnswerItem.tsx (100%) rename src/pages/IntegrationsPage/IntegrationsModal/{IntegrationStep6 => IntegrationStep7}/Item/IconBtnAdd/IconBtnAdd.tsx (100%) rename src/pages/IntegrationsPage/IntegrationsModal/{IntegrationStep6 => IntegrationStep7}/Item/Item.tsx (100%) rename src/pages/IntegrationsPage/IntegrationsModal/{IntegrationStep6 => IntegrationStep7}/ItemDetailsView/ItemDetailsView.tsx (85%) rename src/pages/IntegrationsPage/IntegrationsModal/{IntegrationStep6 => IntegrationStep7}/ItemsSelectionView/ItemsSelectionView.tsx (95%) diff --git a/src/api/integration.ts b/src/api/integration.ts index 6a253808..775e6979 100644 --- a/src/api/integration.ts +++ b/src/api/integration.ts @@ -256,7 +256,7 @@ export const getIntegrationRules = async ( method: "GET", url: `${API_URL}/rules/${quizID}`, }); - return [settingsResponse]; + return [settingsResponse || null]; } catch (nativeError) { const [error] = parseAxiosError(nativeError); return [null, `Не удалось получить настройки интеграции. ${error}`]; @@ -331,3 +331,18 @@ export const getCustomFields = async ( return [null, `Не удалось получить список кастомных полей. ${error}`]; } }; + +//Отвязать аккаунт амо от публикации + +export const removeAmoAccount = async (): Promise<[void | null, string?]> => { + try { + await makeRequest({ + method: "DELETE", + url: `${API_URL}/delete`, + }); + return [null, ""]; + } catch (nativeError) { + const [error] = parseAxiosError(nativeError); + return [null, `Не удалось отвязать аккаунт. ${error}`]; + } +}; \ No newline at end of file diff --git a/src/model/questionTypes/shared.ts b/src/model/questionTypes/shared.ts index 7cdd8a28..163d7ee7 100644 --- a/src/model/questionTypes/shared.ts +++ b/src/model/questionTypes/shared.ts @@ -96,6 +96,10 @@ export type AnyTypedQuizQuestion = | QuizQuestionRating | QuizQuestionResult; + export type AllTypesQuestion = + | AnyTypedQuizQuestion + | UntypedQuizQuestion; + type FilterQuestionsWithVariants = T extends { content: { variants: QuestionVariant[] }; } diff --git a/src/pages/IntegrationsPage/IntegrationsModal/AmoCRMModal.tsx b/src/pages/IntegrationsPage/IntegrationsModal/AmoCRMModal.tsx index 25ab5f08..3d5da094 100644 --- a/src/pages/IntegrationsPage/IntegrationsModal/AmoCRMModal.tsx +++ b/src/pages/IntegrationsPage/IntegrationsModal/AmoCRMModal.tsx @@ -8,24 +8,29 @@ import { import React, { FC, useEffect, useMemo, useState } from "react"; import Box from "@mui/material/Box"; import CloseIcon from "@mui/icons-material/Close"; +import { AmoRemoveAccount } from "./AmoRemoveAccount/AmoRemoveAccount"; import { AmoLogin } from "./AmoLogin/AmoLogin"; import { AmoStep2 } from "./AmoStep2/AmoStep2"; import { AmoStep3 } from "./AmoStep3/AmoStep3"; import { AmoStep4 } from "./AmoStep4/AmoStep4"; import { AmoStep6 } from "./IntegrationStep6/AmoStep6"; +import { AmoStep7 } from "./IntegrationStep7/AmoStep7"; import { AmoModalTitle } from "./AmoModalTitle/AmoModalTitle"; import { AmoSettingsBlock } from "./SettingsBlock/AmoSettingsBlock"; -import { AmoStep7 } from "./IntegrationStep7/AmoStep7"; import { AmoAccountInfo } from "./AmoAccountInfo/AmoAccountInfo"; -import { AccountResponse, getAccount } from "@api/integration"; +import { AccountResponse, IntegrationRules, getAccount, getIntegrationRules } from "@api/integration"; +import { useQuestions } from "@/stores/questions/hooks"; +import { redirect } from "react-router-dom"; +import { enqueueSnackbar } from "notistack"; -export type TitleKeys = "contacts" | "company" | "deal" | "users" | "buyers"; +export type TitleKeys = "contacts" | "company" | "deal" | "buyers"; export type TQuestionEntity = Record; type IntegrationsModalProps = { isModalOpen: boolean; handleCloseModal: () => void; companyName: string | null; + quizID: number | undefined; }; export type TagKeys = "contact" | "company" | "deal" | "buyer"; @@ -35,15 +40,20 @@ export const AmoCRMModal: FC = ({ isModalOpen, handleCloseModal, companyName, + quizID, }) => { const theme = useTheme(); const isMobile = useMediaQuery(theme.breakpoints.down(600)); const isTablet = useMediaQuery(theme.breakpoints.down(1000)); + const { questions } = useQuestions(); + const [step, setStep] = useState(0); const [isSettingsBlock, setIsSettingsBlock] = useState(false); + const [isRemoveAccount, setIsRemoveAccount] = useState(false); const [accountInfo, setAccountInfo] = useState(null); + const [integrationRules, setIntegrationRules] = useState(null); const [selectedPipelinePerformer, setSelectedPipelinePerformer] = useState< string | null >(null); @@ -56,10 +66,9 @@ export const AmoCRMModal: FC = ({ string | null >(null); const [questionEntity, setQuestionEntity] = useState({ + deal: [], contacts: [], company: [], - deal: [], - users: [], buyers: [], }); const [tags, setTags] = useState({ @@ -68,21 +77,38 @@ export const AmoCRMModal: FC = ({ company: [], buyer: [], }); - console.log(accountInfo) + console.log(questionEntity) + console.log(tags) useEffect(() => { - if (isModalOpen) { + if (isModalOpen && quizID !== undefined && !isRemoveAccount) { const fetchAccount = async () => { const [account, error] = await getAccount(); - if (account && !error) { - setAccountInfo(account); - } else { + + if (error) { + enqueueSnackbar(error) setAccountInfo(null); } + if (account) { + setAccountInfo(account); + } }; + const fetchRules = async () => { + const [settingsResponse, error] = await getIntegrationRules(quizID.toString()); + + if (error) { + enqueueSnackbar(error) + setIntegrationRules(null); + } + if (settingsResponse) { + setIntegrationRules(settingsResponse); + } + }; + fetchAccount(); + fetchRules(); } - }, [isModalOpen]); + }, [isModalOpen, isRemoveAccount]); const handleNextStep = () => { setStep((prevState) => prevState + 1); @@ -152,26 +178,27 @@ export const AmoCRMModal: FC = ({ ), }, { - title: "Соотнесение вопросов и сущностей", + title: "Добавление тегов", isSettingsAvailable: true, component: ( ), }, { - title: "Добавление тегов", + title: "Соотнесение вопросов и сущностей", isSettingsAvailable: true, component: ( ), }, @@ -190,6 +217,9 @@ export const AmoCRMModal: FC = ({ const stepTitles = steps.map((step) => step.title); + //Если нет контекста квиза, то и делать на этой страничке нечего + if (quizID === undefined) redirect("/list") + return ( = ({ isSettingsBlock={isSettingsBlock} setIsSettingsBlock={setIsSettingsBlock} setStep={setStep} + startRemoveAccount={() => setIsRemoveAccount(true)} /> - {isSettingsBlock ? ( + {isRemoveAccount && ( + setIsRemoveAccount(false)} + /> + )} + {isSettingsBlock && ( = ({ tags={tags} /> - ) : ( + )} + {!isSettingsBlock && !isRemoveAccount && ( {steps[step].component} )} diff --git a/src/pages/IntegrationsPage/IntegrationsModal/AmoModalTitle/AmoModalTitle.tsx b/src/pages/IntegrationsPage/IntegrationsModal/AmoModalTitle/AmoModalTitle.tsx index 39e297fb..d155e105 100644 --- a/src/pages/IntegrationsPage/IntegrationsModal/AmoModalTitle/AmoModalTitle.tsx +++ b/src/pages/IntegrationsPage/IntegrationsModal/AmoModalTitle/AmoModalTitle.tsx @@ -10,6 +10,7 @@ type AmoModalTitleProps = { isSettingsBlock?: boolean; setIsSettingsBlock: (value: boolean) => void; setStep: (value: number) => void; + startRemoveAccount: () => void; }; export const AmoModalTitle: FC = ({ @@ -18,13 +19,16 @@ export const AmoModalTitle: FC = ({ setIsSettingsBlock, isSettingsBlock, setStep, + startRemoveAccount }) => { const theme = useTheme(); const isMobile = useMediaQuery(theme.breakpoints.down(600)); - const handleClick = useCallback(() => { + console.log(isSettingsBlock) + const handleClick = useCallback(async () => { if (isSettingsBlock) { - setIsSettingsBlock(false); + startRemoveAccount(); + setIsSettingsBlock(false) setStep(0); return; } diff --git a/src/pages/IntegrationsPage/IntegrationsModal/AmoRemoveAccount/AmoRemoveAccount.tsx b/src/pages/IntegrationsPage/IntegrationsModal/AmoRemoveAccount/AmoRemoveAccount.tsx new file mode 100644 index 00000000..032ed4c2 --- /dev/null +++ b/src/pages/IntegrationsPage/IntegrationsModal/AmoRemoveAccount/AmoRemoveAccount.tsx @@ -0,0 +1,61 @@ +import { FC } from "react" +import { Button, Typography, useTheme, Box } from "@mui/material" +import { removeAmoAccount } from "@/api/integration"; +import { enqueueSnackbar } from "notistack"; + + +interface Props { + stopThisPage: () => void; + +} + +export const AmoRemoveAccount: FC = ({ + stopThisPage, + +}: Props) => { + const theme = useTheme(); + const removeAccount = async () => { + const [, error] = await removeAmoAccount() + + if (error) { + enqueueSnackbar(error) + } else { + stopThisPage() + } + }; + + return ( + + + Вы хотите сменить аккаунт? + + + + + + + ) +} \ No newline at end of file diff --git a/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep6/AmoStep6.tsx b/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep6/AmoStep6.tsx index 4c7d6645..c65cfae6 100644 --- a/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep6/AmoStep6.tsx +++ b/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep6/AmoStep6.tsx @@ -7,23 +7,24 @@ import { useMemo, useState, } from "react"; -import { ItemsSelectionView } from "./ItemsSelectionView/ItemsSelectionView"; -import { ItemDetailsView } from "./ItemDetailsView/ItemDetailsView"; -import { TitleKeys, TQuestionEntity } from "../AmoCRMModal"; -import Box from "@mui/material/Box"; -type AmoStep6Props = { - handlePrevStep: () => void; +import { TagKeys, TTags } from "../AmoCRMModal"; +import Box from "@mui/material/Box"; +import { ItemsSelectionView } from "../IntegrationStep7/ItemsSelectionView/ItemsSelectionView"; +import { TagsDetailsView } from "./TagsDetailsView/TagsDetailsView"; + +type Props = { handleNextStep: () => void; - questionEntity: TQuestionEntity; - setQuestionEntity: Dispatch>; + handlePrevStep: () => void; + tags: TTags; + setTags: Dispatch>; }; -export const AmoStep6: FC = ({ - handlePrevStep, +export const AmoStep6: FC = ({ handleNextStep, - questionEntity, - setQuestionEntity, + handlePrevStep, + tags, + setTags, }) => { const theme = useTheme(); const [isSelection, setIsSelection] = useState(false); @@ -33,14 +34,14 @@ export const AmoStep6: FC = ({ const handleAdd = useCallback(() => { if (!activeItem || !selectedValue) return; - setQuestionEntity((prevState) => ({ + setTags((prevState) => ({ ...prevState, - [activeItem]: [...prevState[activeItem as TitleKeys], selectedValue], + [activeItem]: [...prevState[activeItem as TagKeys], selectedValue], })); - }, [activeItem, setQuestionEntity, selectedValue]); + }, [activeItem, setTags, selectedValue]); const items = useMemo( - () => ["Город", "Имя", "Фамилия", "Отчество", "Контрагент"], + () => ["#тег с результатом 1", "#еще один тег с результатом 2", "#тег"], [], ); @@ -58,6 +59,7 @@ export const AmoStep6: FC = ({ items={items} selectedValue={selectedValue} setSelectedValue={setSelectedValue} + type={"typeTags"} onSmallBtnClick={() => { setActiveItem(null); setIsSelection(false); @@ -69,11 +71,11 @@ export const AmoStep6: FC = ({ }} /> ) : ( - )} diff --git a/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep7/TagsDetailsView/TagsDetailsView.tsx b/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep6/TagsDetailsView/TagsDetailsView.tsx similarity index 88% rename from src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep7/TagsDetailsView/TagsDetailsView.tsx rename to src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep6/TagsDetailsView/TagsDetailsView.tsx index f2091b71..785bbd3b 100644 --- a/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep7/TagsDetailsView/TagsDetailsView.tsx +++ b/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep6/TagsDetailsView/TagsDetailsView.tsx @@ -2,19 +2,19 @@ import { Box, Typography, useTheme } from "@mui/material"; import { StepButtonsBlock } from "../../StepButtonsBlock/StepButtonsBlock"; import { FC } from "react"; import { TagKeys, TTags } from "../../AmoCRMModal"; -import { Item } from "../../IntegrationStep6/Item/Item"; +import { Item } from "../../IntegrationStep7/Item/Item"; type TagsDetailsViewProps = { setIsSelection: (value: boolean) => void; - handleSmallBtn: () => void; - handleLargeBtn: () => void; + handlePrevStep: () => void; + handleNextStep: () => void; tags: TTags; setActiveItem: (value: string | null) => void; }; export const TagsDetailsView: FC = ({ - handleSmallBtn, - handleLargeBtn, + handlePrevStep, + handleNextStep, tags, setActiveItem, setIsSelection, @@ -89,9 +89,8 @@ export const TagsDetailsView: FC = ({ }} > diff --git a/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep7/AmoStep7.tsx b/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep7/AmoStep7.tsx index ca18f1a8..e32e6926 100644 --- a/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep7/AmoStep7.tsx +++ b/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep7/AmoStep7.tsx @@ -7,24 +7,26 @@ import { useMemo, useState, } from "react"; - -import { TagKeys, TTags } from "../AmoCRMModal"; +import { ItemsSelectionView } from "./ItemsSelectionView/ItemsSelectionView"; +import { ItemDetailsView } from "./ItemDetailsView/ItemDetailsView"; +import { TitleKeys, TQuestionEntity } from "../AmoCRMModal"; import Box from "@mui/material/Box"; -import { ItemsSelectionView } from "../IntegrationStep6/ItemsSelectionView/ItemsSelectionView"; -import { TagsDetailsView } from "./TagsDetailsView/TagsDetailsView"; +import type { AllTypesQuestion } from "@model/questionTypes/shared" -type AmoStep7Props = { - handleSmallBtn: () => void; - handleLargeBtn: () => void; - tags: TTags; - setTags: Dispatch>; +type Props = { + handlePrevStep: () => void; + handleNextStep: () => void; + questionEntity: TQuestionEntity; + setQuestionEntity: Dispatch>; + questions: AllTypesQuestion[]; }; -export const AmoStep7: FC = ({ - handleSmallBtn, - handleLargeBtn, - tags, - setTags, +export const AmoStep7: FC = ({ + handlePrevStep, + handleNextStep, + questionEntity, + setQuestionEntity, + questions, }) => { const theme = useTheme(); const [isSelection, setIsSelection] = useState(false); @@ -34,14 +36,14 @@ export const AmoStep7: FC = ({ const handleAdd = useCallback(() => { if (!activeItem || !selectedValue) return; - setTags((prevState) => ({ + setQuestionEntity((prevState) => ({ ...prevState, - [activeItem]: [...prevState[activeItem as TagKeys], selectedValue], + [activeItem]: [...prevState[activeItem as TitleKeys], selectedValue], })); - }, [activeItem, setTags, selectedValue]); + }, [activeItem, setQuestionEntity, selectedValue]); const items = useMemo( - () => ["#тег с результатом 1", "#еще один тег с результатом 2", "#тег"], + () => ["Город", "Имя", "Фамилия", "Отчество", "Контрагент"], [], ); @@ -59,7 +61,6 @@ export const AmoStep7: FC = ({ items={items} selectedValue={selectedValue} setSelectedValue={setSelectedValue} - type={"typeTags"} onSmallBtnClick={() => { setActiveItem(null); setIsSelection(false); @@ -69,13 +70,14 @@ export const AmoStep7: FC = ({ setActiveItem(null); setIsSelection(false); }} + questions={questions} /> ) : ( - )} diff --git a/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep6/Item/AnswerItem/AnswerItem.tsx b/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep7/Item/AnswerItem/AnswerItem.tsx similarity index 100% rename from src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep6/Item/AnswerItem/AnswerItem.tsx rename to src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep7/Item/AnswerItem/AnswerItem.tsx diff --git a/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep6/Item/IconBtnAdd/IconBtnAdd.tsx b/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep7/Item/IconBtnAdd/IconBtnAdd.tsx similarity index 100% rename from src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep6/Item/IconBtnAdd/IconBtnAdd.tsx rename to src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep7/Item/IconBtnAdd/IconBtnAdd.tsx diff --git a/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep6/Item/Item.tsx b/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep7/Item/Item.tsx similarity index 100% rename from src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep6/Item/Item.tsx rename to src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep7/Item/Item.tsx diff --git a/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep6/ItemDetailsView/ItemDetailsView.tsx b/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep7/ItemDetailsView/ItemDetailsView.tsx similarity index 85% rename from src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep6/ItemDetailsView/ItemDetailsView.tsx rename to src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep7/ItemDetailsView/ItemDetailsView.tsx index e468013d..3efb878b 100644 --- a/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep6/ItemDetailsView/ItemDetailsView.tsx +++ b/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep7/ItemDetailsView/ItemDetailsView.tsx @@ -4,19 +4,19 @@ import { StepButtonsBlock } from "../../StepButtonsBlock/StepButtonsBlock"; import { FC } from "react"; import { TQuestionEntity } from "../../AmoCRMModal"; -type TitleKeys = "contacts" | "company" | "deal" | "users" | "buyers"; +type TitleKeys = "contacts" | "company" | "deal" | "buyers"; type ItemDetailsViewProps = { setIsSelection: (value: boolean) => void; - handlePrevStep: () => void; - handleNextStep: () => void; + handleSmallBtn: () => void; + handleLargeBtn: () => void; questionEntity: TQuestionEntity; setActiveItem: (value: string | null) => void; }; export const ItemDetailsView: FC = ({ - handlePrevStep, - handleNextStep, + handleSmallBtn, + handleLargeBtn, questionEntity, setActiveItem, setIsSelection, @@ -69,8 +69,9 @@ export const ItemDetailsView: FC = ({ }} > diff --git a/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep6/ItemsSelectionView/ItemsSelectionView.tsx b/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep7/ItemsSelectionView/ItemsSelectionView.tsx similarity index 95% rename from src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep6/ItemsSelectionView/ItemsSelectionView.tsx rename to src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep7/ItemsSelectionView/ItemsSelectionView.tsx index ee2a12f6..d3aa0c45 100644 --- a/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep6/ItemsSelectionView/ItemsSelectionView.tsx +++ b/src/pages/IntegrationsPage/IntegrationsModal/IntegrationStep7/ItemsSelectionView/ItemsSelectionView.tsx @@ -2,6 +2,7 @@ import { Box } from "@mui/material"; import { CustomRadioGroup } from "../../../../../components/CustomRadioGroup/CustomRadioGroup"; import { StepButtonsBlock } from "../../StepButtonsBlock/StepButtonsBlock"; import { FC } from "react"; +import { AllTypesQuestion } from "@/model/questionTypes/shared"; type ItemsSelectionViewProps = { type?: string; diff --git a/src/pages/IntegrationsPage/PartnersBoard/PartnersBoard.tsx b/src/pages/IntegrationsPage/PartnersBoard/PartnersBoard.tsx index 5510eb08..dc086bf1 100644 --- a/src/pages/IntegrationsPage/PartnersBoard/PartnersBoard.tsx +++ b/src/pages/IntegrationsPage/PartnersBoard/PartnersBoard.tsx @@ -6,6 +6,7 @@ import { YandexMetricaLogo } from "../mocks/YandexMetricaLogo"; import { VKPixelLogo } from "../mocks/VKPixelLogo"; import { QuizMetricType } from "@model/quizSettings"; import { AmoCRMLogo } from "../mocks/AmoCRMLogo"; +import { useCurrentQuiz } from "@/stores/quizes/hooks"; const AnalyticsModal = lazy(() => import("./AnalyticsModal/AnalyticsModal").then((module) => ({ @@ -43,6 +44,8 @@ export const PartnersBoard: FC = ({ const theme = useTheme(); const isMobile = useMediaQuery(theme.breakpoints.down(600)); + const quiz = useCurrentQuiz(); + return ( = ({ isModalOpen={isAmoCrmModalOpen} handleCloseModal={handleCloseAmoSRMModal} companyName={companyName} + quizID={quiz?.backendId} /> )} diff --git a/src/utils/parse-error.ts b/src/utils/parse-error.ts index bb909ca3..a76873e0 100644 --- a/src/utils/parse-error.ts +++ b/src/utils/parse-error.ts @@ -25,7 +25,7 @@ const translateMessage: Record = { export const parseAxiosError = (nativeError: unknown): [string, number?] => { const error = nativeError as AxiosError; - +console.log(error) if (process.env.NODE_ENV !== "production") console.error(error); if (error.message === "Failed to fetch") return ["Ошибка сети"];