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, () {
ref if (ref.exists(searchSuggestionsProvider())) {
.read(searchSuggestionsProvider().notifier) ref
.addQuery(searchTextController.text); .read(searchSuggestionsProvider().notifier)
.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 {
await ref if (ref.exists(tabSearchRepositoryProvider(TabSearchPartition.preview))) {
.read( await ref
tabSearchRepositoryProvider(TabSearchPartition.preview).notifier, .read(
) 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, () {
ref if (ref.exists(searchSuggestionsProvider())) {
.read(searchSuggestionsProvider().notifier) ref
.addQuery(searchTextController.text); .read(searchSuggestionsProvider().notifier)
.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 {
await ref if (ref.exists(engineSuggestionsProvider)) {
.watch(engineSuggestionsProvider.notifier) await ref
.addQuery(searchTextListenable.value.text); .watch(engineSuggestionsProvider.notifier)
.addQuery(searchTextListenable.value.text);
}
}); });
if (historySuggestionsAsync.hasValue && if (historySuggestionsAsync.hasValue &&
@@ -68,15 +68,19 @@ class TabSearch extends HookConsumerWidget {
.value; .value;
useListenableCallback(searchTextListenable, () async { useListenableCallback(searchTextListenable, () async {
await ref if (ref.exists(tabSearchRepositoryProvider(TabSearchPartition.search))) {
.read(tabSearchRepositoryProvider(TabSearchPartition.search).notifier) await ref
.addQuery( .read(
searchTextListenable.value.text, tabSearchRepositoryProvider(TabSearchPartition.search).notifier,
// ignore: avoid_redundant_argument_values dont break things )
matchPrefix: _matchPrefix, .addQuery(
// ignore: avoid_redundant_argument_values dont break things searchTextListenable.value.text,
matchSuffix: _matchSuffix, // ignore: avoid_redundant_argument_values dont break things
); matchPrefix: _matchPrefix,
// ignore: avoid_redundant_argument_values dont break things
matchSuffix: _matchSuffix,
);
}
}); });
if (tabs.isEmpty) { if (tabs.isEmpty) {