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.
meals/lib/providers/favorites_provider.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([]));