diff --git a/lib/core/presentation/widgets/copy_dialog.dart b/lib/core/presentation/widgets/copy_dialog.dart index 104536a9c..de951bd75 100644 --- a/lib/core/presentation/widgets/copy_dialog.dart +++ b/lib/core/presentation/widgets/copy_dialog.dart @@ -3,7 +3,9 @@ import 'package:opennutritracker/features/add_meal/presentation/add_meal_type.da import 'package:opennutritracker/generated/l10n.dart'; class CopyDialog extends StatefulWidget { - const CopyDialog({super.key}); + final AddMealType initialValue; + + const CopyDialog({super.key, required this.initialValue}); @override State createState() { return CopyDialogState(); @@ -11,12 +13,14 @@ class CopyDialog extends StatefulWidget { } class CopyDialogState extends State { - AddMealType _selectedValue = AddMealType.breakfastType; + late AddMealType _selectedValue; + AddMealType get selectedMealType => _selectedValue; @override void initState() { super.initState(); + _selectedValue = widget.initialValue; } @override diff --git a/lib/features/diary/presentation/widgets/day_info_widget.dart b/lib/features/diary/presentation/widgets/day_info_widget.dart index ed1b7ec21..bed3f3384 100644 --- a/lib/features/diary/presentation/widgets/day_info_widget.dart +++ b/lib/features/diary/presentation/widgets/day_info_widget.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:opennutritracker/core/domain/entity/intake_entity.dart'; +import 'package:opennutritracker/core/domain/entity/intake_type_entity.dart'; import 'package:opennutritracker/core/domain/entity/tracked_day_entity.dart'; import 'package:opennutritracker/core/domain/entity/user_activity_entity.dart'; import 'package:opennutritracker/core/presentation/widgets/activity_vertial_list.dart'; @@ -246,7 +247,16 @@ class DayInfoWidget extends StatelessWidget { } void showCopyDialog(BuildContext context, IntakeEntity intakeEntity) async { - const copyDialog = CopyDialog(); + final defaultMealType = switch (intakeEntity.type) { + IntakeTypeEntity.breakfast => AddMealType.breakfastType, + IntakeTypeEntity.lunch => AddMealType.lunchType, + IntakeTypeEntity.dinner => AddMealType.dinnerType, + IntakeTypeEntity.snack => AddMealType.snackType, + }; + + final copyDialog = CopyDialog( + initialValue: defaultMealType, + ); final selectedMealType = await showDialog( context: context, builder: (context) => copyDialog, diff --git a/lib/features/home/presentation/widgets/intake_vertical_list.dart b/lib/features/home/presentation/widgets/intake_vertical_list.dart index a3ea511a4..4e32b4377 100644 --- a/lib/features/home/presentation/widgets/intake_vertical_list.dart +++ b/lib/features/home/presentation/widgets/intake_vertical_list.dart @@ -110,7 +110,8 @@ class _IntakeVerticalListState extends State { ) async { switch (selection) { case VerticalListPopupMenuSelections.onCopy: - const copyDialog = CopyDialog(); + final copyDialog = + CopyDialog(initialValue: widget.addMealType); final selectedMealType = await showDialog( context: context, builder: (context) => copyDialog,