From 43823e3bfa71050e443fd0cd3f13ad7f0f005805 Mon Sep 17 00:00:00 2001 From: OneWay Date: Sun, 30 Aug 2026 03:21:18 +0800 Subject: [PATCH] Fix: clear search results instantly on query clear Skipped the 300ms debounce for blank queries so the results list clears immediately; typed queries keep the debounce. --- .../com/example/research/feature/search/SearchViewModel.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/example/research/feature/search/SearchViewModel.kt b/app/src/main/java/com/example/research/feature/search/SearchViewModel.kt index 6079b04..c63acc5 100644 --- a/app/src/main/java/com/example/research/feature/search/SearchViewModel.kt +++ b/app/src/main/java/com/example/research/feature/search/SearchViewModel.kt @@ -85,7 +85,12 @@ class SearchViewModel( @OptIn(FlowPreview::class, ExperimentalCoroutinesApi::class) val searchResults: Flow> = combine( - searchQuery.debounce(300.milliseconds).distinctUntilChanged(), + searchQuery + .map { it to it.isBlank() } + .distinctUntilChangedBy { it.first } + .flatMapLatest { (query, isBlank) -> + if (isBlank) flowOf(query) else flowOf(query).debounce(300.milliseconds) + }, activeDictionaries ) { query, dictionaries -> query to dictionaries