import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:go_router/go_router.dart'; import 'package:kalodings/app_drawer.dart'; import 'package:kalodings/enter_food_widget.dart'; import 'package:kalodings/food_entry_bloc.dart'; import 'package:kalodings/food_entry_widget.dart'; import 'package:kalodings/sum_widget.dart'; class PerDateWidget extends StatelessWidget { final DateTime date; const PerDateWidget(this.date, {super.key}); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(date.toString()), ), drawer: const AppDrawer(), body: BlocBuilder( builder: (context, state) { return ListView.builder( itemCount: state.foodEntries.length + 2, itemBuilder: (BuildContext itemBuilderContext, int index) { if (index == state.foodEntries.length) { return const SumWidget(); } if (index == state.foodEntries.length + 1) { return EnterFoodWidget( onAdd: (context, entry) { context .read() .add(FoodEntryEvent(entry: entry, date: date)); }, ); } return FoodEntryWidget( entry: state.foodEntries[index], onDelete: (callbackContext) { callbackContext.read().add( FoodDeletionEvent( entryID: state.foodEntries[index].id, date: date), ); }, ); }, ); }, ), floatingActionButton: FloatingActionButton( onPressed: () async { var router = GoRouter.of(context); var datePicked = await showDatePicker( locale: const Locale('de'), context: context, initialDate: date, currentDate: DateTime.now(), firstDate: DateTime.now().subtract(const Duration(days: 365 * 10)), lastDate: DateTime.now(), ); router.goNamed('perDay', extra: datePicked); }, child: const Icon(Icons.today)), ); } }