Files
pulse/components/dashboard/DashboardShell.tsx
Usman Baig 1d25368292 feat: Dokploy-style sidebar layout for site pages
Sidebar takes full viewport height with Pulse logo at top. No Header
on site pages — UtilityBar in content area provides theme toggle, app
launcher, notifications, and user menu. Non-site authenticated pages
keep static Header. No footer on dashboard pages.
2026-03-18 15:58:06 +01:00

28 lines
664 B
TypeScript

'use client'
import Sidebar from './Sidebar'
import UtilityBar from './UtilityBar'
import { useSidebar } from '@/lib/sidebar-context'
export default function DashboardShell({
siteId,
children,
}: {
siteId: string
children: React.ReactNode
}) {
const { mobileOpen, closeMobile } = useSidebar()
return (
<div className="flex h-screen overflow-hidden">
<Sidebar siteId={siteId} mobileOpen={mobileOpen} onMobileClose={closeMobile} />
<div className="flex-1 flex flex-col min-w-0 overflow-hidden">
<UtilityBar />
<main className="flex-1 overflow-y-auto">
{children}
</main>
</div>
</div>
)
}