From f05d582ff8e440bdaa12707d8b7d01bc06264d15 Mon Sep 17 00:00:00 2001 From: SomnusVeritas Date: Tue, 17 Oct 2023 22:27:28 +0200 Subject: [PATCH] added logic to recipe provider --- lib/services/providers/recipe_provider.dart | 57 ++++++++++++++++++--- 1 file changed, 51 insertions(+), 6 deletions(-) diff --git a/lib/services/providers/recipe_provider.dart b/lib/services/providers/recipe_provider.dart index 9db2ae5..264c21c 100644 --- a/lib/services/providers/recipe_provider.dart +++ b/lib/services/providers/recipe_provider.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:rezepte/models/difficulty.dart'; import 'package:rezepte/models/ingredient.dart'; -import 'package:rezepte/models/steps.dart'; +import 'package:rezepte/models/cooking_step.dart'; import '../../models/recipe.dart'; @@ -9,30 +9,75 @@ class RecipeProvider extends ChangeNotifier implements Recipe { String _title = ''; String _description = ''; Difficulty? _difficulty; - List _ingredients = []; - Steps _steps = Steps(); + final List _ingredients = []; + final List _steps = []; void clearRecipe() { _title = ''; _description = ''; _difficulty = null; - _ingredients = []; - _steps = Steps(); + _ingredients.clear(); + _steps.clear(); notifyListeners(); } @override String get description => _description; + set description(String description) { + _description = description; + notifyListeners(); + } + @override String get title => _title; + set title(String title) { + _title = title; + notifyListeners(); + } + @override Difficulty? get difficulty => _difficulty; + set difficulty(Difficulty? difficulty) { + _difficulty = difficulty; + notifyListeners(); + } + @override List get ingredients => _ingredients; + void addIngredient(Ingredient ingredient) { + _ingredients.add(ingredient); + notifyListeners(); + } + + void clearIngredients({silent = false}) { + ingredients.clear(); + if (!silent) notifyListeners(); + } + + void removeIngredientAt(int index, {silent = false}) { + ingredients.removeAt(index); + if (!silent) notifyListeners(); + } + + void removeIngredient(Ingredient ingredient, {silent = false}) { + ingredients.removeWhere((element) => element == ingredient); + if (!silent) notifyListeners(); + } + @override - Steps get steps => _steps; + List get steps => _steps; + + void addStep(CookingStep step, {silent = false}) { + steps.add(step); + if (!silent) notifyListeners(); + } + + void removeStepAt(int index, {silent = false}) { + steps.removeAt(index); + if (!silent) notifyListeners(); + } }