import { useNav, useSite } from '@rspress/core/runtime'; import { NavHamburger, NavTitle, Search, SocialLinks, SwitchAppearance, } from '@rspress/core/theme'; import './index.scss'; import { NavLangs, NavMenu, NavMenuDivider, NavVersions } from './NavMenu'; export interface NavProps { beforeNavTitle?: React.ReactNode; navTitle?: React.ReactNode; afterNavTitle?: React.ReactNode; beforeNavMenu?: React.ReactNode; afterNavMenu?: React.ReactNode; } export function Nav(props: NavProps) { const { beforeNavTitle, afterNavTitle, beforeNavMenu, afterNavMenu, navTitle, } = props; const navList = useNav(); const { site } = useSite(); const hasAppearanceSwitch = site.themeConfig.darkMode !== false; return (
{beforeNavTitle} {navTitle ?? } {/* only in desktop */} {afterNavTitle}
{beforeNavMenu} {/* only in desktop */}
{hasAppearanceSwitch && }
{/* only in mobile */} {afterNavMenu}
); }