searchMetadatas method
Search by name, nip05
Implementation
@override
Future<Iterable<Metadata>> searchMetadatas(String search, int limit) async {
final events = await loadEvents(kinds: [Metadata.kKind]);
final normalizedSearch = search.trim().toLowerCase();
final matches = events.map((event) => Metadata.fromEvent(event)).where((
metadata,
) {
if (normalizedSearch.isEmpty) return true;
return metadata.matchesSearch(normalizedSearch) ||
(metadata.about?.toLowerCase().contains(normalizedSearch) ?? false) ||
(metadata.cleanNip05?.contains(normalizedSearch) ?? false);
}).toList()..sort((a, b) => (b.updatedAt ?? 0).compareTo(a.updatedAt ?? 0));
return matches.take(limit);
}