searchSurah method
Implementation
List<SurahModel> searchSurah(String searchText) {
if (searchText.isEmpty) {
return [];
} else {
// تحويل الأرقام العربية إلى إنجليزية في النص المدخل
// Convert Arabic numbers to English in the input text
final convertedSearchText =
searchText.convertArabicNumbersToEnglish(searchText);
// إزالة التشكيل وتطبيع النص المدخل
// Remove diacritics and normalize the input text
final cleanedSearchText = removeDiacriticsQuran(convertedSearchText);
final normalizedSearchText =
normalizeText(cleanedSearchText.toLowerCase().trim());
final filteredSurahs = surahs.where((surah) {
// إزالة التشكيل وتطبيع أسماء السور
// Remove diacritics and normalize surah names
final cleanedSurahNameAr = removeDiacriticsQuran(surah.arabicName);
final normalizedSurahNameAr =
normalizeText(cleanedSurahNameAr.toLowerCase());
final normalizedSurahNameEn =
normalizeText(surah.englishName.toLowerCase());
// استخدام contains بدلاً من == للسماح بمطابقة جزئية
// Use contains instead of == to allow partial matching
final matchesSurahName =
normalizedSurahNameAr.contains(normalizedSearchText) ||
normalizedSurahNameEn.contains(normalizedSearchText);
// تحويل رقم السورة إلى نص مع تحويل الأرقام العربية
// Convert surah number to text with Arabic number conversion
final surahNumberText = surah.surahNumber.toString();
final matchesSurahNumber = surahNumberText == normalizedSearchText;
return matchesSurahName || matchesSurahNumber;
}).toList();
return filteredSurahs;
}
}