/
pylifor
/
TestTask
Обзор
Документация
Войти
/
pylifor
/
TestTask
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
ShopTestTask/src/components/Header.tsx
164 строки
5 KB
Georgii
last commit
03 мар 2024, 00:19
03 мар 2024, 00:19
a61795b
Код
Авторство
О чём код?
import * as React from 'react'; import { AppBar, Container, Button, MenuItem, Menu, Toolbar, IconButton, Typography, Box, Badge, Tooltip } from "@mui/material" import MenuIcon from '@mui/icons-material/Menu'; import AdbIcon from '@mui/icons-material/Adb'; import ShoppingBasket from '@mui/icons-material/ShoppingBasket'; const pages = [ 'Список товаров', <Tooltip onClick={() => window.open('/order', '_self')} title="Корзина"> <Badge badgeContent={localStorage.getItem('countProductSelected') ? localStorage.getItem('countProductSelected'):0 } color="primary" > <ShoppingBasket/> </Badge> </Tooltip> ]; export const Header = () => { const [anchorElNav, setAnchorElNav] = React.useState<null | HTMLElement>(null); const [anchorElUser, setAnchorElUser] = React.useState<null | HTMLElement>(null); const handleOpenNavMenu = (event: React.MouseEvent<HTMLElement>) => { setAnchorElNav(event.currentTarget); }; const handleCloseNavMenu = (event: any) => { setAnchorElNav(null); console.log(event.currentTarget) if (event.currentTarget.textContent == "Список товаров") { window.open('/', '_self') } else if (event.currentTarget.textContent == "Корзина") { } }; const handleCloseUserMenu = () => { setAnchorElUser(null); }; return ( <AppBar position="static"> <Container maxWidth="xl"> <Toolbar disableGutters> <AdbIcon sx={{ display: { xs: 'none', md: 'flex' }, mr: 1 }} /> <Typography variant="h6" noWrap component="a" href="#app-bar-with-responsive-menu" sx={{ mr: 2, display: { xs: 'none', md: 'flex' }, fontFamily: 'monospace', fontWeight: 700, letterSpacing: '.3rem', color: 'inherit', textDecoration: 'none', }} > LOGO </Typography> <Box sx={{ flexGrow: 1, display: { xs: 'flex', md: 'none' } }}> <IconButton size="large" aria-label="account of current user" aria-controls="menu-appbar" aria-haspopup="true" onClick={handleOpenNavMenu} color="inherit" > <MenuIcon /> </IconButton> <Menu id="menu-appbar" anchorEl={anchorElNav} anchorOrigin={{ vertical: 'bottom', horizontal: 'left', }} keepMounted transformOrigin={{ vertical: 'top', horizontal: 'left', }} open={Boolean(anchorElNav)} onClose={handleCloseNavMenu} sx={{ display: { xs: 'block', md: 'none' }, }} > {pages.map((page) => ( <MenuItem key={page} onClick={handleCloseNavMenu}> <Typography textAlign="center">{page}</Typography> </MenuItem> ))} </Menu> </Box> <AdbIcon sx={{ display: { xs: 'flex', md: 'none' }, mr: 1 }} /> <Typography variant="h5" noWrap component="a" href="#app-bar-with-responsive-menu" sx={{ mr: 2, display: { xs: 'flex', md: 'none' }, flexGrow: 1, fontFamily: 'monospace', fontWeight: 700, letterSpacing: '.3rem', color: 'inherit', textDecoration: 'none', }} > LOGO </Typography> <Box sx={{ flexGrow: 1, display: { xs: 'none', md: 'flex' }, justifyContent: 'space-between' }}> {pages.map((page) => ( <Button key={page} onClick={handleCloseNavMenu} sx={{ my: 2, color: 'white', display: 'block' }} > {page} </Button> ))} </Box> <Box sx={{ flexGrow: 0 }}> <Menu sx={{ mt: '45px' }} id="menu-appbar" anchorEl={anchorElUser} anchorOrigin={{ vertical: 'top', horizontal: 'right', }} keepMounted transformOrigin={{ vertical: 'top', horizontal: 'right', }} open={Boolean(anchorElUser)} onClose={handleCloseUserMenu} ></Menu> </Box> </Toolbar> </Container> </AppBar> ) }