From 171d808dad8bee493672b7c6e5a8f116461b8016 Mon Sep 17 00:00:00 2001 From: Raihan Ariq <202310715297@mhs.ubharajaya.ac.id> Date: Thu, 25 Dec 2025 22:52:22 +0700 Subject: [PATCH] Penyesuaian Smart Search --- .../presentation/screens/main/MainScreen.kt | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/example/notesai/presentation/screens/main/MainScreen.kt b/app/src/main/java/com/example/notesai/presentation/screens/main/MainScreen.kt index 0413e1d..987f2c8 100644 --- a/app/src/main/java/com/example/notesai/presentation/screens/main/MainScreen.kt +++ b/app/src/main/java/com/example/notesai/presentation/screens/main/MainScreen.kt @@ -43,11 +43,25 @@ fun MainScreen( ) } else { // Filter kategori berdasarkan searchQuery - val filteredCategories = if (searchQuery.isEmpty()) { + val filteredCategories = if (searchQuery.isBlank()) { categories } else { - categories.filter { - it.name.contains(searchQuery, ignoreCase = true) + categories.filter { category -> + // 1. Cek nama kategori cocok + val categoryNameMatches = category.name.contains(searchQuery, ignoreCase = true) + + // 2. Cek ada catatan yang cocok di kategori ini + val hasMatchingNotes = notes.any { note -> + note.categoryId == category.id && + !note.isDeleted && + !note.isArchived && + (note.title.contains(searchQuery, ignoreCase = true) || + note.description.contains(searchQuery, ignoreCase = true) || + note.content.contains(searchQuery, ignoreCase = true)) + } + + // Kategori muncul jika salah satu kondisi terpenuhi + categoryNameMatches || hasMatchingNotes } }