переписан 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 navigate = useNavigate();
const user = useUserStore((state) => state.customerAccount); const user = useUserStore((state) => state.customerAccount);
const userWithWallet = useUserStore((state) => state.customerAccount); //c wallet const userWithWallet = useUserStore((state) => state.customerAccount); //c wallet
console.log("________________34563875693785692576_____________USERRRRRRR") console.log("________________userWithWallet_____________USERRRRRRR")
// console.log(userWithWallet) console.log(userWithWallet)
const { data: discounts } = useDiscounts(userId); const { data: discounts } = useDiscounts(userId);
const [isRequestCreate, setIsRequestCreate] = useState(false); const [isRequestCreate, setIsRequestCreate] = useState(false);
const [openModal, setOpenModal] = useState({}); const [openModal, setOpenModal] = useState({});

@ -1,44 +1,41 @@
import { cartApi } from "@api/cart"; import { cartApi } from "@api/cart";
import { useUserStore } from "@/stores/user"; import { useUserStore } from "@/stores/user";
import moment from "moment";
import { enqueueSnackbar } from "notistack"; import { enqueueSnackbar } from "notistack";
import { useEffect } from "react"; 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 { calcTimeOfReadyPayCart, cancelPayCartProcess, startPayCartProcess, useNotEnoughMoneyAmount } from "@/stores/notEnoughMoneyAmount";
import { startCC } from "@/stores/cc"; import { startCC } from "@/stores/cc";
import { setEditQuizId, setCurrentStep } from "@root/quizes/actions"; import { setEditQuizId, setCurrentStep } from "@root/quizes/actions";
/*
Есть три пути по которому мы ходили из квиза в хаб. Нам нехватило денег при:
1)Покупке обычного тарифа
2)Покупке тарифа-заказ-квиза
3)Покупке тарифа в настройке квиза в вкладке ИИ
*/
export const useAfterPay = () => { export const useAfterPay = () => {
const navigate = useNavigate(); const navigate = useNavigate();
const [searchParams, setSearchParams] = useSearchParams(); const [searchParams, setSearchParams] = useSearchParams();
const userId = useUserStore(store => store.userId) const userId = useUserStore(store => store.userId)
const userAccount = useUserStore(state => state.userAccount); const userAccount = useUserStore(state => state.userAccount);
const userWithWallet = useUserStore((state) => state.customerAccount); //c wallet
const siteReadyPayCart = useNotEnoughMoneyAmount(state => state.siteReadyPayCart); const siteReadyPayCart = useNotEnoughMoneyAmount(state => state.siteReadyPayCart);
const purpose = searchParams.get("purpose"); let URLaction = searchParams.get("action");//что мы, собсна, хотим: оплатить, пополнить, заказать квиз
const paymentUserId = searchParams.get("userid"); let URLuserId = searchParams.get("userid");//тот кто начал всё это действо
const currentCC = searchParams.get("cc"); let URLadditionalinformation = searchParams.get("additionalinformation");//его токен
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]);
useEffect(() => { useEffect(() => {
//Звёзды сошлись, будем оплачивать корзину setSearchParams({}, { replace: true });
if (paymentUserId && paymentUserId === userId) {
if (purpose === "paycart") { if (userId && URLuserId && userId === URLuserId) {
setSearchParams({}, { replace: true });
if (currentCC) startCC() if (URLaction === "buy") startPayCartProcess(URLuserId);
if (URLaction === "createquizcc") {
startCC();
(async () => { (async () => {
//Проверяем можем ли мы оплатить корзину здесь и сейчас //Проверяем можем ли мы оплатить корзину здесь и сейчас
@ -46,19 +43,32 @@ export const useAfterPay = () => {
if (payCartError) { if (payCartError) {
//Не получилось купить корзину. Ставим флаг, что сайт в состоянии ожидания пополнения счёта для оплаты //Не получилось купить корзину. Ставим флаг, что сайт в состоянии ожидания пополнения счёта для оплаты
startPayCartProcess(paymentUserId) startPayCartProcess(URLuserId);
} else { } else {
if (currentCC) navigate("/tariffs") navigate("/tariffs");
cancelPayCartProcess() cancelPayCartProcess();
} }
})() })()
} }
}
}, [purpose, paymentUserId])
//Покупка ИИ тарифа из настройки квиза ИИ вкладки
if (location.pathname === "/personalization-ai") {
const quizId = Number(URLadditionalinformation);
if (quizId) {
setEditQuizId(Number(quizId)); //Выбираем квиз
setCurrentStep(17); // Шаг для персонализации AI
navigate("/personalization-ai"); //Непосредственно переход
}
}
}
}, []);
//Обработка необходимости купить после пополнения
useEffect(() => { useEffect(() => {
if (userId !== null && siteReadyPayCart !== null && siteReadyPayCart[userId] !== undefined) { if (userId !== null && siteReadyPayCart !== null && siteReadyPayCart[userId] !== undefined) {
const deadline = siteReadyPayCart[userId] const deadline = siteReadyPayCart[userId];
if (calcTimeOfReadyPayCart(deadline)) { if (calcTimeOfReadyPayCart(deadline)) {
//Время ещё не вышло. У нас стоит флаг покупать корзину если время не вышло. //Время ещё не вышло. У нас стоит флаг покупать корзину если время не вышло.
@ -66,11 +76,13 @@ export const useAfterPay = () => {
const [, payCartError] = await cartApi.pay(); const [, payCartError] = await cartApi.pay();
if (!payCartError) { if (!payCartError) {
enqueueSnackbar("Товары успешно приобретены") enqueueSnackbar("Товары успешно приобретены");
cancelPayCartProcess() cancelPayCartProcess();
} }
})() })()
} }
} }
}, [userAccount, userId, siteReadyPayCart]) }, [userAccount, userId, siteReadyPayCart, userWithWallet])
} }