intermediate

This commit is contained in:
Fabian Freund
2024-12-12 09:44:33 +01:00
parent 0710116feb
commit 6b2ae28828
108 changed files with 5531 additions and 2265 deletions
@@ -0,0 +1,35 @@
import 'package:lensai/features/kagi/data/services/autosuggest.dart';
import 'package:lensai/features/kagi/domain/repositories/search_suggestions.dart';
import 'package:lensai/features/search/domain/entities/abstract/i_search_suggestion_provider.dart';
import 'package:riverpod/riverpod.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'search_suggestions.g.dart';
@Riverpod(keepAlive: true)
ISearchSuggestionProvider defaultSearchSuggestions(Ref ref) {
return ref.watch(kagiAutosuggestServiceProvider.notifier);
}
@Riverpod(keepAlive: true)
class SearchSuggestions extends _$SearchSuggestions {
late void Function(String query) _addQueryBinding;
void addQuery(String query) => _addQueryBinding(query);
@override
Raw<Stream<List<String>>> build({
ISearchSuggestionProvider? suggestionsProvider,
}) {
final defaultProvider = ref.watch(defaultSearchSuggestionsProvider);
final resolvedProvider = suggestionsProvider ?? defaultProvider;
_addQueryBinding = ref
.watch(searchSuggestionsRepositoryProvider(resolvedProvider).notifier)
.addQuery;
return ref.watch(
searchSuggestionsRepositoryProvider(resolvedProvider),
);
}
}