From 3e094bf8f0ecb75c90bfbefa29101d27a5343222 Mon Sep 17 00:00:00 2001 From: SomnusVeritas Date: Tue, 17 Oct 2023 22:43:38 +0200 Subject: [PATCH] implemented provider in screens --- lib/pages/create_recipe_page.dart | 19 +++++++------------ lib/widgets/ingredients_bottomsheet.dart | 17 ++++++++++++++--- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/lib/pages/create_recipe_page.dart b/lib/pages/create_recipe_page.dart index 858ada1..7373ef0 100644 --- a/lib/pages/create_recipe_page.dart +++ b/lib/pages/create_recipe_page.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; import 'package:rezepte/widgets/ingredients_bottomsheet.dart'; import '../models/difficulty.dart'; +import '../services/providers/recipe_provider.dart'; class CreateRecipe extends StatefulWidget { const CreateRecipe({super.key}); @@ -11,14 +13,11 @@ class CreateRecipe extends StatefulWidget { } class _CreateRecipeState extends State { - Difficulty? _recipeDifficulty; - - TextEditingController titleText = TextEditingController(); - TextEditingController descriptionText = TextEditingController(); + late RecipeProvider recipeProvider; @override Widget build(BuildContext context) { - final width = MediaQuery.of(context).size.width; + recipeProvider = Provider.of(context); return Scaffold( appBar: AppBar( title: const Text('Create Recipe'), @@ -27,20 +26,20 @@ class _CreateRecipeState extends State { child: Column( children: [ TextFormField( - controller: titleText, + onChanged: (value) => recipeProvider.title = value, decoration: const InputDecoration( label: Text('Title'), ), ), TextFormField( - controller: descriptionText, + onChanged: (value) => recipeProvider.description = value, decoration: const InputDecoration( label: Text('Description'), ), ), DropdownMenu( dropdownMenuEntries: DifficultyUtil.getDropdownList(), - onSelected: (value) {}, + onSelected: (value) => recipeProvider.difficulty = value, ), ElevatedButton( onPressed: _openIngredientBottomSheet, @@ -52,10 +51,6 @@ class _CreateRecipeState extends State { ); } - void _onChanged(int index) { - _recipeDifficulty = Difficulty.values.elementAt(index); - } - void _openIngredientBottomSheet() { showModalBottomSheet( context: context, diff --git a/lib/widgets/ingredients_bottomsheet.dart b/lib/widgets/ingredients_bottomsheet.dart index 47e8746..171c48a 100644 --- a/lib/widgets/ingredients_bottomsheet.dart +++ b/lib/widgets/ingredients_bottomsheet.dart @@ -1,8 +1,10 @@ import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; import '../constants.dart' as constants; import '../models/ingredient.dart'; import '../models/unit.dart'; import '../example_data.dart' as ea; +import '../services/providers/recipe_provider.dart'; class IngredientsBottomsheet extends StatefulWidget { const IngredientsBottomsheet({super.key}); @@ -15,6 +17,7 @@ class _IngredientsBottomsheetState extends State { final List> ingredientEntries = []; final List> unitEntries = []; Unit? selectedUnit; + late RecipeProvider recipeProvider; bool _isOptional = false; TextEditingController _ingredientController = TextEditingController(); @@ -136,6 +139,7 @@ class _IngredientsBottomsheetState extends State { @override Widget build(BuildContext context) { + recipeProvider = Provider.of(context); return BottomSheet( onClosing: onClosing, builder: _bottomSheetContent, @@ -143,6 +147,7 @@ class _IngredientsBottomsheetState extends State { } void _nextTapped() { + _submit(); setState(() { _ingredientController.value = TextEditingValue.empty; _unitController.value = TextEditingValue.empty; @@ -151,7 +156,13 @@ class _IngredientsBottomsheetState extends State { }); } - void _finishTapped() {} - - void _cancelTapped() {} + void _finishTapped() { + // TODO implement} + } + void _cancelTapped() { + // TODO implement} + } + void _submit() { + // TODO implement + } }