import 'package:flutter/material.dart'; import 'package:mensaappbackend/modules/ratingCard.dart'; import 'package:mensaappbackend/providers/pageProvider.dart'; import 'package:provider/provider.dart'; import 'package:supabase_flutter/supabase_flutter.dart'; class PageDashboard extends StatelessWidget { const PageDashboard({super.key}); Future> requestSupaBase7Days() async { var supabase = Supabase.instance.client; var result = await supabase.from("ratings_database").select("ratings"); return result; } final ratingNames = const { "page1": {"title": "Essen", "q1": "Geschmack", "q2": "Qualität"}, "page2": {"title": "Service", "q1": "Undefined", "q2": "Undefined"}, "page3": {"title": "Wünsche", "q1": "Undefined", "q2": "Undefined"} }; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( backgroundColor: Theme.of(context).colorScheme.primary, title: Text( "Dashboard - Bewertungen", style: TextStyle(color: Theme.of(context).colorScheme.onPrimary), ), centerTitle: false, actions: [ TextButton.icon( onPressed: () { var supabase = Supabase.instance.client; supabase.auth.signOut(); Provider.of(context, listen: false) .setSelectedPage(0); }, label: Text( "Logout", style: TextStyle(color: Theme.of(context).colorScheme.onPrimary), ), icon: Icon( Icons.logout, color: Theme.of(context).colorScheme.onPrimary, ), ) ], ), body: FutureBuilder( future: requestSupaBase7Days(), builder: (context, snapshot) { var data = snapshot.data; List cards = []; if (data == null) { return Center(); } for (var map in data) { var ratings = map["ratings"]; for (var key in ratings.keys) { var rating = ratings[key]; if (rating["q1"] != 0) { cards.add(RatingCard( rating1: rating["q1"], rating2: rating["q2"], text: rating["t1"], title: ratingNames[key]!["title"]!, rating1Title: ratingNames[key]!["q1"]!, rating2Title: ratingNames[key]!["q2"]!, )); } } } return SingleChildScrollView( child: Center( child: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ SizedBox( height: 20, ), Text( "Letze 7 Tage:", style: TextStyle(fontSize: 25), ), SizedBox( height: 20, ), for (var card in cards) card ], ), ), ); }, ), ); } }