import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:environment_monitoring_app/auth_provider.dart'; import 'package:environment_monitoring_app/collapsible_sidebar.dart'; // Import your sidebar widget class HomePage extends StatefulWidget { const HomePage({super.key}); @override State createState() => _HomePageState(); } class _HomePageState extends State { bool _isSidebarCollapsed = true; String _currentSelectedRoute = '/home'; @override Widget build(BuildContext context) { final auth = Provider.of(context); return Scaffold( appBar: AppBar( leading: IconButton( icon: Icon(_isSidebarCollapsed ? Icons.menu : Icons.close, color: Colors.white), onPressed: () { setState(() { _isSidebarCollapsed = !_isSidebarCollapsed; }); }, ), title: const Text("Environment Monitoring"), actions: [ IconButton( icon: const Icon(Icons.person), onPressed: () { Navigator.pushNamed(context, '/profile'); }, ), ], ), body: Row( children: [ CollapsibleSidebar( isCollapsed: _isSidebarCollapsed, onToggle: () { setState(() { _isSidebarCollapsed = !_isSidebarCollapsed; }); }, onNavigate: (route) { setState(() { _currentSelectedRoute = route; }); Navigator.pushNamed(context, route); }, ), Expanded( child: Padding( padding: const EdgeInsets.all(24), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( "Welcome, ${auth.userEmail ?? 'User'}", style: Theme.of(context).textTheme.headlineSmall?.copyWith( fontWeight: FontWeight.bold, ), ), const SizedBox(height: 32), Text( "Select a Department:", style: Theme.of(context).textTheme.titleMedium, ), const SizedBox(height: 16), Wrap( spacing: 16, runSpacing: 16, children: [ // Updated navigation to the new department home pages _buildNavButton(context, "Air", Icons.cloud, '/air/home'), _buildNavButton(context, "River", Icons.water, '/river/home'), _buildNavButton(context, "Marine", Icons.sailing, '/marine/home'), ], ), ], ), ), ), ], ), ); } Widget _buildNavButton(BuildContext context, String label, IconData icon, String route) { return ElevatedButton.icon( onPressed: () => Navigator.pushNamed(context, route), icon: Icon(icon, size: 24), label: Text(label), style: ElevatedButton.styleFrom( padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 16), textStyle: const TextStyle(fontSize: 16), ), ); } }