Files
MrbWebLibre/app/lib/features/web_view/domain/providers.dart
T
2024-06-19 21:10:41 +02:00

27 lines
934 B
Dart

import 'package:bang_navigator/features/content_block/domain/repositories/host.dart';
import 'package:bang_navigator/features/settings/data/repositories/settings_repository.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'providers.g.dart';
@Riverpod(keepAlive: true)
Stream<Set<String>?> blockContentHosts(BlockContentHostsRef ref) {
final hostRepository = ref.watch(hostRepositoryProvider.notifier);
final enableContentBlocking = ref.watch(
settingsRepositoryProvider
.select((value) => value.valueOrNull?.enableContentBlocking ?? false),
);
final enableHostList = ref.watch(
settingsRepositoryProvider
.select((value) => value.valueOrNull?.enableHostList ?? {}),
);
if (!enableContentBlocking || enableHostList.isEmpty) {
return Stream.value(null);
}
return hostRepository
.watchHosts(sources: enableHostList)
.map((hosts) => hosts.toSet());
}