import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../../providers/session_provider.dart'; import '../../screens/agents/agents_screen.dart'; import '../../screens/home/home_screen.dart'; import '../../screens/timeline/timeline_screen.dart'; import '../../screens/tokens/tokens_screen.dart'; import '../../screens/toolbelt/toolbelt_screen.dart'; import 'sidebar.dart'; class AppShell extends StatefulWidget { const AppShell({super.key}); @override State createState() => _AppShellState(); } class _AppShellState extends State { SidebarScreen _screen = SidebarScreen.home; void _onScreenSelected(SidebarScreen screen) { setState(() => _screen = screen); } void _onSessionLoaded() { setState(() => _screen = SidebarScreen.timeline); } @override Widget build(BuildContext context) { final provider = context.watch(); final hasSession = provider.session != null; return Row( children: [ Sidebar( selected: _screen, onSelect: _onScreenSelected, hasSession: hasSession, ), Expanded( child: _buildScreen(), ), ], ); } Widget _buildScreen() { switch (_screen) { case SidebarScreen.home: return HomeScreen(onSessionLoaded: _onSessionLoaded); case SidebarScreen.timeline: return const TimelineScreen(); case SidebarScreen.agents: return const AgentsScreen(); case SidebarScreen.toolbelt: return const ToolbeltScreen(); case SidebarScreen.tokens: return const TokensScreen(); } } }