'use client'; import React, { useState } from 'react'; import { Menu } from "@/app/components/menu"; import { Sidebar } from "@/app/components/sidebar"; import { useNavidrome } from "@/app/components/NavidromeContext"; import { AudioPlayer } from "./AudioPlayer"; import { Toaster } from "@/components/ui/toaster" interface IhateserversideProps { children: React.ReactNode; } const Ihateserverside: React.FC = ({ children }) => { const [isSidebarVisible, setIsSidebarVisible] = useState(true); const [isStatusBarVisible, setIsStatusBarVisible] = useState(true); const [isSidebarHidden, setIsSidebarHidden] = useState(false); const [isSidebarCollapsed, setIsSidebarCollapsed] = useState(() => { if (typeof window !== 'undefined') { return localStorage.getItem('sidebar-collapsed') === 'true'; } return false; }); const { playlists } = useNavidrome(); const toggleSidebarCollapse = () => { const newCollapsed = !isSidebarCollapsed; setIsSidebarCollapsed(newCollapsed); if (typeof window !== 'undefined') { localStorage.setItem('sidebar-collapsed', newCollapsed.toString()); } }; const handleTransitionEnd = () => { if (!isSidebarVisible) { setIsSidebarHidden(true); // This will fully hide the sidebar after transition } }; return (
{/* Top Menu */}
setIsSidebarVisible(!isSidebarVisible)} isSidebarVisible={isSidebarVisible} toggleStatusBar={() => setIsStatusBarVisible(!isStatusBarVisible)} isStatusBarVisible={isStatusBarVisible} />
{/* Main Content Area */}
{isSidebarVisible && (
)}
{children}
{/* Floating Audio Player */} {isStatusBarVisible && ( )}
); }; export default Ihateserverside;