import 'package:flutter/material.dart'; import 'package:flutter_adaptive_scaffold/flutter_adaptive_scaffold.dart'; import 'package:go_router/go_router.dart'; import '../../routing/app_router.dart'; /// Main application scaffold with adaptive navigation. class AppScaffold extends StatelessWidget { const AppScaffold({super.key, required this.child}); final Widget child; @override Widget build(BuildContext context) { return AdaptiveScaffold( selectedIndex: _selectedIndex(context), onSelectedIndexChange: (index) => _onNavSelected(context, index), destinations: const [ NavigationDestination( icon: Icon(Icons.dashboard_outlined), selectedIcon: Icon(Icons.dashboard), label: 'Dashboard', ), NavigationDestination( icon: Icon(Icons.chat_outlined), selectedIcon: Icon(Icons.chat), label: 'Tatlock', ), NavigationDestination( icon: Icon(Icons.dns_outlined), selectedIcon: Icon(Icons.dns), label: 'Containers', ), NavigationDestination( icon: Icon(Icons.home_outlined), selectedIcon: Icon(Icons.home), label: 'Housekeeping', ), NavigationDestination( icon: Icon(Icons.settings_outlined), selectedIcon: Icon(Icons.settings), label: 'Settings', ), ], body: (_) => child, smallBody: (_) => child, useDrawer: false, ); } int _selectedIndex(BuildContext context) { final location = GoRouterState.of(context).matchedLocation; if (location.startsWith(AppRoutes.containers)) return 2; if (location.startsWith(AppRoutes.chat)) return 1; if (location.startsWith(AppRoutes.housekeeping)) return 3; if (location.startsWith(AppRoutes.settings)) return 4; return 0; // Dashboard } void _onNavSelected(BuildContext context, int index) { final route = switch (index) { 0 => AppRoutes.dashboard, 1 => AppRoutes.chat, 2 => AppRoutes.containers, 3 => AppRoutes.housekeeping, 4 => AppRoutes.settings, _ => AppRoutes.dashboard, }; context.go(route); } }