searchFilters method

  1. @override
List<Filter> searchFilters({
  1. required String filterId,
  2. required String query,
  3. required List<Filter> filters,
})
override

Implementation

@override
List<Filter> searchFilters({
  required String filterId,
  required String query,
  required List<Filter> filters,
}) {
  final List<Filter> newFilters = filters.map(
    (Filter filter) {
      if (filter.id == filterId) {
        final List<String> searchedValues = query.trim().isNotEmpty
            ? filter.values
                .where(
                  (String element) => element.toLowerCase().contains(
                        query.toLowerCase().trim(),
                      ),
                )
                .toList()
            : filter.values;

        return filter.copyWith(
          groupedValues: groupList(searchedValues),
        );
      } else {
        return filter;
      }
    },
  ).toList();

  return newFilters;
}