setFavoriteParameter function

Future<bool> setFavoriteParameter(
  1. BuildContext context,
  2. int parameterId, {
  3. required bool isFavorite,
})

Implementation

Future<bool> setFavoriteParameter(
  BuildContext context,
  int parameterId, {
  required bool isFavorite,
}) async {
  final favorites = context.read(favoriteParametersProvider);

  var newFavorites = List.of(favorites);
  if (isFavorite) {
    if (!favorites.contains(parameterId)) newFavorites.add(parameterId);
  } else {
    newFavorites = favorites.where((f) => f != parameterId).toList();
  }

  if (favorites.equals(newFavorites)) return true;

  final notifier = context.read(favoriteParametersProvider.notifier);
  return await notifier.setValue(newFavorites);
}