getItems method

Future<List<T>> getItems(
  1. List<T> items,
  2. Comparator<T> sorter,
  3. Filter<T> filter,
  4. int maxAmount,
  5. String? query,
)

Implementation

Future<List<T>> getItems(
  List<T> items,
  Comparator<T> sorter,
  Filter<T> filter,
  int maxAmount,
  String? query,
) =>
    scheduleTask(() {
      if (query == null || query.length < minLength) {
        return [];
      }
      items = items.where((item) => filter(item, query)).toList();
      items.sort(sorter);
      if (items.length > maxAmount) {
        items = items.sublist(0, maxAmount);
      }
      return items;
    });