Files
MrbWebLibre/app/lib/features/web_view/domain/providers.dart
T

31 lines
1.0 KiB
Dart

import 'package:bang_navigator/features/content_block/domain/repositories/host.dart';
import 'package:bang_navigator/features/settings/data/models/settings.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 ?? Settings.withDefaults()).enableContentBlocking,
),
);
final enableHostList = ref.watch(
settingsRepositoryProvider.select(
(value) => (value.valueOrNull ?? Settings.withDefaults()).enableHostList,
),
);
if (!enableContentBlocking || enableHostList.isEmpty) {
return Stream.value(null);
}
return hostRepository
.watchHosts(sources: enableHostList)
.map((hosts) => hosts.toSet());
}