SearchVM, SearchService: improve search UX by reducing flickering (#1117)

* Fix: don't treat PH OpeningHours with specified time as `everyDay`

* Use SnapshotStateList in SearchVM and don't clear search-results if
there are no new search results from SearchableRepositories

* Rename parameter

* mergeStateLists: refactor as extension method, add apps to SearchResults by default

---------

Co-authored-by: MM20 <15646950+MM2-0@users.noreply.github.com>
This commit is contained in:
Christoph
2024-12-05 18:44:34 +01:00
committed by GitHub
co-authored by MM20
parent 2b08cb7413
commit 8c4bfb7dc9
9 changed files with 132 additions and 182 deletions
@@ -30,6 +30,7 @@ interface SearchService {
fun search(
query: String,
filters: SearchFilters,
initialResults: SearchResults? = null,
): Flow<SearchResults>
fun getAllApps(): Flow<AllAppsResults>
@@ -54,9 +55,10 @@ internal class SearchServiceImpl(
override fun search(
query: String,
filters: SearchFilters,
initialResults: SearchResults?,
): Flow<SearchResults> = flow {
supervisorScope {
val results = MutableStateFlow(SearchResults())
val results = MutableStateFlow(initialResults ?: SearchResults())
val customAttrResults = customAttributesRepository.search(query)
.map { items ->