video-flow-b/components/layout/dashboard-layout.tsx
2025-06-19 17:15:03 +08:00

25 lines
675 B
TypeScript

"use client";
import { useState } from 'react';
import { Sidebar } from './sidebar';
import { TopBar } from './top-bar';
interface DashboardLayoutProps {
children: React.ReactNode;
}
export function DashboardLayout({ children }: DashboardLayoutProps) {
const [sidebarCollapsed, setSidebarCollapsed] = useState(false);
return (
<div className="min-h-screen bg-background">
<Sidebar collapsed={sidebarCollapsed} onToggle={setSidebarCollapsed} />
<div className={`transition-all duration-300 ${sidebarCollapsed ? 'ml-16' : 'ml-64'}`}>
<TopBar />
<main className="p-6">
{children}
</main>
</div>
</div>
);
}