searchText static method

Future<SearchResult> searchText(
  1. String searchTerm
)

Search for Arabic text within the Quran.

searchTerm The Arabic text to search for

Returns SearchResult containing all matching ayat.

Throws ArgumentError if searchTerm is empty.

Example:

final results = await QuranService.searchText('الله');
print('Found ${results.totalResults} ayat containing "الله"');

Implementation

static Future<SearchResult> searchText(String searchTerm) async {
  await initialize();
  _ensureDataLoaded();

  QuranValidators.validateSearchTerm(searchTerm);

  final List<AyahWithSurah> results = [];

  for (final surah in _quranData!.surahs) {
    for (final ayah in surah.ayat) {
      if (ayah.text.contains(searchTerm)) {
        results.add(AyahWithSurah(
          id: ayah.id,
          text: ayah.text,
          sajdah: ayah.sajdah,
          juz: ayah.juz,
          hizb: ayah.hizb,
          surah: surah,
        ));
      }
    }
  }

  return SearchResult(
    searchTerm: searchTerm,
    totalResults: results.length,
    results: results,
  );
}