search method

List<AyahModel> search(
  1. String searchText
)

Implementation

List<AyahModel> search(String searchText) {
  if (searchText.isEmpty) {
    return [];
  } else {
    // تطبيع النصوص المدخلة
    final normalizedSearchText =
        normalizeText(searchText.toLowerCase().trim());

    final filteredAyahs = ayahs.where((aya) {
      // تطبيع نص الآية واسم السورة
      final normalizedAyahText =
          normalizeText(aya.ayaTextEmlaey.toLowerCase());
      final normalizedSurahNameAr =
          normalizeText(aya.arabicName!.toLowerCase());
      final normalizedSurahNameEn =
          normalizeText(aya.englishName!.toLowerCase());

      // التحقق من تطابق نص الآية
      final containsWord = normalizedAyahText.contains(normalizedSearchText);

      // التحقق من تطابق رقم الصفحة
      final matchesPage = aya.page.toString() ==
          normalizedSearchText
              .convertArabicNumbersToEnglish(normalizedSearchText);

      // التحقق من تطابق اسم السورة بالعربية أو الإنجليزية
      final matchesSurahName =
          normalizedSurahNameAr == normalizedSearchText ||
              normalizedSurahNameEn == normalizedSearchText;

      // التحقق من رقم الآية
      final matchesAyahNumber = aya.ayahNumber.toString() ==
          normalizedSearchText
              .convertArabicNumbersToEnglish(normalizedSearchText);

      // إذا تحقق أي شرط من الشروط أعلاه باستثناء رقم السورة
      return containsWord ||
          matchesPage ||
          matchesSurahName ||
          matchesAyahNumber;
    }).toList();

    return filteredAyahs;
  }
}