import { Link, useLocation, useNavigate } from "react-router-dom"; import { Box, Button, Container, IconButton, Typography, useTheme, } from "@mui/material"; import SectionWrapper from "../SectionWrapper"; import LogoutIcon from "../icons/LogoutIcon"; import CustomAvatar from "./Avatar"; import Drawers from "../Drawers"; import PenaLogo from "../PenaLogo"; import Menu from "../Menu"; import { logout } from "@root/api/auth"; import { enqueueSnackbar } from "notistack"; import { clearUserData, useUserStore } from "@root/stores/user"; import { clearAuthToken, getMessageFromFetchError } from "@frontend/kitui"; import { clearCustomTariffs } from "@root/stores/customTariffs"; import { currencyFormatter } from "@root/utils/currencyFormatter"; import walletIcon from "@root/assets/Icons/wallet_icon.svg"; import type { ReactNode } from "react"; interface Props { isLoggedIn: boolean; children: ReactNode; } export default function NavbarFull({ isLoggedIn, children }: Props) { const theme = useTheme(); const navigate = useNavigate(); const location = useLocation(); const user = useUserStore((state) => state.user); const cash = useUserStore((state) => state.userAccount?.wallet.cash) ?? 0; async function handleLogoutClick() { try { await logout(); clearAuthToken(); clearUserData(); clearCustomTariffs(); navigate("/"); } catch (error: any) { const message = getMessageFromFetchError(error, "Не удалось выйти"); if (message) enqueueSnackbar(message); } } return ( {isLoggedIn ? ( navigate("/wallet")} > wallet Мой баланс {currencyFormatter.format(cash / 100)} ) : ( <> )} {children} ); }