From fcf4ce6a4fa32d51f66b62d73b9ab0bbac467c28 Mon Sep 17 00:00:00 2001 From: Tamara Date: Mon, 15 Apr 2024 01:35:08 +0300 Subject: [PATCH] =?UTF-8?q?=D1=80=D0=B5=D0=B0=D0=BA=D1=82=D0=B8=D0=B2?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D0=B4=D0=BE=D1=81=D1=82=D1=83?= =?UTF-8?q?=D0=BF=D0=BD=D1=8B=D1=85=20=D0=BF=D1=80=D0=B8=D0=B2=D0=B5=D0=BB?= =?UTF-8?q?=D0=B5=D0=B3=D0=B8=D0=B9,=20=D0=BE=D0=BF=D0=B8=D1=81=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=82=D0=B0=D1=80=D0=B8=D1=84=D0=BE=D0=B2?= =?UTF-8?q?=20=D0=B8=D0=B7=20description?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.tsx | 2 +- .../tariffsUtils/createTariffElements.tsx | 2 +- src/pages/createQuize/AvailablePrivilege.tsx | 27 ++++++++++++++++++- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 00dfec98..5045ad9e 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -81,7 +81,7 @@ const LazyLoading = ({ children, fallback }: SuspenseProps) => ( }>{children} ); -function useUserAccountFetcher({ +export function useUserAccountFetcher({ onError, onNewUserAccount, url, diff --git a/src/pages/Tariffs/tariffsUtils/createTariffElements.tsx b/src/pages/Tariffs/tariffsUtils/createTariffElements.tsx index 87746cd9..a46e75dc 100644 --- a/src/pages/Tariffs/tariffsUtils/createTariffElements.tsx +++ b/src/pages/Tariffs/tariffsUtils/createTariffElements.tsx @@ -51,7 +51,7 @@ export const createTariffElements = ( }), }} headerText={tariff.name} - text={tariff.privileges.map((p) => `${p.name} - ${p.amount}`)} + text={tariff.description} price={ <> {priceBeforeDiscounts !== priceAfterDiscounts && ( diff --git a/src/pages/createQuize/AvailablePrivilege.tsx b/src/pages/createQuize/AvailablePrivilege.tsx index 295d9c25..90469640 100644 --- a/src/pages/createQuize/AvailablePrivilege.tsx +++ b/src/pages/createQuize/AvailablePrivilege.tsx @@ -1,9 +1,34 @@ import { Box, Typography } from "@mui/material"; -import { useUserStore } from "@root/user"; +import { + clearUserData, + OriginalUserAccount, + setUserAccount, + useUserStore, +} from "@root/user"; +import { clearAuthToken, getMessageFromFetchError } from "@frontend/kitui"; +import { enqueueSnackbar } from "notistack"; +import { useUserAccountFetcher } from "../../App"; +import { useNavigate } from "react-router-dom"; export default function AvailablePrivilege() { const user = useUserStore(); const userPrivileges = user.userAccount?.privileges; + const userId = useUserStore((state) => state.userId); + const navigate = useNavigate(); + useUserAccountFetcher({ + url: process.env.REACT_APP_DOMAIN + "/squiz/account/get", + userId, + onNewUserAccount: setUserAccount, + onError: (error) => { + const errorMessage = getMessageFromFetchError(error); + if (errorMessage) { + enqueueSnackbar(errorMessage); + clearUserData(); + clearAuthToken(); + navigate("/signin"); + } + }, + }); console.log("это доступные привелегии", userPrivileges); const DayForm = ["день", "дня", "дней"]; function declOfNum(n: number, text_forms: string[]) {