added long press on pizza recipes page to edit existing recipes

This commit is contained in:
broodjeaap89 2021-09-05 17:48:21 +02:00
parent de9e5f8ba6
commit 2048c88d0c
4 changed files with 15 additions and 8 deletions

View file

@ -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?;

View file

@ -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<AddRecipePage> {
@override
void initState() {
super.initState();
if (widget.pizzaRecipe == null){
if (widget._pizzaRecipe == null){
pizzaRecipe = PizzaRecipe(
"",
"",
@ -38,7 +40,7 @@ class AddRecipePageState extends State<AddRecipePage> {
],
);
} else {
pizzaRecipe = widget.pizzaRecipe!;
pizzaRecipe = widget._pizzaRecipe!;
}
}
@ -56,7 +58,7 @@ class AddRecipePageState extends State<AddRecipePage> {
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<AddRecipePage> {
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(() {

View file

@ -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),
);
},

View file

@ -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