import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:calorimeter/food_entry/food_entry_bloc.dart'; import 'package:calorimeter/utils/settings_bloc.dart'; class SumWidget extends StatelessWidget { final List foodEntries; const SumWidget({required this.foodEntries, super.key}); @override Widget build(BuildContext context) { return BlocBuilder( builder: (context, state) { var sum = 0.0; for (var entry in foodEntries) { sum += entry.kcalPer100 / 100 * entry.mass; } var diff = state.kcalLimit - sum; var diffLimit = state.kcalLimit ~/ 4; var textColor = Theme.of(context).colorScheme.onSecondary; var newTextColor = textColor; var brightness = Theme.of(context).brightness; switch (brightness) { case Brightness.dark: if (diff < 0) { newTextColor = Colors.red[900]!; } else if (diff < diffLimit) { newTextColor = Colors.orange[900]!; } break; case Brightness.light: if (diff < 0) { newTextColor = Colors.redAccent; } else if (diff < diffLimit) { newTextColor = Colors.orangeAccent; } break; } return Align( alignment: Alignment.centerLeft, child: Text( 'kcal heute: ${sum.ceil().toString()}/${state.kcalLimit.ceil()}', style: Theme.of(context) .textTheme .bodyLarge! .copyWith(color: newTextColor), ), ); }, ); } }