pinsFoundProvider top-level property

dynamic pinsFoundProvider
final

Implementation

final AutoDisposeFutureProvider<List<PinDetails>> pinsFoundProvider =
    FutureProvider.autoDispose((ref) async {
  final pins = await ref.watch(pinListProvider(null).future);
  final List<PinDetails> finalPins = [];
  final searchValue = ref.watch(searchValueProvider).toLowerCase();

  for (final pin in pins) {
    final pinTitle = pin.title();
    final pinId = pin.eventIdStr();
    final isLink = pin.isLink();
    if (searchValue.isNotEmpty) {
      if (!(pinTitle.toLowerCase()).contains(searchValue)) {
        continue;
      }
    }
    finalPins.add(
      PinDetails(
        pinTitle,
        pinId,
        icon: isLink
            ? const Icon(Atlas.link_chain_thin, size: 12)
            : const Icon(Atlas.document_thin, size: 12),
      ),
    );
  }

  finalPins.sort((a, b) {
    return a.name.compareTo(b.name);
  });
  return finalPins;
});