Merge branch 'dev' into 'staging'

реактивность доступных привелегий, описание тарифов из description

See merge request frontend/squiz!263
This commit is contained in:
Nastya 2024-04-14 22:52:50 +00:00
commit 86203e1a31
3 changed files with 28 additions and 3 deletions

@ -81,7 +81,7 @@ const LazyLoading = ({ children, fallback }: SuspenseProps) => (
<Suspense fallback={fallback ?? <></>}>{children}</Suspense> <Suspense fallback={fallback ?? <></>}>{children}</Suspense>
); );
function useUserAccountFetcher<T = UserAccount>({ export function useUserAccountFetcher<T = UserAccount>({
onError, onError,
onNewUserAccount, onNewUserAccount,
url, url,

@ -51,7 +51,7 @@ export const createTariffElements = (
}), }),
}} }}
headerText={tariff.name} headerText={tariff.name}
text={tariff.privileges.map((p) => `${p.name} - ${p.amount}`)} text={tariff.description}
price={ price={
<> <>
{priceBeforeDiscounts !== priceAfterDiscounts && ( {priceBeforeDiscounts !== priceAfterDiscounts && (

@ -1,9 +1,34 @@
import { Box, Typography } from "@mui/material"; 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() { export default function AvailablePrivilege() {
const user = useUserStore(); const user = useUserStore();
const userPrivileges = user.userAccount?.privileges; const userPrivileges = user.userAccount?.privileges;
const userId = useUserStore((state) => state.userId);
const navigate = useNavigate();
useUserAccountFetcher<OriginalUserAccount>({
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); console.log("это доступные привелегии", userPrivileges);
const DayForm = ["день", "дня", "дней"]; const DayForm = ["день", "дня", "дней"];
function declOfNum(n: number, text_forms: string[]) { function declOfNum(n: number, text_forms: string[]) {