import { useState } from 'react'; import { LeftSidebar } from '@/components/LeftSidebar'; import { RightSidebar } from '@/components/RightSidebar'; import { MobileTopBar } from '@/components/MobileTopBar'; import { MobileBottomNav } from '@/components/MobileBottomNav'; import { MobileDrawer } from '@/components/MobileDrawer'; import { FloatingComposeButton } from '@/components/FloatingComposeButton'; interface MainLayoutProps { children: React.ReactNode; /** Optional custom right sidebar to replace the default one */ rightSidebar?: React.ReactNode; } export function MainLayout({ children, rightSidebar }: MainLayoutProps) { const [drawerOpen, setDrawerOpen] = useState(false); return ( <> {/* Mobile top bar - only on small screens */} setDrawerOpen(true)} /> {/* Mobile drawer */} {/* Main layout - three column on desktop */}
{/* Desktop left sidebar - hidden below sidebar breakpoint */}
{/* Main content area */} {children} {/* Desktop right sidebar - handled internally with hidden lg:block */} {rightSidebar ?? }
{/* Mobile bottom nav - only on small screens */} {/* Mobile floating compose button */} {/* Bottom padding spacer for mobile bottom nav */}
); }