import { useState, type ReactNode } from 'react' import { useMatches } from 'react-router' import type { PageMetadata } from '../route-config' import CollapsedNavigation from './collapsed-navigation' import { ActionButton } from '@react-spectrum/s2/ActionButton' import { Tooltip, TooltipTrigger } from '@react-spectrum/s2/Tooltip' import SidebarMenu from './sidebar-menu' import MobileNavigation from './mobile-navigation' import GlobalSettings from './global-settings' import HomeIcon from '@react-spectrum/s2/icons/Home' import ChevronLeftIcon from '@react-spectrum/s2/icons/ChevronLeft' import ChevronRightIcon from '@react-spectrum/s2/icons/ChevronRight' import styles from './layout-basic.module.css' interface BasicLayoutProps { children: ReactNode } function BasicLayout({ children }: BasicLayoutProps) { const [isCollapsed, setIsCollapsed] = useState(false) const currentPage = useMatches().at(-1)?.handle as PageMetadata | undefined return (
Skip to content
setIsCollapsed((collapsed) => !collapsed)} > {isCollapsed ? : } {isCollapsed ? 'Expand sidebar' : 'Collapse sidebar'}
{currentPage?.title}
{children}
) } export default BasicLayout