SearchFunction<T> constructor

SearchFunction<T>({
  1. List<T>? initialData,
  2. required Future<List<T>> remoteSearchFunction(
    1. String query
    ),
  3. required bool matchFunction(
    1. T item,
    2. String query
    ),
  4. Duration debounceDuration = const Duration(milliseconds: 300),
})

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,
  ));
}