переписан useAfetPay на новые условия
All checks were successful
Deploy / CreateImage (push) Successful in 11m15s
Deploy / DeployService (push) Successful in 26s

This commit is contained in:
Nastya 2025-07-14 22:44:09 +03:00
parent 66456bac31
commit acfc9727ed
2 changed files with 46 additions and 34 deletions

@ -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({});

@ -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) {
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])
}