import 'package:flutter/material.dart'; import 'package:google_nav_bar/google_nav_bar.dart'; import 'package:mensaapp/providers/spaceProvider.dart'; import 'package:provider/provider.dart'; import '../providers/ambienteProvider.dart'; import '../providers/anmerkungProvider.dart'; import '../providers/essenProvider.dart'; import '../providers/languageProvider.dart'; import '../providers/pageProvider.dart'; import '../providers/serviceProvider.dart'; import '../providers/spezielleErnaehrungProvider.dart'; class SpaceRate extends StatelessWidget { const SpaceRate({super.key}); void _showDeleteDialog(BuildContext context) { showDialog( context: context, builder: (BuildContext context) { return AlertDialog( shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(20), ), title: Text(Provider.of(context, listen: false) .languageData[ Provider.of(context, listen: false) .language]["floating"]["delete"]["title"]), content: Text( Provider.of(context, listen: false).languageData[ Provider.of(context, listen: false) .language]["floating"]["delete"]["info"], style: const TextStyle(fontSize: 18), ), actions: [ ElevatedButton( onPressed: () { Navigator.of(context).pop(); }, style: ElevatedButton.styleFrom( backgroundColor: Theme.of(context).colorScheme.secondary), child: Text(Provider.of(context, listen: false) .languageData[ Provider.of(context, listen: false) .language]["floating"]["delete"]["keep"]), ), ElevatedButton( onPressed: () { Provider.of(context, listen: false) .resetAllFields(); Provider.of(context, listen: false) .resetAllFields(); Provider.of(context, listen: false) .resetAllFields(); Provider.of(context, listen: false) .resetAllFields(); Provider.of(context, listen: false) .resetAllFields(); Provider.of(context, listen: false) .resetSelectedEssen(); Provider.of(context, listen: false) .setSelectedSpace(0); Provider.of(context, listen: false) .setLanguage("de"); // Hier Aktion für Löschen ausführen Navigator.of(context).pop(); // Dialog schließen }, child: Text(Provider.of(context, listen: false) .languageData[ Provider.of(context, listen: false) .language]["floating"]["delete"]["del"]), ) ], ); }, ); } @override Widget build(BuildContext context) { return Consumer(builder: (context, languageProvider, x) { return Scaffold( appBar: AppBar( leading: IconButton( icon: Icon( Icons.home_rounded, size: 36, color: Theme.of(context).colorScheme.onPrimary, ), onPressed: () { _showDeleteDialog(context); }, ), title: Consumer( // Consumer verwenden, um den dynamischen Titel anzuzeigen builder: (context, pageProvider, child) { return Container( height: 40, decoration: BoxDecoration( color: Theme.of(context).colorScheme.primaryContainer, borderRadius: BorderRadius.circular(15), ), alignment: Alignment.centerLeft, child: Text( languageProvider.languageData[ Provider.of(context).language] ["navBar"][pageProvider.selectedPage.toString()], // Hier wird der dynamische Titel angezeigt style: TextStyle( color: Theme.of(context).colorScheme.onPrimary, fontWeight: FontWeight.bold, ), ), ); }, ), backgroundColor: Theme.of(context).colorScheme.primary, actions: [ IconButton( icon: Opacity( opacity: Provider.of(context).language == "de" ? 1.0 // Voll sichtbar : 0.4, // Halb durchsichtig child: Image.asset( 'assets/flags/de.png', width: 34, height: 24, fit: BoxFit.cover, ), ), onPressed: () { Provider.of(context, listen: false) .setLanguage("de"); }, ), IconButton( icon: Opacity( opacity: Provider.of(context).language == "en" ? 1.0 // Voll sichtbar : 0.4, // Halb durchsichtig child: Image.asset( 'assets/flags/en.png', width: 34, height: 24, fit: BoxFit.cover, ), ), onPressed: () { Provider.of(context, listen: false) .setLanguage("en"); }, ), IconButton( icon: Opacity( opacity: Provider.of(context).language == "fr" ? 1.0 // Voll sichtbar : 0.4, // Halb durchsichtig child: Image.asset( 'assets/flags/fr.png', width: 34, height: 24, fit: BoxFit.cover, ), ), onPressed: () { Provider.of(context, listen: false) .setLanguage("fr"); }, ), ], ), body: Consumer( builder: (context, pageProvider, child) { return Stack( children: [ pageProvider.pages[pageProvider.selectedPage], Positioned( left: 10, bottom: 10, child: IconButton.filled( padding: const EdgeInsets.all(15), onPressed: () { _showDeleteDialog(context); // Dialog anzeigen }, icon: const Icon( Icons.delete, size: 30, ), style: ButtonStyle( shape: WidgetStateProperty.all(RoundedRectangleBorder( borderRadius: BorderRadius.circular(17))), backgroundColor: WidgetStateProperty.all( Theme.of(context).colorScheme.primary, ), ), ), ) ], ); }, ), floatingActionButton: Column( mainAxisSize: MainAxisSize.min, children: [ Text( Provider.of(context).languageData[ Provider.of(context).language] ["floating"]["info"], style: TextStyle(fontSize: 15), ), const SizedBox( height: 10, ), FloatingActionButton.extended( onPressed: () {}, label: Text( Provider.of(context).languageData[ Provider.of(context).language] ["floating"]["return"], style: TextStyle(fontSize: 20), ), icon: const Icon(Icons.send), ) ], ), bottomNavigationBar: Container( color: Theme.of(context).colorScheme.secondary, child: Padding( padding: const EdgeInsets.all(5), child: GNav( onTabChange: (index) { Provider.of(context, listen: false) .changePage(index); }, gap: 8, style: GnavStyle.google, backgroundColor: Colors.transparent, color: Theme.of(context).colorScheme.onSurface, activeColor: Theme.of(context).colorScheme.onPrimary, tabBackgroundColor: Theme.of(context).colorScheme.primary, tabs: [ GButton( icon: Icons.fastfood_outlined, text: Provider.of(context).languageData[ Provider.of(context).language] ["navBar"]["0"], ), GButton( icon: Icons.mood, text: Provider.of(context).languageData[ Provider.of(context).language] ["navBar"]["1"], ), GButton( icon: Icons.favorite, text: Provider.of(context).languageData[ Provider.of(context).language] ["navBar"]["2"], ), ], ), ), ), ); }); } }