updateSearchQuery method
List<MultiSelectItem<T> >
updateSearchQuery(
- String? val,
- List<
MultiSelectItem< allItems,T> > - bool enableSingleSelection,
- bool enableeTag,
Accepts the search query, and the original list of items. If the search query is valid, return a filtered list, otherwise return the original list.
Implementation
List<MultiSelectItem<T>> updateSearchQuery(
String? val,
List<MultiSelectItem<T>> allItems,
bool enableSingleSelection,
bool enableeTag) {
List<MultiSelectItem<T>> listToShow;
if (enableSingleSelection && enableeTag) {
if (val != null && val.isNotEmpty) {
val.toLowerCase();
listToShow = allItems
.where((e) =>
e.label.toLowerCase().contains(val.toLowerCase()) &&
e.label.toLowerCase().startsWith(val.toLowerCase()))
.toList();
if (listToShow.isEmpty) {
listToShow.add(MultiSelectItem(allItems.length++, val));
}
return listToShow;
} else {
listToShow = allItems;
}
return listToShow;
} else {
if (val != null && val.trim().isNotEmpty) {
List<MultiSelectItem<T>> filteredItems = [];
for (var item in allItems) {
if (item.label.toLowerCase().contains(val.toLowerCase())) {
filteredItems.add(item);
print(item.label);
}
}
return filteredItems;
} else {
return allItems;
}
}
}