import { Logo } from 'components/Logo'; import { Button } from 'components/shared/Button'; import { CrossIcon, MenuIcon, NotificationBellIcon, SearchIcon, } from 'components/shared/CustomIcon'; import { Sidebar } from 'components/shared/Sidebar'; import { OctokitProvider } from 'context/OctokitContext'; import { ComponentPropsWithoutRef, useEffect, useState } from 'react'; import { Outlet, useParams } from 'react-router-dom'; import { AnimatePresence, motion } from 'framer-motion'; import { cn } from 'utils/classnames'; import { useMediaQuery } from 'usehooks-ts'; import { ProjectSearchBarDialog } from 'components/projects/ProjectSearchBar'; export interface DashboardLayoutProps extends ComponentPropsWithoutRef<'section'> {} export const DashboardLayout = ({ className, ...props }: DashboardLayoutProps) => { const { orgSlug } = useParams(); const isDesktop = useMediaQuery('(min-width: 960px)'); const [isSidebarOpen, setIsSidebarOpen] = useState(false); const [isSearchOpen, setIsSearchOpen] = useState(false); useEffect(() => { if (isDesktop) { setIsSidebarOpen(false); } }, [isDesktop]); return ( <>
{/* Header on mobile */}
{isSidebarOpen ? ( ) : ( <> )}
setIsSearchOpen(false)} onClose={() => setIsSearchOpen(false)} /> ); };