refactored bang search, added search with bang to title

This commit is contained in:
Fabian Freund
2024-06-16 06:30:22 +02:00
parent e2b2a46733
commit 2993ca59ea
10 changed files with 530 additions and 320 deletions
+19 -2
View File
@@ -19,9 +19,26 @@ Stream<BangData?> kagiSearchBangData(KagiSearchBangDataRef ref) {
}
@Riverpod()
Stream<List<BangData>> bangDataList(BangDataListRef ref) {
Stream<Map<String, List<String>>> bangCategories(BangCategoriesRef ref) {
final repository = ref.watch(bangDataRepositoryProvider.notifier);
return repository.watchBangs();
return repository.watchCategories();
}
@Riverpod()
Stream<List<BangData>> bangDataList(
BangDataListRef ref, {
({
Iterable<BangGroup>? groups,
String? domain,
({String category, String? subCategory})? categoryFilter,
})? filter,
}) {
final repository = ref.watch(bangDataRepositoryProvider.notifier);
return repository.watchBangs(
groups: filter?.groups,
domain: filter?.domain,
categoryFilter: filter?.categoryFilter,
);
}
@Riverpod()
@@ -31,8 +31,19 @@ class BangDataRepository extends _$BangDataRepository {
return _db.bangDao.getBangCount(groups: [group]).watchSingle();
}
Stream<List<BangData>> watchBangs({Iterable<BangGroup>? groups}) {
return _db.bangDao.getBangDataList(groups: groups).watch();
Stream<List<BangData>> watchBangs({
Iterable<BangGroup>? groups,
String? domain,
({String category, String? subCategory})? categoryFilter,
}) {
return _db.bangDao
.getBangDataList(
groups: groups,
domain: domain,
category: categoryFilter?.category,
subCategory: categoryFilter?.subCategory,
)
.watch();
}
Stream<List<BangData>> watchFrequentBangs({Iterable<BangGroup>? groups}) {