import { useState, useEffect } from "react"; import { PengelolaSidebar } from "./sidebar"; import { PengelolaHeader } from "./header"; interface PengelolaLayoutWrapperProps { children: React.ReactNode; } export function PengelolaLayoutWrapper({ children }: PengelolaLayoutWrapperProps) { const [sidebarOpen, setSidebarOpen] = useState(false); const [sidebarCollapsed, setSidebarCollapsed] = useState(false); const [isHovered, setIsHovered] = useState(false); const [isMobile, setIsMobile] = useState(false); useEffect(() => { const checkMobile = () => { setIsMobile(window.innerWidth < 1024); if (window.innerWidth >= 1024) { setSidebarOpen(false); } }; checkMobile(); window.addEventListener("resize", checkMobile); return () => window.removeEventListener("resize", checkMobile); }, []); const handleToggleSidebar = () => { if (isMobile) { setSidebarOpen(!sidebarOpen); } else { setSidebarCollapsed(!sidebarCollapsed); } }; const sidebarWidth = sidebarCollapsed && !isHovered ? "80px" : "290px"; const contentMargin = isMobile ? "0" : sidebarWidth; return (
{/* Sidebar */} setSidebarOpen(false)} onMouseEnter={() => setIsHovered(true)} onMouseLeave={() => setIsHovered(false)} /> {/* Mobile overlay */} {sidebarOpen && isMobile && (
setSidebarOpen(false)} /> )} {/* Main content */}
{/* Page content */}
{children}
); }