diff --git a/src/pages/Tariffs/Tariffs.tsx b/src/pages/Tariffs/Tariffs.tsx index ed8fc735..2d88db90 100644 --- a/src/pages/Tariffs/Tariffs.tsx +++ b/src/pages/Tariffs/Tariffs.tsx @@ -45,8 +45,8 @@ function TariffPage() { const navigate = useNavigate(); const user = useUserStore((state) => state.customerAccount); const userWithWallet = useUserStore((state) => state.customerAccount); //c wallet - console.log("________________34563875693785692576_____________USERRRRRRR") - // console.log(userWithWallet) + console.log("________________userWithWallet_____________USERRRRRRR") + console.log(userWithWallet) const { data: discounts } = useDiscounts(userId); const [isRequestCreate, setIsRequestCreate] = useState(false); const [openModal, setOpenModal] = useState({}); diff --git a/src/utils/hooks/useAutoPay.ts b/src/utils/hooks/useAutoPay.ts index cc46fde5..7c1d9956 100644 --- a/src/utils/hooks/useAutoPay.ts +++ b/src/utils/hooks/useAutoPay.ts @@ -1,44 +1,41 @@ import { cartApi } from "@api/cart"; import { useUserStore } from "@/stores/user"; -import moment from "moment"; import { enqueueSnackbar } from "notistack"; import { useEffect } from "react"; -import { redirect, useNavigate, useSearchParams } from "react-router-dom"; +import { useNavigate, useSearchParams } from "react-router-dom"; import { calcTimeOfReadyPayCart, cancelPayCartProcess, startPayCartProcess, useNotEnoughMoneyAmount } from "@/stores/notEnoughMoneyAmount"; import { startCC } from "@/stores/cc"; import { setEditQuizId, setCurrentStep } from "@root/quizes/actions"; +/* +Есть три пути по которому мы ходили из квиза в хаб. Нам нехватило денег при: +1)Покупке обычного тарифа +2)Покупке тарифа-заказ-квиза +3)Покупке тарифа в настройке квиза в вкладке ИИ +*/ + export const useAfterPay = () => { const navigate = useNavigate(); const [searchParams, setSearchParams] = useSearchParams(); + const userId = useUserStore(store => store.userId) const userAccount = useUserStore(state => state.userAccount); + const userWithWallet = useUserStore((state) => state.customerAccount); //c wallet const siteReadyPayCart = useNotEnoughMoneyAmount(state => state.siteReadyPayCart); - const purpose = searchParams.get("purpose"); - const paymentUserId = searchParams.get("userid"); - const currentCC = searchParams.get("cc"); - const wayback = searchParams.get("wayback"); - - // Обработка wayback параметра - useEffect(() => { - if (wayback) { - const quizId = wayback.split("_")[1]; - if (quizId) { - setEditQuizId(Number(quizId)); - setCurrentStep(17); // Шаг для персонализации AI - navigate("/personalization-ai"); - } - } - }, [wayback, navigate]); + let URLaction = searchParams.get("action");//что мы, собсна, хотим: оплатить, пополнить, заказать квиз + let URLuserId = searchParams.get("userid");//тот кто начал всё это действо + let URLadditionalinformation = searchParams.get("additionalinformation");//его токен useEffect(() => { - //Звёзды сошлись, будем оплачивать корзину - if (paymentUserId && paymentUserId === userId) { + setSearchParams({}, { replace: true }); - if (purpose === "paycart") { - setSearchParams({}, { replace: true }); - if (currentCC) startCC() + if (userId && URLuserId && userId === URLuserId) { + + if (URLaction === "buy") startPayCartProcess(URLuserId); + + if (URLaction === "createquizcc") { + startCC(); (async () => { //Проверяем можем ли мы оплатить корзину здесь и сейчас @@ -46,19 +43,32 @@ export const useAfterPay = () => { if (payCartError) { //Не получилось купить корзину. Ставим флаг, что сайт в состоянии ожидания пополнения счёта для оплаты - startPayCartProcess(paymentUserId) + startPayCartProcess(URLuserId); } else { - if (currentCC) navigate("/tariffs") - cancelPayCartProcess() + navigate("/tariffs"); + cancelPayCartProcess(); } })() } - } - }, [purpose, paymentUserId]) + + //Покупка ИИ тарифа из настройки квиза ИИ вкладки + if (location.pathname === "/personalization-ai") { + const quizId = Number(URLadditionalinformation); + if (quizId) { + setEditQuizId(Number(quizId)); //Выбираем квиз + setCurrentStep(17); // Шаг для персонализации AI + navigate("/personalization-ai"); //Непосредственно переход + } + } + + } + }, []); + + //Обработка необходимости купить после пополнения useEffect(() => { if (userId !== null && siteReadyPayCart !== null && siteReadyPayCart[userId] !== undefined) { - const deadline = siteReadyPayCart[userId] + const deadline = siteReadyPayCart[userId]; if (calcTimeOfReadyPayCart(deadline)) { //Время ещё не вышло. У нас стоит флаг покупать корзину если время не вышло. @@ -66,11 +76,13 @@ export const useAfterPay = () => { const [, payCartError] = await cartApi.pay(); if (!payCartError) { - enqueueSnackbar("Товары успешно приобретены") - cancelPayCartProcess() + enqueueSnackbar("Товары успешно приобретены"); + cancelPayCartProcess(); } })() } } - }, [userAccount, userId, siteReadyPayCart]) + }, [userAccount, userId, siteReadyPayCart, userWithWallet]) + + } \ No newline at end of file