searchSurah method

List<SurahModel> searchSurah(
  1. String searchText
)

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;
  }
}