diff --git a/src/pages/Tariffs/Tariffs.tsx b/src/pages/Tariffs/Tariffs.tsx
index 1dd3f007..2d619642 100644
--- a/src/pages/Tariffs/Tariffs.tsx
+++ b/src/pages/Tariffs/Tariffs.tsx
@@ -1,22 +1,32 @@
-import { useLocation, useNavigate } from "react-router-dom";
+import { Link, useLocation, useNavigate } from "react-router-dom";
import { makeRequest } from "@frontend/kitui";
import { useEffect, useState } from "react";
import type { GetTariffsResponse } from "@model/tariff";
+import { clearAuthToken } from "@frontend/kitui";
+import { logout } from "@api/auth";
+import ArrowDown from "../../assets/icons/ArrowDownIcon";
import {
Box,
Button,
+ Container,
Modal,
Paper,
Typography,
useMediaQuery,
useTheme,
+ IconButton
} from "@mui/material";
import { enqueueSnackbar } from "notistack";
import { Tariff, getMessageFromFetchError } from "@frontend/kitui";
import { withErrorBoundary } from "react-error-boundary";
import { createTariffElements } from "./tariffsUtils/createTariffElements";
import HeaderFull from "@ui_kit/Header/HeaderFull";
+import Logotip from "../../pages/Landing/images/icons/QuizLogo";
+import { LogoutButton } from "@ui_kit/LogoutButton";
+import { clearUserData } from "@root/user";
+import ArrowLeft from "@icons/questionsPage/arrowLeft";
+import { currencyFormatter } from "./tariffsUtils/currencyFormatter";
function TariffPage() {
const theme = useTheme();
@@ -29,6 +39,7 @@ function TariffPage() {
const [discounts, setDiscounts] = useState();
const [cartTariffMap, setCartTariffMap] = useState();
const [openModal, setOpenModal] = useState({});
+ const [cash, setCash] = useState("0");
useEffect(() => {
const get = async () => {
@@ -47,6 +58,8 @@ function TariffPage() {
setUser(user);
setTariffs(tariffs);
setDiscounts(discounts.Discounts);
+ let c = currencyFormatter.format(Number(user.wallet.cash) / 100)
+ setCash(c)
};
get();
}, []);
@@ -68,10 +81,13 @@ function TariffPage() {
//Если нам хватает денежек - покупаем тариф
if (price <= user.wallet.cash) {
try {
- await makeRequest({
+ const data = await makeRequest({
method: "POST",
- url: "https://suiz.pena.digital/customer/cart/pay",
+ url: "https://squiz.pena.digital/customer/cart/pay",
});
+ setCash(currencyFormatter.format(Number(data.wallet.cash) / 100))
+ enqueueSnackbar("Тариф успешно приобретён");
+
} catch (e) {
enqueueSnackbar("Произошла ошибка. Попробуйте позже");
}
@@ -82,9 +98,8 @@ function TariffPage() {
// history.pushState({}, null, "https://hub.pena.digital/wallet?action=squizpay");
var link = document.createElement("a");
- link.href = `https://hub.pena.digital/payment?action=squizpay&dif=${
- (price - Number(user.wallet.cash)) * 100
- }`;
+ link.href = `https://hub.pena.digital/payment?action=squizpay&dif=${(price - Number(user.wallet.cash)) * 100
+ }`;
document.body.appendChild(link);
// link.click();
}
@@ -100,19 +115,72 @@ function TariffPage() {
);
});
+ async function handleLogoutClick() {
+ const [, logoutError] = await logout();
+
+ if (logoutError) {
+ return enqueueSnackbar(logoutError);
+ }
+
+ clearAuthToken();
+ clearUserData();
+ navigate("/");
+ }
return (
<>
-
+
+
+
+
+ navigate("/list")}>
+
+
+
+
+
+ Мой баланс
+
+
+ {cash}
+
+
+
+
+
{createTariffElements(
@@ -163,7 +231,7 @@ export const Tariffs = withErrorBoundary(TariffPage, {
Ошибка загрузки тарифов
),
- onError: () => {},
+ onError: () => { },
});
const LoadingPage = () => (
@@ -183,22 +251,26 @@ const LoadingPage = () => (
export const inCart = () => {
let saveCart = JSON.parse(localStorage.getItem("saveCart") || "[]");
- saveCart.forEach(async (id: string) => {
- try {
- await makeRequest({
- method: "PATCH",
- url: `https://hub.pena.digital/customer/cart?id=${id}`,
- });
+ if (Array.isArray(saveCart)) {
+ saveCart.forEach(async (id: string) => {
+ try {
+ await makeRequest({
+ method: "PATCH",
+ url: `https://hub.pena.digital/customer/cart?id=${id}`,
+ });
- let index = saveCart.indexOf("green");
- if (index !== -1) {
- saveCart.splice(index, 1);
+ let index = saveCart.indexOf("green");
+ if (index !== -1) {
+ saveCart.splice(index, 1);
+ }
+ localStorage.setItem("saveCart", JSON.stringify(saveCart));
+ } catch (e) {
+ console.log("Я не смог добавить тариф в корзину :( " + id);
}
- localStorage.setItem("saveCart", JSON.stringify(saveCart));
- } catch (e) {
- console.log("Я не смог добавить тариф в корзину :( " + id);
- }
- });
+ });
+ } else {
+ localStorage.setItem("saveCart", "[]")
+ }
};
const outCart = (cart: string[]) => {
//Сделаем муторно и подольше, зато при прерывании сессии данные потеряются минимально
@@ -206,7 +278,7 @@ const outCart = (cart: string[]) => {
try {
await makeRequest({
method: "DELETE",
- url: `https://suiz.pena.digital/customer/cart?id=${id}`,
+ url: `https://squiz.pena.digital/customer/cart?id=${id}`,
});
let saveCart = JSON.parse(localStorage.getItem("saveCart") || "[]");
saveCart = saveCart.push(id);
diff --git a/src/pages/createQuize/QuizCard.tsx b/src/pages/createQuize/QuizCard.tsx
index 80d3f973..0dae2c01 100755
--- a/src/pages/createQuize/QuizCard.tsx
+++ b/src/pages/createQuize/QuizCard.tsx
@@ -50,7 +50,7 @@ export default function QuizCard({
try {
await makeRequest({
method: "POST",
- url: "https://suiz.pena.digital/customer/cart/pay",
+ url: "https://squiz.pena.digital/customer/cart/pay",
});
inCart();
} catch (e) {