import 'package:bang_navigator/features/bangs/data/models/bang_data.dart'; import 'package:bang_navigator/features/bangs/domain/repositories/bang.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart'; part 'providers.g.dart'; @Riverpod() Stream bang(BangRef ref, String? trigger) { final repository = ref.watch(bangRepositoryProvider.notifier); return repository.watchBang(trigger); } @Riverpod(keepAlive: true) Stream kagiSearchBang(KagiSearchBangRef ref) { final repository = ref.watch(bangRepositoryProvider.notifier); return repository.watchBang('kagi'); } @Riverpod() Stream> allBangs(AllBangsRef ref) { final repository = ref.watch(bangRepositoryProvider.notifier); return repository.watchBangs(); } @Riverpod() Stream> frequentBangs(FrequentBangsRef ref) { final repository = ref.watch(bangRepositoryProvider.notifier); return repository.watchFrequentBangs(); } @Riverpod() Future ensureIconAvailable( EnsureIconAvailableRef ref, BangData bang, ) { final repository = ref.watch(bangRepositoryProvider.notifier); return repository.ensureIconAvailable(bang).then( (value) => value.value, ); }