import { useNav } from '@rspress/core/runtime'; import { SocialLinks } from '@rspress/core/theme'; import { clearAllBodyScrollLocks, disableBodyScroll } from 'body-scroll-lock'; import clsx from 'clsx'; import { useEffect, useRef } from 'react'; import './index.scss'; import { NavScreenAppearance } from './NavScreenAppearance'; import { NavScreenLangs } from './NavScreenLangs'; import { NavScreenMenu } from './NavScreenMenu'; import { NavScreenVersions } from './NavScreenVersions'; export interface NavScreenProps { isScreenOpen: boolean; toggleScreen: () => void; } export function NavScreenDivider() { return
; } export function NavScreen(props: NavScreenProps) { const { isScreenOpen, toggleScreen } = props; const screen = useRef(null); const menuItems = useNav(); useEffect(() => { if (screen.current && isScreenOpen) { disableBodyScroll(screen.current, { reserveScrollBarGap: true }); const style = `:root { --rp-home-background-bg: transparent; }`; const styleElement = document.createElement('style'); styleElement.id = 'rp-nav-screen-body-lock-style'; styleElement.innerHTML = style; document.head.appendChild(styleElement); } return () => { clearAllBodyScrollLocks(); const styleElement = document.getElementById( 'rp-nav-screen-body-lock-style', ); if (styleElement) { document.head.removeChild(styleElement); } }; }, [isScreenOpen]); return (
e.stopPropagation()} >
); }