diff --git a/kitchenowl/lib/l10n/app_en.arb b/kitchenowl/lib/l10n/app_en.arb index d4191f340..681785001 100644 --- a/kitchenowl/lib/l10n/app_en.arb +++ b/kitchenowl/lib/l10n/app_en.arb @@ -300,6 +300,13 @@ "shoppingList": {} } }, + "@shoppingListContainsEntries": { + "placeholders": { + "entriesCount": { + "type": "num" + } + } + }, "@shoppingListEdit": {}, "@shoppingListStyle": {}, "@shoppingLists": {}, @@ -580,6 +587,7 @@ "shoppingList": "Shopping list", "shoppingListDelete": "Delete shopping list", "shoppingListDeleteConfirmation": "Are you sure you want to delete {shoppingList}?", + "shoppingListContainsEntries": "{entriesCount, plural, =0{The shopping list contains no entrie(s).} =1{The shopping list contains 1 entry.} other{The shopping list contains {entriesCount} entries.}}", "shoppingListEdit": "Edit shopping list", "shoppingListStyle": "Shopping list style", "shoppingLists": "Shopping lists", diff --git a/kitchenowl/lib/pages/settings_household/household_settings_shoppinglist_page.dart b/kitchenowl/lib/pages/settings_household/household_settings_shoppinglist_page.dart index f491b7cc3..c320c4950 100644 --- a/kitchenowl/lib/pages/settings_household/household_settings_shoppinglist_page.dart +++ b/kitchenowl/lib/pages/settings_household/household_settings_shoppinglist_page.dart @@ -14,6 +14,30 @@ enum _ShoppinglistAction { class HouseholdSettingsShoppinglistPage extends StatelessWidget { const HouseholdSettingsShoppinglistPage({super.key}); + static Future confirmDeleteShoppingList( + BuildContext context, ShoppingList shoppinglist) async { + return await askForConfirmation( + context: context, + title: Text( + AppLocalizations.of(context)!.shoppingListDelete, + ), + content: SingleChildScrollView( + child: ListBody( + children: [ + Text( + AppLocalizations.of(context)!.shoppingListDeleteConfirmation( + shoppinglist.name, + ), + ), + if (shoppinglist.items.length > 0) const SizedBox(height: 20), + if (shoppinglist.items.length > 0) + Text(AppLocalizations.of(context)! + .shoppingListContainsEntries(shoppinglist.items.length)) + ], + ), + )); + } + @override Widget build(BuildContext context) { return Scaffold( @@ -66,20 +90,9 @@ class HouseholdSettingsShoppinglistPage extends StatelessWidget { state.shoppingLists.elementAt(i).name, ), isDismissable: i != 0, - confirmDismiss: (direction) async { - return (await askForConfirmation( - context: context, - title: Text( - AppLocalizations.of(context)!.shoppingListDelete, - ), - content: Text( - AppLocalizations.of(context)! - .shoppingListDeleteConfirmation( - state.shoppingLists.elementAt(i).name, - ), - ), - )); - }, + confirmDismiss: (direction) async => + await confirmDeleteShoppingList( + context, state.shoppingLists.elementAt(i)), onDismissed: (direction) { BlocProvider.of(context) .deleteShoppingList( @@ -201,17 +214,8 @@ class HouseholdSettingsShoppinglistPage extends StatelessWidget { } break; case _ShoppinglistAction.delete: - if (await askForConfirmation( - context: context, - title: Text( - AppLocalizations.of(context)!.shoppingListDelete, - ), - content: Text( - AppLocalizations.of(context)!.shoppingListDeleteConfirmation( - shoppingLists.elementAt(shoppingListIndex).name, - ), - ), - )) { + if (await confirmDeleteShoppingList( + context, shoppingLists.elementAt(shoppingListIndex))) { BlocProvider.of(context).deleteShoppingList( shoppingLists.elementAt(shoppingListIndex), );