import type { Content } from '#api/content/$' import { Box, Grid } from '@radix-ui/themes' import type React from 'react' import { useEffect, useState } from 'react' import { useLocation } from 'react-router' import { HamburgerMenu } from '../components/HamburgerMenu.js' import { Sidebar } from '../components/sidebar/Sidebar.js' interface SidebarLayoutProps { children: React.ReactNode sidebar: Content.Item[] } export const SidebarLayout: React.FC = ({ children, sidebar }) => { const location = useLocation() const [mobileMenuOpen, setMobileMenuOpen] = useState(false) // Close mobile menu on route change useEffect(() => { setMobileMenuOpen(false) }, [location.pathname]) const isShowSidebar = sidebar && sidebar.length > 0 return ( {/* Mobile menu - only show when sidebar exists */} {isShowSidebar && ( { setMobileMenuOpen(!mobileMenuOpen) }} onClose={() => { setMobileMenuOpen(false) }} sidebarData={sidebar} /> )} {/* Desktop Sidebar */} {isShowSidebar && ( )} {children} ) }