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(); final searchFocusNode = useFocusNode();
useListenableCallback(searchTextController, () { useListenableCallback(searchTextController, () {
if (ref.exists(searchSuggestionsProvider())) {
ref ref
.read(searchSuggestionsProvider().notifier) .read(searchSuggestionsProvider().notifier)
.addQuery(searchTextController.text); .addQuery(searchTextController.text);
}
}); });
final selectedBang = ref.watch(selectedBangDataProvider(domain: domain)); final selectedBang = ref.watch(selectedBangDataProvider(domain: domain));
@@ -139,11 +139,13 @@ class _TabSheetHeader extends HookConsumerWidget {
); );
useListenableCallback(searchTextController, () async { useListenableCallback(searchTextController, () async {
if (ref.exists(tabSearchRepositoryProvider(TabSearchPartition.preview))) {
await ref await ref
.read( .read(
tabSearchRepositoryProvider(TabSearchPartition.preview).notifier, tabSearchRepositoryProvider(TabSearchPartition.preview).notifier,
) )
.addQuery(searchTextController.text); .addQuery(searchTextController.text);
}
}); });
return Material( return Material(
@@ -68,9 +68,15 @@ class SearchSuggestions extends _$SearchSuggestions {
final defaultProvider = ref.watch(defaultSearchSuggestionsProvider); final defaultProvider = ref.watch(defaultSearchSuggestionsProvider);
final resolvedProvider = suggestionsProvider ?? defaultProvider; final resolvedProvider = suggestionsProvider ?? defaultProvider;
_addQueryBinding = ref _addQueryBinding = (value) {
.watch(searchSuggestionsRepositoryProvider(resolvedProvider).notifier) if (ref.exists(searchSuggestionsRepositoryProvider(resolvedProvider))) {
.addQuery; ref
.watch(
searchSuggestionsRepositoryProvider(resolvedProvider).notifier,
)
.addQuery(value);
}
};
return ref.watch(searchSuggestionsRepositoryProvider(resolvedProvider)); 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 final class SearchSuggestionsFamily extends $Family
with with
@@ -61,9 +61,11 @@ class FixedSearchTermSuggestions extends HookConsumerWidget {
final searchSuggestions = ref.watch(searchSuggestionsProvider()); final searchSuggestions = ref.watch(searchSuggestionsProvider());
useListenableCallback(searchTextController, () { useListenableCallback(searchTextController, () {
if (ref.exists(searchSuggestionsProvider())) {
ref ref
.read(searchSuggestionsProvider().notifier) .read(searchSuggestionsProvider().notifier)
.addQuery(searchTextController.text); .addQuery(searchTextController.text);
}
}); });
final prioritizedSuggestions = isSuggestableText final prioritizedSuggestions = isSuggestableText
@@ -49,9 +49,11 @@ class HistorySuggestions extends HookConsumerWidget {
final historySuggestionsAsync = ref.watch(engineHistorySuggestionsProvider); final historySuggestionsAsync = ref.watch(engineHistorySuggestionsProvider);
useListenableCallback(searchTextListenable, () async { useListenableCallback(searchTextListenable, () async {
if (ref.exists(engineSuggestionsProvider)) {
await ref await ref
.watch(engineSuggestionsProvider.notifier) .watch(engineSuggestionsProvider.notifier)
.addQuery(searchTextListenable.value.text); .addQuery(searchTextListenable.value.text);
}
}); });
if (historySuggestionsAsync.hasValue && if (historySuggestionsAsync.hasValue &&
@@ -68,8 +68,11 @@ class TabSearch extends HookConsumerWidget {
.value; .value;
useListenableCallback(searchTextListenable, () async { useListenableCallback(searchTextListenable, () async {
if (ref.exists(tabSearchRepositoryProvider(TabSearchPartition.search))) {
await ref await ref
.read(tabSearchRepositoryProvider(TabSearchPartition.search).notifier) .read(
tabSearchRepositoryProvider(TabSearchPartition.search).notifier,
)
.addQuery( .addQuery(
searchTextListenable.value.text, searchTextListenable.value.text,
// ignore: avoid_redundant_argument_values dont break things // ignore: avoid_redundant_argument_values dont break things
@@ -77,6 +80,7 @@ class TabSearch extends HookConsumerWidget {
// ignore: avoid_redundant_argument_values dont break things // ignore: avoid_redundant_argument_values dont break things
matchSuffix: _matchSuffix, matchSuffix: _matchSuffix,
); );
}
}); });
if (tabs.isEmpty) { if (tabs.isEmpty) {