added logic to recipe provider

This commit is contained in:
SomnusVeritas
2023-10-17 22:27:28 +02:00
parent 7a8e6a3c65
commit f05d582ff8

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:rezepte/models/difficulty.dart'; import 'package:rezepte/models/difficulty.dart';
import 'package:rezepte/models/ingredient.dart'; import 'package:rezepte/models/ingredient.dart';
import 'package:rezepte/models/steps.dart'; import 'package:rezepte/models/cooking_step.dart';
import '../../models/recipe.dart'; import '../../models/recipe.dart';
@@ -9,30 +9,75 @@ class RecipeProvider extends ChangeNotifier implements Recipe {
String _title = ''; String _title = '';
String _description = ''; String _description = '';
Difficulty? _difficulty; Difficulty? _difficulty;
List<Ingredient> _ingredients = []; final List<Ingredient> _ingredients = [];
Steps _steps = Steps(); final List<CookingStep> _steps = [];
void clearRecipe() { void clearRecipe() {
_title = ''; _title = '';
_description = ''; _description = '';
_difficulty = null; _difficulty = null;
_ingredients = []; _ingredients.clear();
_steps = Steps(); _steps.clear();
notifyListeners(); notifyListeners();
} }
@override @override
String get description => _description; String get description => _description;
set description(String description) {
_description = description;
notifyListeners();
}
@override @override
String get title => _title; String get title => _title;
set title(String title) {
_title = title;
notifyListeners();
}
@override @override
Difficulty? get difficulty => _difficulty; Difficulty? get difficulty => _difficulty;
set difficulty(Difficulty? difficulty) {
_difficulty = difficulty;
notifyListeners();
}
@override @override
List<Ingredient> get ingredients => _ingredients; List<Ingredient> 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 @override
Steps get steps => _steps; List<CookingStep> 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();
}
} }