searchHighlight method

void searchHighlight(
  1. String query, {
  2. MenuSearchCallback? searchCallback,
})

Implementation

void searchHighlight(String query, {MenuSearchCallback? searchCallback}) {
  if (query.isEmpty) {
    value = value.copyWith(clearHighlight: true);
    _overlay?.markNeedsBuild();
    return;
  }

  int? index;
  if (searchCallback != null) {
    index = searchCallback(value.filteredItems, query);
  } else {
    final q = query.toLowerCase();
    index = value.filteredItems.indexWhere(
      (e) => e.label.toLowerCase().contains(q),
    );
    if (index == -1) index = null;
  }

  if (index != null) {
    value = value.copyWith(highlightedIndex: index);
  } else {
    value = value.copyWith(clearHighlight: true);
  }
  _overlay?.markNeedsBuild();
}