video-flow-b/components/layout/dashboard-layout.tsx
2025-06-23 20:47:46 +08:00

25 lines
695 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(true);
return (
<div className="min-h-screen">
<Sidebar collapsed={sidebarCollapsed} onToggle={setSidebarCollapsed} />
<div className={`transition-all duration-300 ${sidebarCollapsed ? 'ml-16' : 'ml-64'}`}>
<TopBar collapsed={sidebarCollapsed} />
<main className="p-6 mt-16">
{children}
</main>
</div>
</div>
);
}