filterItems method

void filterItems(
  1. List<MenuItem> allItems,
  2. String query, {
  3. MenuFilterCallback? filterCallback,
})

Implementation

void filterItems(
  List<MenuItem> allItems,
  String query, {
  MenuFilterCallback? filterCallback,
}) {
  if (query.isEmpty) {
    value = value.copyWith(filteredItems: allItems, clearHighlight: true);
    _overlay?.markNeedsBuild();
    return;
  }

  final List<MenuItem> filtered;
  if (filterCallback != null) {
    filtered = filterCallback(allItems, query);
  } else {
    final q = query.toLowerCase();
    filtered = allItems
        .where((item) => item.label.toLowerCase().contains(q))
        .toList();
  }
  value = value.copyWith(filteredItems: filtered, clearHighlight: true);
  _overlay?.markNeedsBuild();
}