check if listened before adding queries

This commit is contained in:
Fabian Freund
2025-09-29 11:02:14 +02:00
parent 81f04c2078
commit bb77f8c015
7 changed files with 45 additions and 27 deletions
@@ -62,9 +62,11 @@ class SiteSearch extends HookConsumerWidget {
final searchFocusNode = useFocusNode();
useListenableCallback(searchTextController, () {
ref
.read(searchSuggestionsProvider().notifier)
.addQuery(searchTextController.text);
if (ref.exists(searchSuggestionsProvider())) {
ref
.read(searchSuggestionsProvider().notifier)
.addQuery(searchTextController.text);
}
});
final selectedBang = ref.watch(selectedBangDataProvider(domain: domain));
@@ -139,11 +139,13 @@ class _TabSheetHeader extends HookConsumerWidget {
);
useListenableCallback(searchTextController, () async {
await ref
.read(
tabSearchRepositoryProvider(TabSearchPartition.preview).notifier,
)
.addQuery(searchTextController.text);
if (ref.exists(tabSearchRepositoryProvider(TabSearchPartition.preview))) {
await ref
.read(
tabSearchRepositoryProvider(TabSearchPartition.preview).notifier,
)
.addQuery(searchTextController.text);
}
});
return Material(
@@ -68,9 +68,15 @@ class SearchSuggestions extends _$SearchSuggestions {
final defaultProvider = ref.watch(defaultSearchSuggestionsProvider);
final resolvedProvider = suggestionsProvider ?? defaultProvider;
_addQueryBinding = ref
.watch(searchSuggestionsRepositoryProvider(resolvedProvider).notifier)
.addQuery;
_addQueryBinding = (value) {
if (ref.exists(searchSuggestionsRepositoryProvider(resolvedProvider))) {
ref
.watch(
searchSuggestionsRepositoryProvider(resolvedProvider).notifier,
)
.addQuery(value);
}
};
return ref.watch(searchSuggestionsRepositoryProvider(resolvedProvider));
}
@@ -98,7 +98,7 @@ final class SearchSuggestionsProvider
}
}
String _$searchSuggestionsHash() => r'8d1fb72cab374491a53f7a814f87af6a26356f42';
String _$searchSuggestionsHash() => r'e181fb417f6199648a7c6d8962b1f1d5a2cf7d27';
final class SearchSuggestionsFamily extends $Family
with
@@ -61,9 +61,11 @@ class FixedSearchTermSuggestions extends HookConsumerWidget {
final searchSuggestions = ref.watch(searchSuggestionsProvider());
useListenableCallback(searchTextController, () {
ref
.read(searchSuggestionsProvider().notifier)
.addQuery(searchTextController.text);
if (ref.exists(searchSuggestionsProvider())) {
ref
.read(searchSuggestionsProvider().notifier)
.addQuery(searchTextController.text);
}
});
final prioritizedSuggestions = isSuggestableText
@@ -49,9 +49,11 @@ class HistorySuggestions extends HookConsumerWidget {
final historySuggestionsAsync = ref.watch(engineHistorySuggestionsProvider);
useListenableCallback(searchTextListenable, () async {
await ref
.watch(engineSuggestionsProvider.notifier)
.addQuery(searchTextListenable.value.text);
if (ref.exists(engineSuggestionsProvider)) {
await ref
.watch(engineSuggestionsProvider.notifier)
.addQuery(searchTextListenable.value.text);
}
});
if (historySuggestionsAsync.hasValue &&
@@ -68,15 +68,19 @@ class TabSearch extends HookConsumerWidget {
.value;
useListenableCallback(searchTextListenable, () async {
await ref
.read(tabSearchRepositoryProvider(TabSearchPartition.search).notifier)
.addQuery(
searchTextListenable.value.text,
// ignore: avoid_redundant_argument_values dont break things
matchPrefix: _matchPrefix,
// ignore: avoid_redundant_argument_values dont break things
matchSuffix: _matchSuffix,
);
if (ref.exists(tabSearchRepositoryProvider(TabSearchPartition.search))) {
await ref
.read(
tabSearchRepositoryProvider(TabSearchPartition.search).notifier,
)
.addQuery(
searchTextListenable.value.text,
// ignore: avoid_redundant_argument_values dont break things
matchPrefix: _matchPrefix,
// ignore: avoid_redundant_argument_values dont break things
matchSuffix: _matchSuffix,
);
}
});
if (tabs.isEmpty) {