добавлена страница калькулятора

This commit is contained in:
Kayashov.SM
2025-08-21 02:49:24 +04:00
parent 34295bc045
commit 9da769beb5
22 changed files with 344 additions and 55 deletions

View File

@@ -65,7 +65,8 @@ export function Cocktail({row, handleFavourite, handleChangeRating, handleSelect
{renderFavouriteBadge(handleFavourite, row)}
{renderRating(handleChangeRating, row)}
{user.role !== 'USER' &&
{
(user.role && user.role !== 'USER') &&
<>
<IconButton size='small' href={`${paths.bar.cocktailEdit}?id=${row.id}`}>
<EditIcon fontSize='small'/>

View File

@@ -132,7 +132,7 @@ export function CocktailInfoModal({row}) {
<Stack key={r.ingredient.id} direction='row' justifyContent={'space-between'}
mt={1}>
<Stack direction='row'>
{user.role !== "USER" && (
{(user.role && user.role !== "USER") && (
<IconButton size="small" sx={{pb: "2px"}}
onClick={() => selectIngredientHandler(r.ingredient)}>
{r.ingredient.isHave
@@ -161,7 +161,7 @@ export function CocktailInfoModal({row}) {
</Box>
</DialogContent>
<DialogActions>
{user.role.includes("ADMIN") && (
{(user.role && user.role.includes("ADMIN")) && (
<Button href={`${paths.bar.cocktailEdit}?id=${cocktail.id}`}>Редактировать</Button>
)}
<Button onClick={closeCocktail}>Закрыть</Button>

View File

@@ -7,11 +7,13 @@ import MenuList from '@mui/material/MenuList';
import Popover from '@mui/material/Popover';
import Typography from '@mui/material/Typography';
import {SignOut as SignOutIcon} from '@phosphor-icons/react/dist/ssr/SignOut';
import {SignIn as SignInIcon} from '@phosphor-icons/react/dist/ssr/SignIn';
import {logger} from "../../lib/DefaultLogger";
import {useAuth} from "../../hooks/useAuth";
import {authClient} from "../../lib/clients/AuthClient";
import {useLocation} from "react-router-dom";
import {useUser} from "../../hooks/useUser";
import {paths} from "../../path";
export function UserPopover({anchorEl, onClose, open}) {
const {checkSession} = useAuth();
@@ -64,24 +66,28 @@ export function UserPopover({anchorEl, onClose, open}) {
{/* </ListItemIcon>*/}
{/* Профиль*/}
{/*</MenuItem>*/}
<MenuItem onClick={handleSignOut}>
<ListItemIcon>
<SignOutIcon fontSize="var(--icon-fontSize-md)"/>
</ListItemIcon>
Выход
</MenuItem>
{!user.name ? <MenuItem onClick={() => window.location.replace(paths.auth.signIn)}>
<ListItemIcon>
<SignInIcon fontSize="var(--icon-fontSize-md)"/>
</ListItemIcon>
Вход
</MenuItem> :
<MenuItem onClick={handleSignOut}>
<ListItemIcon>
<SignOutIcon fontSize="var(--icon-fontSize-md)"/>
</ListItemIcon>
Выход
</MenuItem>
}
</MenuList>
</Popover>
);
}
function userDescriptor(user, session) {
if (!user) {
return (<Typography variant="subtitle1">Ошибка загрузки данных</Typography>);
function userDescriptor(user) {
if (!user.name) {
return (<Typography variant="subtitle1">Гость</Typography>);
}
const open = (session.isActive && user.invited) ? "открыт" : "закрыт";
return (
<>
<Typography variant="subtitle1">{user.name + " " + user.lastName}</Typography>

View File

@@ -14,7 +14,8 @@ import {
Martini,
Storefront,
Users,
Wallet
Wallet,
Calculator
} from "@phosphor-icons/react";
export const navIcons = {
@@ -31,6 +32,7 @@ export const navIcons = {
'chart-pie': ChartPieIcon,
'gear-six': GearSixIcon,
'plugs-connected': PlugsConnectedIcon,
'calc': Calculator,
'x-square': XSquare,
user: UserIcon,
users: UsersIcon,