Merge branch 'dev' into 'staging'
fix: payment See merge request frontend/marketplace!159
This commit is contained in:
commit
9c75589464
@ -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 (
|
||||
<Box
|
||||
@ -89,7 +91,7 @@ export default () => {
|
||||
>Ваш платеж принят и в течение 10 минут товары будут зачислены</Typography>
|
||||
<Button
|
||||
component={Link}
|
||||
to={`https://${domain}.pena.digital${pathname}`}
|
||||
to={redirectUrl.toString()}
|
||||
replace={true}
|
||||
variant="pena-contained-dark"
|
||||
>На главную</Button>
|
||||
|
@ -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<never, AxiosResponse<{ accessToken: string; }>>(process.env.REACT_APP_DOMAIN + "/auth/refresh", {
|
||||
headers: {
|
||||
"Authorization": "Bearer " + token,
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
method: "POST"
|
||||
});
|
||||
return axios<never, AxiosResponse<{ accessToken: string }>>(
|
||||
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 (
|
||||
<ApologyPage message={message} />
|
||||
)
|
||||
};
|
||||
// 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 <ApologyPage message={message} />;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user