diff --git a/src/pages/AfterPay/index.tsx b/src/pages/AfterPay/index.tsx index 043a6ee..a27f609 100644 --- a/src/pages/AfterPay/index.tsx +++ b/src/pages/AfterPay/index.tsx @@ -44,6 +44,8 @@ const { domain, pathname } = (() => { export default () => { const theme = useTheme(); const phone = useMediaQuery(theme.breakpoints.down(375)); + const redirectUrl = new URL(`https://${domain}.pena.digital${pathname}`); + redirectUrl.searchParams.append("afterpay", "true"); return ( { >Ваш платеж принят и в течение 10 минут товары будут зачислены diff --git a/src/pages/QuizPayment/QuizPayment.tsx b/src/pages/QuizPayment/QuizPayment.tsx index 200edb8..d5d83bf 100644 --- a/src/pages/QuizPayment/QuizPayment.tsx +++ b/src/pages/QuizPayment/QuizPayment.tsx @@ -1,101 +1,116 @@ -import { useEffect, useState } from "react" -import axios, { AxiosResponse } from "axios" -import { ApologyPage } from "../ApologyPage" -import { useNavigate } from "react-router-dom" -import { clearAuthToken, getAuthToken, getMessageFromFetchError, setAuthToken, useUserAccountFetcher, useUserFetcher } from "@frontend/kitui"; -import { clearUserData, setUser, setUserAccount, setUserId, useUserStore } from "@root/stores/user"; +import { useEffect, useState } from "react"; +import axios, { AxiosResponse } from "axios"; +import { ApologyPage } from "../ApologyPage"; +import { useNavigate } from "react-router-dom"; +import { + clearAuthToken, + getMessageFromFetchError, + setAuthToken, + useUserAccountFetcher, + useUserFetcher, + getAuthToken, +} from "@frontend/kitui"; +import { + clearUserData, + setUser, + setUserAccount, + setUserId, + useUserStore, +} from "@root/stores/user"; import { logout } from "@root/api/auth"; import { clearCustomTariffs } from "@root/stores/customTariffs"; import { clearTickets } from "@root/stores/tickets"; - function refresh(token: string) { - return axios>(process.env.REACT_APP_DOMAIN + "/auth/refresh", { - headers: { - "Authorization": "Bearer " + token, - "Content-Type": "application/json", - }, - method: "POST" - }); + return axios>( + process.env.REACT_APP_DOMAIN + "/auth/refresh", + { + headers: { + Authorization: "Bearer " + token, + "Content-Type": "application/json", + }, + method: "POST", + } + ); } -const params = new URLSearchParams(window.location.search) -const action = params.get("action") -const dif = params.get("dif") -const token = params.get("data") -const userId = params.get("userid") +const params = new URLSearchParams(window.location.search); +const action = params.get("action"); +const dif = params.get("dif"); +const token = params.get("data"); +const userId = params.get("userid"); - -let first = true +let first = true; export default function QuizPayment() { - const navigate = useNavigate() - const [message, setMessage] = useState("Идёт загрузка") - const user = useUserStore((state) => state.user); + const navigate = useNavigate(); + const [message, setMessage] = useState("Идёт загрузка"); + const user = useUserStore((state) => state.user); + useEffect( + function redirectIfSignedIn() { + if (!first && user?._id === userId) + navigate(`/payment?action=${action}&dif=${dif}`, { replace: true }); + }, + [navigate, user] + ); + console.log("Я начал работать"); - useEffect( - function redirectIfSignedIn() { - console.log(user) - if (user && !first && user._id === userId) navigate(`/payment?action=${action}&dif=${dif}`, { replace: true }) - }, - [navigate, user] - ); + if (first) { + history.pushState(null, document.title, "/quizpayment"); + try { + first = false; + + if (user?._id === userId) { + return; + } - console.log("Я начал работать") + if (action && dif && token) { + (async () => { + // const data = await refresh(token) + // console.log(token) + if (getAuthToken()) { + await logout(); + clearAuthToken(); + clearUserData(); + clearCustomTariffs(); + clearTickets(); + } - if (first) { -history.pushState(null, document.title, "/quizpayment"); - try { - first = false - if (action && dif && token) { - (async () => { - // const data = await refresh(token) - // console.log(token) - console.log(getAuthToken()) - if (getAuthToken()) { - await logout() - clearAuthToken(); - clearUserData(); - clearCustomTariffs(); - clearTickets(); - } - setAuthToken(token) - - // setAuthToken(data.data.accessToken) - console.log("делаем юзера ", userId) - setUserId(userId); - - // useUserFetcher({ - // url: process.env.REACT_APP_DOMAIN + `/user/${userId}`, - // userId, - // onNewUser: (user) => { - // setUser(user) - // navigate(`/payment?action=${action}&dif=${dif}`, { replace: true }) + setAuthToken(token); - // }, - // onError: () => { }, - // }) - return - })() - } else { - var link = document.createElement("a"); - link.href = "https://quiz.pena.digital/tariffs"; - document.body.appendChild(link); - link.click(); - } - } catch (e) { - console.log(e) - setMessage("Произошла ошибка") - var link = document.createElement("a"); - link.href = "https://quiz.pena.digital/tariffs"; - document.body.appendChild(link); - link.click(); - } - } + // setAuthToken(data.data.accessToken) + console.log("делаем юзера ", userId); + setUserId(userId); - return ( - - ) -}; \ No newline at end of file + // useUserFetcher({ + // url: process.env.REACT_APP_DOMAIN + `/user/${userId}`, + // userId, + // onNewUser: (user) => { + // setUser(user) + // navigate(`/payment?action=${action}&dif=${dif}`, { replace: true }) + + // }, + // onError: () => { }, + // }) + return; + })(); + } else { + var link = document.createElement("a"); + link.href = "https://quiz.pena.digital/tariffs"; + document.body.appendChild(link); + link.click(); + } + } catch (e) { + console.log(e); + setMessage("Произошла ошибка"); + var link = document.createElement("a"); + link.href = "https://quiz.pena.digital/tariffs"; + document.body.appendChild(link); + link.click(); + } + } + + return ; +}