diff --git a/lib/main.dart b/lib/main.dart index ff9a9b0..a03fcc1 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -171,7 +171,7 @@ class RouteGenerator { return MaterialPageRoute(builder: (context) => RecipesPage()); } case "/recipes/add": { - return MaterialPageRoute(builder: (context) => AddRecipePage()); + return MaterialPageRoute(builder: (context) => AddRecipePage(pizzaRecipe: settings.arguments as PizzaRecipe?)); } case "/recipes/add/edit_step": { final recipeStep = settings.arguments as RecipeStep?; diff --git a/lib/pages/add_recipe_page.dart b/lib/pages/add_recipe_page.dart index 85aa8c0..5c104e0 100644 --- a/lib/pages/add_recipe_page.dart +++ b/lib/pages/add_recipe_page.dart @@ -9,9 +9,11 @@ import 'package:pizzaplanner/pages/scaffold.dart'; import 'package:url_launcher/url_launcher.dart'; class AddRecipePage extends StatefulWidget { - final PizzaRecipe? pizzaRecipe; + late final PizzaRecipe? _pizzaRecipe; - const AddRecipePage({this.pizzaRecipe}); + AddRecipePage({PizzaRecipe? pizzaRecipe}){ + _pizzaRecipe = pizzaRecipe; + } @override AddRecipePageState createState() => AddRecipePageState(); @@ -26,7 +28,7 @@ class AddRecipePageState extends State { @override void initState() { super.initState(); - if (widget.pizzaRecipe == null){ + if (widget._pizzaRecipe == null){ pizzaRecipe = PizzaRecipe( "", "", @@ -38,7 +40,7 @@ class AddRecipePageState extends State { ], ); } else { - pizzaRecipe = widget.pizzaRecipe!; + pizzaRecipe = widget._pizzaRecipe!; } } @@ -56,7 +58,7 @@ class AddRecipePageState extends State { hintText: "Recipe Name", errorText: nameValidation ? """Name can't be empty""" : null ), - initialValue: widget.pizzaRecipe?.name, + initialValue: widget._pizzaRecipe?.name, onChanged: (String newName) { setState(() { pizzaRecipe.name = newName; @@ -69,7 +71,7 @@ class AddRecipePageState extends State { hintText: "Recipe Description", errorText: descriptionValidation ? """Description can't be empty""" : null ), - initialValue: widget.pizzaRecipe?.description, + initialValue: widget._pizzaRecipe?.description, maxLines: 8, onChanged: (String newDescription) { setState(() { diff --git a/lib/pages/recipes_page.dart b/lib/pages/recipes_page.dart index 80fb1c3..7ed8fa4 100644 --- a/lib/pages/recipes_page.dart +++ b/lib/pages/recipes_page.dart @@ -27,6 +27,8 @@ class RecipesPage extends StatelessWidget { ) ), const Divider(), + const Center(child: Text("Long press to edit")), + const Divider(), Expanded( flex: 50, child: ValueListenableBuilder( @@ -43,6 +45,9 @@ class RecipesPage extends StatelessWidget { onTap: () { Navigator.pushNamed(context, "/recipe/view", arguments: pizzaRecipe); }, + onLongPress: () { + Navigator.pushNamed(context, "/recipes/add", arguments: pizzaRecipe); + }, child: PizzaRecipeWidget(pizzaRecipe), ); }, diff --git a/todo.md b/todo.md index dddc40a..53c7395 100644 --- a/todo.md +++ b/todo.md @@ -1,7 +1,7 @@ # TODO ## Feature -- longpress recipe to edit it on recipes page? +- add way to remove recipes - add search to recipes page - add directory structure to recipes? - share to/export of yaml of recipes