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