import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:mensaappbackend/modules/ratingCard.dart'; import 'package:mensaappbackend/providers/timeProvider.dart'; import 'package:provider/provider.dart'; import 'package:intl/intl_browser.dart'; class BuilderToday { static Widget build(var context, var snapshot, var ratingNames) { var data = snapshot.data; List cards = []; if (data == null) { return const Center(); } var i = 0; for (var map in data) { var ratings = map["ratings"]; var createdAt = map["created_at"]; // Datum in ein lesbares Format umwandeln var formattedDate = DateFormat('dd.MM.yyyy').format(DateTime.parse(createdAt)); List children = []; for (var key in ratings.keys) { var rating = ratings[key]; if (rating["q1"] != 0) { Widget card = RatingCard( rating1: rating["q1"], rating2: rating["q2"], text: rating["t1"], title: "$formattedDate\n${ratingNames[key]!["title"]! + (key == "page1" ? "${rating["food"]}" : "")}", rating1Title: ratingNames[key]!["q1"]!, rating2Title: ratingNames[key]!["q2"]!, ); children.add(card); children.add(const SizedBox( width: 10, )); } } cards.add(Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.stretch, children: [ Container( padding: const EdgeInsets.all(15), decoration: BoxDecoration( boxShadow: [ BoxShadow( color: Colors.grey.withOpacity(0.8), spreadRadius: 0, blurRadius: 0, offset: const Offset(0, 0)) ], borderRadius: BorderRadius.circular(15), color: Theme.of(context).colorScheme.surface.withOpacity(0.8)), child: Column( children: [ Text( "Bewertung $i", style: const TextStyle(fontSize: 20), ), const SizedBox( height: 10, ), Wrap( runAlignment: WrapAlignment.center, crossAxisAlignment: WrapCrossAlignment.center, runSpacing: 10, children: children, ) ], ), ), const SizedBox( height: 15, ), ], )); i++; } return Center( child: IntrinsicWidth( stepWidth: 2, child: SingleChildScrollView( child: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ const SizedBox( height: 20, ), Consumer( builder: (context, timeProvider, child) { // Dynamischer Text basierend auf TimeProvider String text = timeProvider.timeList[timeProvider.selectedTime]!; return Text( text + " - Alle", style: const TextStyle(fontSize: 25), ); }, ), const SizedBox( height: 20, ), for (var card in cards) card, ], ), ), ), ); } }