import { Link } from 'react-router-dom' import UserContext from '../utils/UserContext' import { useContext, useState } from 'react' import { AppBar, Avatar, Button, Grid, IconButton, ListItemIcon, Menu, MenuItem, Toolbar, useMediaQuery, Typography, Box, } from '@mui/material' import { Person as PersonIcon, Logout as LogoutIcon, Menu as MenuIcon, } from '@mui/icons-material' const TopMenu = () => { const [user, dispatch] = useContext(UserContext) const isSmallScreen = useMediaQuery('(max-width: 600px)') const [avatarAnchorEl, setAvatarAnchorEl] = useState(null) const [hamburgerAnchorEl, setHanburgerAnchorEl] = useState(null) const handleAvatarClick = event => { setAvatarAnchorEl(event.currentTarget) } const handleAvatarMenuClose = () => { setAvatarAnchorEl(null) } const handleHamburgerClick = event => { setHanburgerAnchorEl(event.currentTarget) } const handleHanburgerMenuClose = () => { setHanburgerAnchorEl(null) } const handleLogout = event => { event.preventDefault() window.localStorage.removeItem('loggedBlogAppUser') dispatch({ type: 'CLEAR_USER' }) } function stringToColor(string) { let hash = 0 let i /* eslint-disable no-bitwise */ for (i = 0; i < string.length; i += 1) { hash = string.charCodeAt(i) + ((hash << 5) - hash) } let color = '#' for (i = 0; i < 3; i += 1) { const value = (hash >> (i * 8)) & 0xff color += `00${value.toString(16)}`.slice(-2) } /* eslint-enable no-bitwise */ return color } function stringAvatar(name) { return { sx: { bgcolor: stringToColor(name), }, children: `${name.split(' ')[0][0]}${name.split(' ')[1][0]}`, } } return ( {isSmallScreen ? ( <> Home Users Create New Blogs ) : ( <>

Blogs

)} {user.name} Log-Out
) } export default TopMenu