import { Dialog } from '@base-ui/react/dialog'; import { useDisclosure, useFullscreen } from '@mantine/hooks'; import { memo } from 'react'; import { IoClose, IoContract, IoExpand, IoLockClosedOutline, IoSwapVertical } from 'react-icons/io5'; import { LuCoffee } from 'react-icons/lu'; import { useLocation } from 'react-router'; import { isLocalhost, supportsFullscreen } from '../../../externals'; import { canUseWakeLock, useKeepAwakeOptions } from '../../../features/keep-awake/useWakeLock'; import { navigatorConstants } from '../../../viewerConfig'; import { useIsSmallScreen } from '../../hooks/useIsSmallScreen'; import { useClientStore } from '../../stores/clientStore'; import { useViewOptionsStore } from '../../stores/viewOptions'; import IconButton from '../buttons/IconButton'; import { RenameClientModal } from '../client-modal/RenameClientModal'; import ClientLink from './client-link/ClientLink'; import EditorNavigation from './editor-navigation/EditorNavigation'; import NavigationMenuItem from './navigation-menu-item/NavigationMenuItem'; import OtherAddresses from './other-addresses/OtherAddresses'; import style from './NavigationMenu.module.scss'; interface NavigationMenuProps { isOpen: boolean; onClose: () => void; } export default memo(NavigationMenu); function NavigationMenu({ isOpen, onClose }: NavigationMenuProps) { const id = useClientStore((store) => store.id); const name = useClientStore((store) => store.name); const isSmallScreen = useIsSmallScreen(); const [isRenameOpen, handlers] = useDisclosure(false); const { fullscreen, toggle } = useFullscreen(); const { mirror, toggleMirror } = useViewOptionsStore(); const { keepAwake, toggleKeepAwake } = useKeepAwakeOptions(); const location = useLocation(); return ( { if (!open) { onClose(); } }} >
Ontime
{supportsFullscreen && ( Toggle Fullscreen {fullscreen ? : } )} toggleMirror()}> Flip Screen {mirror && Active} {canUseWakeLock && ( Keep Awake {keepAwake && Active} )} Rename Client
Cuesheet Operator
{navigatorConstants.map((route) => ( {route.label} ))}
{isLocalhost && (
)}
); }