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?> 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()); }