Files
nixpanel-server/nixserver/src/components/Layout.tsx
T

36 lines
1.2 KiB
TypeScript
Raw Normal View History

import { useState } from 'react'
import { Outlet } from 'react-router-dom'
import { Menu, X } from 'lucide-react'
import Sidebar from './Sidebar'
2026-04-05 10:45:21 -05:00
export default function Layout() {
const [sidebarOpen, setSidebarOpen] = useState(true)
return (
<div className="flex h-screen overflow-hidden bg-[#0f1117]">
<Sidebar open={sidebarOpen} onToggle={() => setSidebarOpen(v => !v)} />
<div className="flex-1 flex flex-col overflow-hidden min-w-0">
2026-04-05 10:45:21 -05:00
{/* Topbar */}
<header className="flex items-center gap-4 px-6 py-3 bg-[#1a1d27] border-b border-[#2a2d3e] min-h-[57px] flex-shrink-0">
2026-04-05 10:45:21 -05:00
<button
onClick={() => setSidebarOpen(v => !v)}
className="text-[#64748b] hover:text-white transition-colors"
>
{sidebarOpen ? <X size={18} /> : <Menu size={18} />}
</button>
<div className="flex-1" />
<span className="text-[#64748b] text-xs">
{new Date().toLocaleDateString('en-US', { weekday: 'short', month: 'short', day: 'numeric' })}
</span>
</header>
{/* Page content */}
2026-04-05 10:45:21 -05:00
<main className="flex-1 overflow-y-auto p-6">
<Outlet />
</main>
</div>
</div>
)
}