From 6ea09b8a7a144af6c39d8aa5267ad3c355334bc8 Mon Sep 17 00:00:00 2001 From: Kgothatso Ngako Date: Thu, 2 Apr 2026 00:30:53 +0200 Subject: [PATCH] Save search query on the search result page --- .../compose/ui/composable/SearchResultScreen.kt | 5 ++--- .../ac/aux/compose/ui/composable/SearchScreen.kt | 4 ---- .../ui/view/model/SearchResultViewModel.kt | 15 +++++++++------ .../aux/compose/ui/view/model/SearchViewModel.kt | 10 ---------- 4 files changed, 11 insertions(+), 23 deletions(-) diff --git a/composeApp/src/commonMain/kotlin/ac/aux/compose/ui/composable/SearchResultScreen.kt b/composeApp/src/commonMain/kotlin/ac/aux/compose/ui/composable/SearchResultScreen.kt index e246cb69..dc7decd7 100644 --- a/composeApp/src/commonMain/kotlin/ac/aux/compose/ui/composable/SearchResultScreen.kt +++ b/composeApp/src/commonMain/kotlin/ac/aux/compose/ui/composable/SearchResultScreen.kt @@ -70,6 +70,7 @@ fun SearchResultScreen( val searchViewModel: SearchResultViewModel = viewModel( factory = SearchResultViewModel.factory( initialSearchResultType = SearchResultType.Posts, + searchQuery = searchQuery, nostrRepository = nostrRepository, searchRepository = searchRepository ), @@ -129,9 +130,7 @@ fun SearchResultScreen( query = textFieldState.text.toString(), onQueryChange = { textFieldState.edit { replace(0, length, it) } }, onSearch = { - searchViewModel.performSearch( - textFieldState.text.toString() - ) + // Since search bar is disabled we don't need to do anything... }, enabled = false, expanded = expanded, diff --git a/composeApp/src/commonMain/kotlin/ac/aux/compose/ui/composable/SearchScreen.kt b/composeApp/src/commonMain/kotlin/ac/aux/compose/ui/composable/SearchScreen.kt index e2972463..2cd13d2c 100644 --- a/composeApp/src/commonMain/kotlin/ac/aux/compose/ui/composable/SearchScreen.kt +++ b/composeApp/src/commonMain/kotlin/ac/aux/compose/ui/composable/SearchScreen.kt @@ -151,10 +151,6 @@ fun SearchScreen( query = textFieldState.text.toString(), onQueryChange = { textFieldState.edit { replace(0, length, it) } }, onSearch = { - searchViewModel.performSearch( - textFieldState.text.toString() - ) - if (textFieldState.text.isBlank()) { expanded = false } diff --git a/composeApp/src/commonMain/kotlin/ac/aux/compose/ui/view/model/SearchResultViewModel.kt b/composeApp/src/commonMain/kotlin/ac/aux/compose/ui/view/model/SearchResultViewModel.kt index 3ae1a0aa..29779c10 100755 --- a/composeApp/src/commonMain/kotlin/ac/aux/compose/ui/view/model/SearchResultViewModel.kt +++ b/composeApp/src/commonMain/kotlin/ac/aux/compose/ui/view/model/SearchResultViewModel.kt @@ -30,6 +30,7 @@ enum class SearchResultType { class SearchResultViewModel( initialSearchResultType: SearchResultType, + val searchQuery: String, val nostrRepository: NostrRepository, val searchRepository: SearchRepository, ): ViewModel() { @@ -53,17 +54,18 @@ class SearchResultViewModel( fun loadSearchResult() { viewModelScope.launch(Dispatchers.IO) { + nostrRepository.saveSearchQuery( + searchQuery, + // TODO: synchronizationFilterArray + ) + // This is something not taking into consideration the results we are actually looking for... nostrRepository.observeNostrFeed().collect { localNostrEvents -> searchResultListUIState = SearchResultListUIState.Loaded( localNostrEvents = localNostrEvents ) } - } - } - fun performSearch(searchQuery: String) { - viewModelScope.launch(Dispatchers.IO) { // Sync Notifications... might want to also run this in the background searchRepository.submitSearch( Relays.eventPublishRelaySet.map { normalizedRelay -> @@ -77,7 +79,7 @@ class SearchResultViewModel( ReactionEvent.KIND, LnZapEvent.KIND, ), - search = "shoes", + search = searchQuery, limit = 50 ) ), @@ -88,18 +90,19 @@ class SearchResultViewModel( } } - companion object { const val TAG = "SearchViewModel" fun factory( initialSearchResultType: SearchResultType = SearchResultType.Posts, + searchQuery: String, nostrRepository: NostrRepository, searchRepository: SearchRepository, ): ViewModelProvider.Factory = viewModelFactory { initializer { SearchResultViewModel( initialSearchResultType = initialSearchResultType, + searchQuery = searchQuery, nostrRepository = nostrRepository, searchRepository = searchRepository ) diff --git a/composeApp/src/commonMain/kotlin/ac/aux/compose/ui/view/model/SearchViewModel.kt b/composeApp/src/commonMain/kotlin/ac/aux/compose/ui/view/model/SearchViewModel.kt index b1abb626..9ae4a90d 100755 --- a/composeApp/src/commonMain/kotlin/ac/aux/compose/ui/view/model/SearchViewModel.kt +++ b/composeApp/src/commonMain/kotlin/ac/aux/compose/ui/view/model/SearchViewModel.kt @@ -47,16 +47,6 @@ class SearchViewModel( loadRecentSearches() } - fun performSearch(searchQuery: String) { - viewModelScope.launch(Dispatchers.IO) { - nostrRepository.saveSearchQuery( - searchQuery, - // TODO: synchronizationFilterArray - ) - // TODO: Run search on local db for suggestions... - } - } - fun loadSearchableProfiles() { viewModelScope.launch(Dispatchers.IO) { searchableProfiles.addAll(