import DarkModeContainer from '@/components/DarkModeContainer'; import FullScreen from '@/components/FullScreen'; import { GLOBAL_HEADER_MENU_ID } from '@/constants/app'; import { LangSwitch } from '@/features/lang'; import { MenuToggler } from '@/features/menu'; import { ThemeSchemaSwitch } from '@/features/theme'; import GlobalLogo from '../GlobalLogo'; import GlobalSearch from '../global-search/GlobalSearch'; import GlobalBreadcrumb from './components/Breadcrumb'; import ThemeButton from './components/ThemeButton'; import UserAvatar from './components/UserAvatar'; interface Props { isMobile: boolean; mode: UnionKey.ThemeLayoutMode; reverse?: boolean; siderWidth: number; } const HEADER_PROPS_CONFIG: Record = { horizontal: { showLogo: true, showMenu: true, showMenuToggler: false }, 'horizontal-mix': { showLogo: true, showMenu: true, showMenuToggler: false }, vertical: { showLogo: false, showMenu: false, showMenuToggler: true }, 'vertical-mix': { showLogo: false, showMenu: false, showMenuToggler: false } }; const GlobalHeader: FC = memo(({ isMobile, mode, reverse, siderWidth }) => { const [isFullscreen, { toggleFullscreen }] = useFullscreen(document.body); const { showLogo, showMenu, showMenuToggler } = HEADER_PROPS_CONFIG[mode]; const showToggler = reverse ? true : showMenuToggler; return ( {showLogo && ( )}
{reverse ? true : showMenuToggler}
{showToggler && }
{!isMobile && !showMenu && }
{!isMobile && ( )}
); }); export default GlobalHeader;