You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
597 B
Dart
21 lines
597 B
Dart
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
import 'package:meals/models/Meal.dart';
|
|
|
|
class FavoriteMealsNotifier extends StateNotifier<List<Meal>> {
|
|
FavoriteMealsNotifier(List<Meal>? initialList) : super(initialList ?? []);
|
|
|
|
bool toggleMealFavoriteStatus(Meal meal) {
|
|
if (state.contains(meal)) {
|
|
state = state.where((Meal m) => m.id != meal.id).toList();
|
|
return false;
|
|
}
|
|
|
|
state = [...state, meal];
|
|
return true;
|
|
}
|
|
}
|
|
|
|
final favoriteMealsProvider =
|
|
StateNotifierProvider<FavoriteMealsNotifier, List<Meal>>(
|
|
(ref) => FavoriteMealsNotifier([]));
|