searchBySurahName static method
Search for surahs by Arabic or English name.
name
Surah name to search for (supports partial matching)
Returns SurahSearchResult containing matching surahs.
Throws ArgumentError if name is empty.
Example:
final results = await QuranService.searchBySurahName('Fatiha');
print('Found: ${results.results.first.englishName}');
Implementation
static Future<SurahSearchResult> searchBySurahName(String name) async {
await initialize();
_ensureDataLoaded();
QuranValidators.validateSearchTerm(name);
final searchTerm = name.toLowerCase().trim();
final List<Surah> matchingSurahs = [];
for (final surah in _quranData!.surahs) {
final englishNameLower = surah.englishName.toLowerCase();
final arabicName = surah.name;
if (englishNameLower.contains(searchTerm) || arabicName.contains(name)) {
matchingSurahs.add(surah);
}
}
return SurahSearchResult(
searchTerm: name,
totalResults: matchingSurahs.length,
results: matchingSurahs,
);
}