/** * Main Layout Component */ import { useEffect } from 'react'; import { useAppStore } from '../store/appStore'; import { useHealthCheck } from '../hooks/useBackend'; import Sidebar from './Sidebar'; import Header from './Header'; import LiveStatusBar from './LiveStatusBar'; import StatusBar from './StatusBar'; interface LayoutProps { children: React.ReactNode; } export default function Layout({ children }: LayoutProps) { const sidebarOpen = useAppStore((state) => state.sidebarOpen); const setBackendStatus = useAppStore((state) => state.setBackendStatus); const error = useAppStore((state) => state.error); const clearError = useAppStore((state) => state.clearError); const { data: health, isError } = useHealthCheck(); useEffect(() => { if (health) { setBackendStatus('connected'); } else if (isError) { setBackendStatus('disconnected'); } }, [health, isError, setBackendStatus]); return (
{/* Sidebar */} {/* Main Content */}
{/* Error Banner */} {error && (
{error}
)} {/* Page Content */}
{children}
{/* Status Bar */}
); }