import {CardActions, CardContent, CardMedia, Rating} from "@mui/material"; import {useAlert} from "../../hooks/useAlert"; import Typography from "@mui/material/Typography"; import List from "@mui/material/List"; import ListItem from "@mui/material/ListItem"; import ListItemText from "@mui/material/ListItemText"; import Button from "@mui/material/Button"; import Grid from "@mui/material/Grid"; import {requests} from "../../requests"; import {CocktailItemStyled} from "./CocktailItemStyled"; import IconButton from "@mui/material/IconButton"; import FavoriteBorderIcon from '@mui/icons-material/FavoriteTwoTone'; import FavoriteIcon from '@mui/icons-material/Favorite'; import {api} from "../../lib/clients/api"; import Box from "@mui/material/Box"; import {useUser} from "../../hooks/useUser"; function renderFavouriteBadge(handleFavourite, row) { const childIcon = row.rating.favourite ? : ; return ( handleFavourite(row)}> {childIcon} ) } function renderRating(handleChangeRating, row) { return ( handleChangeRating(row, newValue)} /> ) } export function Cocktail({row, handleFavourite, handleChangeRating, handleSelect, editMenuBlock}) { const {createAlert, createError} = useAlert(); const {session, user} = useUser(); function pay(cocktailId) { api().post(`${requests.bar.pay}cocktail=${cocktailId}`) .then(() => createAlert("Ожидайте свой заказ", "success")) .catch(() => createError("Ошибка во время создания заказа")) } return ( handleSelect(row)} component="img" alt={row.name} height="300" image={`${row.image}/preview`} /> {renderFavouriteBadge(handleFavourite, row)} {renderRating(handleChangeRating, row)} {row.name} {row.hasError && ( Имеет ошибку в рецепте или ингредиентах )} {"Категория: " + row.category} {"Алкоголь: " + row.alcoholic} {row.volume !== null && ( {"Крепость: ≈" + row.volume} )} {"Подача: " + row.glass} {"Состав: " + row.components} {(row.tags && row.tags.length > 0) && ( {"Теги: " + row.tags.replaceAll(',', ', ')} )} {(row.isAllowed && session.isActive && user.invited) && } {editMenuBlock(row)} ) }