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: IndexedStack( index: _screen.index, children: [ HomeScreen(onSessionLoaded: _onSessionLoaded), const TimelineScreen(), const AgentsScreen(), const ToolbeltScreen(), const TokensScreen(), ], ), ), ], ); } }