refactoring

This commit is contained in:
SomnusVeritas
2023-11-13 18:51:25 +01:00
parent 64e983bc59
commit 8835c83081
6 changed files with 42 additions and 13 deletions

View File

@@ -22,11 +22,23 @@ final List<Unit> _fluid =
constants.units.where((element) => element.type == UnitType.fluid).toList(); constants.units.where((element) => element.type == UnitType.fluid).toList();
final List<Ingredient> exampleIngredients = [ final List<Ingredient> exampleIngredients = [
Ingredient(title: 'Karotte', possibleUnits: _weightAndCount), Ingredient(
Ingredient(title: 'Kartoffel', possibleUnits: _weightAndCount), title: 'Karotte',
Ingredient(title: 'Kaffeebohnen', possibleUnits: _weight), possibleUnits: _weightAndCount,
Ingredient(title: 'Milch', possibleUnits: _fluid), type: IngredientType.vegetable),
Ingredient(title: 'Limettenblätter', possibleUnits: _count), Ingredient(
title: 'Kartoffel',
possibleUnits: _weightAndCount,
type: IngredientType.vegetable),
Ingredient(
title: 'Kaffeebohnen',
possibleUnits: _weight,
type: IngredientType.other),
Ingredient(title: 'Milch', possibleUnits: _fluid, type: IngredientType.dairy),
Ingredient(
title: 'Limettenblätter',
possibleUnits: _count,
type: IngredientType.other),
]; ];
final List<Recipe> exampleRecipes = [ final List<Recipe> exampleRecipes = [

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:rezepte/pages/create_recipe_page.dart'; import 'package:rezepte/pages/create_recipe/create_recipe_page.dart';
import 'package:rezepte/pages/dashboard_page.dart'; import 'package:rezepte/pages/dashboard_page.dart';
import 'package:rezepte/services/providers/recipe_list_provider.dart'; import 'package:rezepte/services/providers/recipe_list_provider.dart';
import 'package:rezepte/services/providers/recipe_provider.dart'; import 'package:rezepte/services/providers/recipe_provider.dart';

View File

@@ -9,21 +9,25 @@ class Ingredient {
final String title; final String title;
List<Unit> possibleUnits; List<Unit> possibleUnits;
List<String> preferredBrands; List<String> preferredBrands;
IngredientType type;
Ingredient({ Ingredient({
required this.title, required this.title,
required this.type,
this.possibleUnits = const [], this.possibleUnits = const [],
this.preferredBrands = const [], this.preferredBrands = const [],
}); });
factory Ingredient.fromJson(Map<String, dynamic> json) => Ingredient( factory Ingredient.fromJson(Map<String, dynamic> json) => Ingredient(
title: json['title'] as String, title: json['title'] as String,
type: json['ingredient_type'] as IngredientType,
possibleUnits: _unitsFromJson(json['possibleUnits']), possibleUnits: _unitsFromJson(json['possibleUnits']),
preferredBrands: json['preferredBrands'] as List<String>, preferredBrands: json['preferredBrands'] as List<String>,
); );
Map<String, dynamic> toJson() => { Map<String, dynamic> toJson() => {
'title': title, 'title': title,
'ingredient_type': type,
'possibleUnits': possibleUnits.map((e) => e.toJson()).toList(), 'possibleUnits': possibleUnits.map((e) => e.toJson()).toList(),
'preferredBrands': preferredBrands, 'preferredBrands': preferredBrands,
}; };
@@ -42,3 +46,15 @@ class Ingredient {
static List<Unit> _unitsFromJson(List<Map<String, dynamic>> jsonList) => static List<Unit> _unitsFromJson(List<Map<String, dynamic>> jsonList) =>
jsonList.map((e) => Unit.fromJson(e)).toList(); jsonList.map((e) => Unit.fromJson(e)).toList();
} }
enum IngredientType {
vegetable,
meat,
fish,
grain,
fruit,
dairy,
fatsAndOil,
spice,
other,
}

View File

@@ -3,11 +3,11 @@ import 'package:provider/provider.dart';
import 'package:rezepte/services/providers/db/dbhelper.dart'; import 'package:rezepte/services/providers/db/dbhelper.dart';
import 'package:rezepte/widgets/ingredients_bottomsheet.dart'; import 'package:rezepte/widgets/ingredients_bottomsheet.dart';
import 'package:rezepte/widgets/will_pop_scope.dart'; import 'package:rezepte/widgets/will_pop_scope.dart';
import '../models/difficulty.dart'; import '../../models/difficulty.dart';
import '../models/ingredient_list_entry.dart'; import '../../models/ingredient_list_entry.dart';
import '../models/recipe.dart'; import '../../models/recipe.dart';
import '../services/providers/recipe_list_provider.dart'; import '../../services/providers/recipe_list_provider.dart';
import '../services/providers/recipe_provider.dart'; import '../../services/providers/recipe_provider.dart';
class CreateRecipe extends StatefulWidget { class CreateRecipe extends StatefulWidget {
const CreateRecipe({super.key}); const CreateRecipe({super.key});

View File

@@ -1,5 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:rezepte/pages/create_recipe_page.dart'; import 'package:rezepte/pages/create_recipe/create_recipe_page.dart';
import 'package:rezepte/widgets/recipe_list.dart'; import 'package:rezepte/widgets/recipe_list.dart';
class Dashboard extends StatelessWidget { class Dashboard extends StatelessWidget {

View File

@@ -169,7 +169,8 @@ class _IngredientsBottomsheetState extends State<IngredientsBottomsheet> {
} }
bool _submit() { bool _submit() {
final ingredient = Ingredient(title: _ingredientController.text); final ingredient = Ingredient(
title: _ingredientController.text, type: IngredientType.other);
final unit = selectedUnit; final unit = selectedUnit;
final amount = int.tryParse(_amountController.text); final amount = int.tryParse(_amountController.text);
if (ingredient.title.isEmpty || unit == null || amount == null) { if (ingredient.title.isEmpty || unit == null || amount == null) {