| | |
| | import { useTheme } from '@mui/material/styles'; |
| | import useMediaQuery from '@mui/material/useMediaQuery'; |
| | import Avatar from '@mui/material/Avatar'; |
| | import Box from '@mui/material/Box'; |
| |
|
| | |
| | import LogoSection from '../LogoSection'; |
| | import SearchSection from './SearchSection'; |
| | import ProfileSection from './ProfileSection'; |
| | import NotificationSection from './NotificationSection'; |
| |
|
| | import { handlerDrawerOpen, useGetMenuMaster } from 'api/menu'; |
| |
|
| | |
| | import { IconMenu2 } from '@tabler/icons-react'; |
| |
|
| | |
| |
|
| | export default function Header() { |
| | const theme = useTheme(); |
| | const downMD = useMediaQuery(theme.breakpoints.down('md')); |
| |
|
| | const { menuMaster } = useGetMenuMaster(); |
| | const drawerOpen = menuMaster.isDashboardDrawerOpened; |
| |
|
| | return ( |
| | <> |
| | {/* logo & toggler button */} |
| | <Box sx={{ width: downMD ? 'auto' : 228, display: 'flex' }}> |
| | <Box component="span" sx={{ display: { xs: 'none', md: 'block' }, flexGrow: 1 }}> |
| | <LogoSection /> |
| | </Box> |
| | <Avatar |
| | variant="rounded" |
| | sx={{ |
| | ...theme.typography.commonAvatar, |
| | ...theme.typography.mediumAvatar, |
| | overflow: 'hidden', |
| | transition: 'all .2s ease-in-out', |
| | color: theme.vars.palette.secondary.dark, |
| | background: theme.vars.palette.secondary.light, |
| | '&:hover': { |
| | color: theme.vars.palette.secondary.light, |
| | background: theme.vars.palette.secondary.dark |
| | } |
| | }} |
| | onClick={() => handlerDrawerOpen(!drawerOpen)} |
| | > |
| | <IconMenu2 stroke={1.5} size="20px" /> |
| | </Avatar> |
| | </Box> |
| | |
| | {/* header search */} |
| | <SearchSection /> |
| | <Box sx={{ flexGrow: 1 }} /> |
| | <Box sx={{ flexGrow: 1 }} /> |
| | |
| | {/* notification */} |
| | <NotificationSection /> |
| | |
| | {/* profile */} |
| | <ProfileSection /> |
| | </> |
| | ); |
| | } |
| |
|