Refactored the code so that DifficultyDropdown
is not longer needed
This commit is contained in:
@@ -1,3 +1,5 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class DifficultyUtil {
|
class DifficultyUtil {
|
||||||
/// Converts lowerCamelCase or UpperCamelCase enum-names to 'normal' Strings
|
/// Converts lowerCamelCase or UpperCamelCase enum-names to 'normal' Strings
|
||||||
static String getName(Difficulty difficulty) {
|
static String getName(Difficulty difficulty) {
|
||||||
@@ -6,6 +8,16 @@ class DifficultyUtil {
|
|||||||
name = name[0].toUpperCase() + name.substring(1);
|
name = name[0].toUpperCase() + name.substring(1);
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static List<DropdownMenuEntry<Difficulty>> getDropdownList() {
|
||||||
|
return Difficulty.values
|
||||||
|
.map((value) => _toDropdownMenuEntry(value))
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
static DropdownMenuEntry<Difficulty> _toDropdownMenuEntry(
|
||||||
|
Difficulty difficulty) =>
|
||||||
|
DropdownMenuEntry(value: difficulty, label: getName(difficulty));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Only use camelCase or UpperCamelCase for names
|
// Only use camelCase or UpperCamelCase for names
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:rezepte/widgets/ingredients_bottomsheet.dart';
|
import 'package:rezepte/widgets/ingredients_bottomsheet.dart';
|
||||||
import '../widgets/ingredients_widget.dart';
|
|
||||||
|
|
||||||
import '../models/difficulty.dart';
|
import '../models/difficulty.dart';
|
||||||
import '../widgets/difficulty_dropdown.dart';
|
|
||||||
|
|
||||||
class CreateRecipe extends StatefulWidget {
|
class CreateRecipe extends StatefulWidget {
|
||||||
const CreateRecipe({super.key});
|
const CreateRecipe({super.key});
|
||||||
@@ -41,8 +38,9 @@ class _CreateRecipeState extends State<CreateRecipe> {
|
|||||||
label: Text('Description'),
|
label: Text('Description'),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
DifficultyDropdown(
|
DropdownMenu<Difficulty?>(
|
||||||
onChanged: _onChanged,
|
dropdownMenuEntries: DifficultyUtil.getDropdownList(),
|
||||||
|
onSelected: (value) {},
|
||||||
),
|
),
|
||||||
ElevatedButton(
|
ElevatedButton(
|
||||||
onPressed: _openIngredientBottomSheet,
|
onPressed: _openIngredientBottomSheet,
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
|
|
||||||
import '../models/difficulty.dart';
|
|
||||||
|
|
||||||
typedef Intcallback = void Function(int);
|
|
||||||
|
|
||||||
class DifficultyDropdown extends StatelessWidget {
|
|
||||||
const DifficultyDropdown({super.key, this.onChanged});
|
|
||||||
final Intcallback? onChanged;
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
List<DropdownMenuEntry<Difficulty>> dropdownMenuEntryList =
|
|
||||||
Difficulty.values.map((e) => _toDropdownMenuEntry(e, e.name)).toList();
|
|
||||||
|
|
||||||
return DropdownMenu<Difficulty?>(
|
|
||||||
dropdownMenuEntries: dropdownMenuEntryList,
|
|
||||||
onSelected: (value) {
|
|
||||||
if (onChanged != null) {
|
|
||||||
onChanged!(value?.index ?? -1);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
DropdownMenuEntry<Difficulty> _toDropdownMenuEntry(
|
|
||||||
Difficulty difficulty, String text) =>
|
|
||||||
DropdownMenuEntry(value: difficulty, label: text);
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user