переписан useAfetPay на новые условия
This commit is contained in:
parent
66456bac31
commit
acfc9727ed
@ -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])
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user