searchedSpacesProvider top-level property

dynamic searchedSpacesProvider
final

Implementation

final searchedSpacesProvider =
    FutureProvider.autoDispose<List<String>>((ref) async {
  final searchValue = ref.watch(roomSearchValueProvider);
  final allSpaces = await ref.watch(_spaceIdAndNames.future);

  if (searchValue == null || searchValue.isEmpty) {
    return allSpaces
        .map(
          (e) => e.$1,
        )
        .toList();
  }

  final searchTerm = searchValue.toLowerCase();

  final foundSpaces = List<String>.empty(growable: true);

  for (final item in allSpaces) {
    if (item.$1.contains(searchTerm) ||
        (item.$2 != null
            ? item.$2!.toLowerCase().contains(searchTerm)
            : false)) {
      foundSpaces.add(item.$1);
    }
  }

  return foundSpaces;
});