import { useState } from 'react'; import useMediaQuery from '@mui/material/useMediaQuery'; import { useTheme } from '@mui/material/styles'; import { Link } from 'react-router-dom'; import { AppBar, Box, Divider, IconButton, styled, Tooltip, } from '@mui/material'; import MenuIcon from '@mui/icons-material/Menu'; import UserProfile from 'component/user/UserProfile'; import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender'; import MenuBookIcon from '@mui/icons-material/MenuBook'; import { ReactComponent as UnleashLogo } from 'assets/img/logoDarkWithText.svg'; import { ReactComponent as UnleashLogoWhite } from 'assets/img/logoWithWhiteText.svg'; import { ReactComponent as CelebatoryUnleashLogo } from 'assets/img/unleashHoliday.svg'; import { DrawerMenu } from './DrawerMenu/DrawerMenu'; import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig'; import { focusable } from 'themes/themeStyles'; import DarkModeOutlined from '@mui/icons-material/DarkModeOutlined'; import LightModeOutlined from '@mui/icons-material/LightModeOutlined'; import { useThemeMode } from 'hooks/useThemeMode'; import { Notifications } from 'component/common/Notifications/Notifications'; import InviteLinkButton from './InviteLink/InviteLinkButton/InviteLinkButton'; import { useUiFlag } from 'hooks/useUiFlag'; import { CommandBar } from 'component/commandBar/CommandBar'; const HeaderComponent = styled(AppBar)(({ theme }) => ({ backgroundColor: theme.palette.background.application, padding: theme.spacing(1), boxShadow: 'none', position: 'relative', paddingRight: theme.spacing(9), [theme.breakpoints.down('lg')]: { paddingLeft: theme.spacing(1), paddingRight: theme.spacing(1), }, [theme.breakpoints.down(1024)]: { marginLeft: 0, marginRight: 0, }, [theme.breakpoints.down('sm')]: { minWidth: '100%', }, margin: '0 auto', })); const ContainerComponent = styled(Box)(() => ({ display: 'flex', alignItems: 'center', width: '100%', '&&&': { padding: 0 }, })); const StyledUserContainer = styled('div')({ marginLeft: 'auto', display: 'flex', alignItems: 'center', }); const StyledNav = styled('nav')({ display: 'flex', alignItems: 'center', flexGrow: 1, }); const StyledUnleashLogoWhite = styled(UnleashLogoWhite)({ width: '150px' }); const StyledUnleashLogo = styled(UnleashLogo)({ width: '150px' }); const StyledCelebatoryLogo = styled(CelebatoryUnleashLogo)({ width: '150px' }); const StyledLink = styled(Link)(({ theme }) => focusable(theme)); const StyledIconButton = styled(IconButton)<{ component?: 'a' | 'button'; href?: string; target?: string; }>(({ theme }) => ({ borderRadius: 100, '&:focus-visible': { outlineStyle: 'solid', outlineWidth: 2, outlineColor: theme.palette.primary.main, borderRadius: '100%', }, })); const Header = () => { const { onSetThemeMode, themeMode } = useThemeMode(); const theme = useTheme(); const disableNotifications = useUiFlag('disableNotifications'); const { uiConfig, isOss } = useUiConfig(); const smallScreen = useMediaQuery(theme.breakpoints.down('lg')); const [openDrawer, setOpenDrawer] = useState(false); const toggleDrawer = () => setOpenDrawer((prev) => !prev); const celebatoryUnleash = useUiFlag('celebrateUnleash'); if (smallScreen) { return ( theme.palette.text.primary, }} onClick={toggleDrawer} aria-controls='header-drawer' aria-expanded={openDrawer} size='large' > ); } return ( ({ marginLeft: theme.spacing(1), border: 'transparent', })} /> } elseShow={} /> } /> ({ marginRight: theme.spacing(1), })} > ); }; export default Header;