do 'add meal' via 'more' menu, and make it look nicer

This commit is contained in:
Dieter Plaetinck
2024-06-01 22:25:31 +02:00
parent b88360aef3
commit ac466f0b75
2 changed files with 26 additions and 23 deletions

View File

@@ -30,7 +30,7 @@ import 'package:wger/widgets/nutrition/nutritional_plan_detail.dart';
enum NutritionalPlanOptions {
edit,
delete,
toggleMode,
addMeal,
}
class NutritionalPlanScreen extends StatelessWidget {
@@ -96,7 +96,6 @@ class NutritionalPlanScreen extends StatelessWidget {
PopupMenuButton<NutritionalPlanOptions>(
icon: const Icon(Icons.more_vert, color: appBarForeground),
onSelected: (value) {
// Edit
if (value == NutritionalPlanOptions.edit) {
Navigator.pushNamed(
context,
@@ -107,25 +106,46 @@ class NutritionalPlanScreen extends StatelessWidget {
hasListView: true,
),
);
// Delete
} else if (value == NutritionalPlanOptions.delete) {
Provider.of<NutritionPlansProvider>(context, listen: false)
.deletePlan(nutritionalPlan.id!);
Navigator.of(context).pop();
} else if (value == NutritionalPlanOptions.addMeal) {
Navigator.pushNamed(
context,
FormScreen.routeName,
arguments: FormScreenArguments(
AppLocalizations.of(context).addMeal,
MealForm(nutritionalPlan.id!),
),
);
}
},
itemBuilder: (BuildContext context) {
return [
PopupMenuItem<NutritionalPlanOptions>(
value: NutritionalPlanOptions.edit,
child: Text(AppLocalizations.of(context).edit),
child: ListTile(
leading: const Icon(Icons.edit),
title: Text(AppLocalizations.of(context).edit)),
),
const PopupMenuDivider(),
PopupMenuItem<NutritionalPlanOptions>(
value: NutritionalPlanOptions.delete,
child: Text(AppLocalizations.of(context).delete),
child: ListTile(
leading: const Icon(Icons.delete),
title: Text(AppLocalizations.of(context).delete)),
),
if (!nutritionalPlan.onlyLogging) const PopupMenuDivider(),
if (!nutritionalPlan.onlyLogging)
PopupMenuItem<NutritionalPlanOptions>(
value: NutritionalPlanOptions.delete,
child: ListTile(
leading: const SvgIcon(
icon: SvgIconData('assets/icons/meal-add.svg'),
),
title: Text(AppLocalizations.of(context).addMeal)),
),
];
},
),

View File

@@ -64,23 +64,6 @@ class NutritionalPlanDetailWidget extends StatelessWidget {
_nutritionalPlan.dedupMealItems,
false,
),
if (!_nutritionalPlan.onlyLogging)
Padding(
padding: const EdgeInsets.all(8.0),
child: ElevatedButton(
child: Text(AppLocalizations.of(context).addMeal),
onPressed: () {
Navigator.pushNamed(
context,
FormScreen.routeName,
arguments: FormScreenArguments(
AppLocalizations.of(context).addMeal,
MealForm(_nutritionalPlan.id!),
),
);
},
),
),
if (nutritionalGoals.isComplete())
Container(
padding: const EdgeInsets.all(15),