From cf1bd1613b657b6d687e54aa5cb1aeae5f72e173 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sat, 9 May 2026 01:27:40 +0530 Subject: [PATCH] ref: adjust the search screen empty state ui --- .../nuvio/app/features/search/SearchScreen.kt | 82 ++++++++++--------- 1 file changed, 45 insertions(+), 37 deletions(-) diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/search/SearchScreen.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/search/SearchScreen.kt index 9ecd07d8..bad6cc11 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/search/SearchScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/search/SearchScreen.kt @@ -285,53 +285,61 @@ fun SearchScreen( onPosterLongClick = onPosterLongClick, ) } else { - when { - uiState.isLoading && uiState.sections.isEmpty() -> { - items(2) { - HomeSkeletonRow(modifier = Modifier.padding(horizontal = homeSectionPadding)) + val normalizedQuery = query.trim() + val isWaitingForSearch = normalizedQuery.isNotBlank() && lastRequestedQuery != normalizedQuery + when { + isWaitingForSearch -> { + items(2) { + HomeSkeletonRow(modifier = Modifier.padding(horizontal = homeSectionPadding)) + } } - } - uiState.sections.isEmpty() -> { - item { - SearchEmptyStateCard( - reason = uiState.emptyStateReason, - errorMessage = uiState.errorMessage, - networkCondition = networkStatusUiState.condition, - onRetry = { - val normalizedQuery = query.trim() - if (normalizedQuery.isNotBlank()) { - NetworkStatusRepository.requestRefresh(force = true) - SearchRepository.search( - query = normalizedQuery, - addons = addonsUiState.addons, - ) - } - }, - ) + uiState.isLoading && uiState.sections.isEmpty() -> { + items(2) { + HomeSkeletonRow(modifier = Modifier.padding(horizontal = homeSectionPadding)) + } } - } - else -> { - items( - items = uiState.sections.withDuplicateSafeLazyKeys { section -> section.key }, - key = { section -> section.lazyKey }, - ) { keyedSection -> - val section = keyedSection.value - HomeCatalogRowSection( - section = section, - modifier = Modifier.padding(bottom = 12.dp), - watchedKeys = watchedUiState.watchedKeys, - onPosterClick = onPosterClick, - onPosterLongClick = onPosterLongClick, - ) + uiState.sections.isEmpty() -> { + item { + SearchEmptyStateCard( + reason = uiState.emptyStateReason, + errorMessage = uiState.errorMessage, + networkCondition = networkStatusUiState.condition, + onRetry = { + if (normalizedQuery.isNotBlank()) { + NetworkStatusRepository.requestRefresh(force = true) + SearchRepository.search( + query = normalizedQuery, + addons = addonsUiState.addons, + ) + } + }, + modifier = Modifier.padding(horizontal = homeSectionPadding), + ) + } + } + + else -> { + items( + items = uiState.sections.withDuplicateSafeLazyKeys { section -> section.key }, + key = { section -> section.lazyKey }, + ) { keyedSection -> + val section = keyedSection.value + HomeCatalogRowSection( + section = section, + modifier = Modifier.padding(bottom = 12.dp), + watchedKeys = watchedUiState.watchedKeys, + onPosterClick = onPosterClick, + onPosterLongClick = onPosterLongClick, + ) + } } } } } } } -} private fun discoverColumnCountForWidth(screenWidth: Dp): Int = when {