SearchFunction<T> constructor
SearchFunction<T> ({})
Implementation
SearchFunction({
List<T>? initialData,
required Future<List<T>> Function(String query) remoteSearchFunction,
required bool Function(T item, String query) matchFunction,
Duration debounceDuration = const Duration(milliseconds: 300),
}) : _localData = initialData ?? [],
_remoteSearchFunction = remoteSearchFunction,
_matchFunction = matchFunction,
_debounceDuration = debounceDuration {
_allData = List.from(_localData);
// Always emit an initial empty result to make the stream active
_searchResultsController.add(SearchResult<T>(
items: [],
isLoading: false,
query: '',
source: SearchSource.local,
));
}