import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:terepi_seged/pages/home/presentation/views/home_view.dart'; import 'package:terepi_seged/pages/map_survey/presentations/controllers/map_survey_controller.dart'; import 'package:terepi_seged/services/ntrip_service.dart'; import 'package:terepi_seged/widgets/gnss_status_chip.dart'; import '../../../../widgets/app_drawer.dart'; import '../../../map_survey/presentations/views/map_survey_view.dart'; import '../controllers/shell_controller.dart'; class ShellView extends GetView { const ShellView({super.key}); static const _pages = [ HomeView(), //MapView(), MapSurveyView(), //TrackingView(), //DataView(), ]; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( // Cím reaktívan frissül tab váltáskor title: Obx(() => Text(controller.currentTitle)), actions: [ const GnssStatusChip(), const SizedBox(width: 6), Obx(() => controller.currentIndex.value == 1 ? NtripStatusChip( isConnected: NtripService.to.isConnected, onToggle: () { NtripService.to.isConnected.value ? NtripService.to.disconnect() : NtripService.to.connect(); }, ) : const SizedBox.shrink()) ], ), drawer: const AppDrawer(), body: Obx(() => IndexedStack( index: controller.currentIndex.value, children: _pages, )), bottomNavigationBar: Obx( () => AnimatedSize( duration: const Duration(milliseconds: 250), curve: Curves.easeInOut, child: controller.isNavBarVisible.value ? NavigationBar( selectedIndex: controller.currentIndex.value, onDestinationSelected: controller.goToTab, destinations: const [ NavigationDestination( icon: Icon(Icons.map_outlined), selectedIcon: Icon(Icons.map), label: 'Térkép', ), NavigationDestination( icon: Icon(Icons.gps_fixed), label: 'Mérés', ), NavigationDestination( icon: Icon(Icons.route), label: 'Track', ), NavigationDestination( icon: Icon(Icons.table_chart_outlined), selectedIcon: Icon(Icons.table_chart), label: 'Adatok', ), ], ) : const SizedBox.shrink()), ), ); } }