Abschnitt 10
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import 'package:flutter_meals/models/meal.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
import 'package:flutter_meals/models/meal.dart';
|
||||
|
||||
class FavoriteMealsNotifier extends StateNotifier<List<Meal>> {
|
||||
FavoriteMealsNotifier() : super([]);
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:flutter_meals/providers/meals_provider.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
import 'package:flutter_meals/providers/meals_provider.dart';
|
||||
|
||||
enum Filter {
|
||||
glutenFree,
|
||||
lactoseFree,
|
||||
@@ -11,17 +12,18 @@ enum Filter {
|
||||
class FiltersNotifier extends StateNotifier<Map<Filter, bool>> {
|
||||
FiltersNotifier()
|
||||
: super({
|
||||
Filter.glutenFree: false,
|
||||
Filter.lactoseFree: false,
|
||||
Filter.vegetarian: false,
|
||||
Filter.vegan: false
|
||||
});
|
||||
Filter.glutenFree: false,
|
||||
Filter.lactoseFree: false,
|
||||
Filter.vegetarian: false,
|
||||
Filter.vegan: false
|
||||
});
|
||||
|
||||
void setFilters(Map<Filter, bool> chosenFilters) {
|
||||
state = chosenFilters;
|
||||
}
|
||||
|
||||
void setFilter(Filter filter, bool isActive) {
|
||||
// state[filter] = isActive; // not allowed! => mutating state
|
||||
state = {
|
||||
...state,
|
||||
filter: isActive,
|
||||
@@ -30,8 +32,8 @@ class FiltersNotifier extends StateNotifier<Map<Filter, bool>> {
|
||||
}
|
||||
|
||||
final filtersProvider =
|
||||
StateNotifierProvider<FiltersNotifier, Map<Filter, bool>>(
|
||||
(ref) => FiltersNotifier(),
|
||||
StateNotifierProvider<FiltersNotifier, Map<Filter, bool>>(
|
||||
(ref) => FiltersNotifier(),
|
||||
);
|
||||
|
||||
final filteredMealsProvider = Provider((ref) {
|
||||
@@ -53,4 +55,4 @@ final filteredMealsProvider = Provider((ref) {
|
||||
}
|
||||
return true;
|
||||
}).toList();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:flutter_meals/data/dummy_data.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
import 'package:flutter_meals/data/dummy_data.dart';
|
||||
|
||||
final mealsProvider = Provider((ref) {
|
||||
return dummyMeals;
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user