import 'package:calorimeter/food_entry/enter_food_widget.dart'; import 'package:calorimeter/food_entry/food_entry_bloc.dart'; import 'package:calorimeter/food_entry/food_entry_widget.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; class FoodEntryList extends StatelessWidget { final List entries; const FoodEntryList({ required this.entries, super.key, }); @override Widget build(BuildContext context) { return ListView.builder( itemCount: entries.length + 1, itemBuilder: (BuildContext itemBuilderContext, int listIndex) { //last item in list is the widget to enter food if (listIndex == entries.length) { return Column( children: [ EnterFoodWidget( onAdd: (context, entry) { context .read() .add(FoodEntryEvent(entry: entry)); }, ), const SizedBox(height: 75), ], ); } var entryIndex = listIndex; return Column( children: [ FoodEntryWidget( key: ValueKey(entries[entryIndex].id), entry: entries[entryIndex], onDelete: (_, id) { context.read().add(FoodDeletionEvent( entryID: id, )); }, onChange: (_, changedEntry) { context .read() .add(FoodChangedEvent(newEntry: changedEntry)); }, ), const Divider(), ], ); }, ); } }