diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt index c4c6365d..ec5fc2c5 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt @@ -101,7 +101,6 @@ fun LobstersApp( val hottestPosts = viewModel.hottestPosts.collectAsLazyPagingItems() val newestPosts = viewModel.newestPosts.collectAsLazyPagingItems() val savedPosts by viewModel.savedPosts.collectAsState(persistentMapOf()) - val searchResults = viewModel.searchResults.collectAsLazyPagingItems() val navigationType = ClawNavigationType.fromSize(windowSizeClass.widthSizeClass) @@ -242,16 +241,12 @@ fun LobstersApp( composable(Destinations.Search.route) { setWebUri("https://lobste.rs/search") SearchList( - items = searchResults, + items = viewModel.searchResults, listState = searchListState, isPostSaved = viewModel::isPostSaved, postActions = postActions, searchQuery = viewModel.searchQuery, setSearchQuery = { query -> viewModel.searchQuery = query }, - triggerSearch = { query -> - viewModel.searchQuery = query - searchResults.refresh() - } ) } composable( diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/lists/SearchList.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/lists/SearchList.kt index b4e393d0..c38b1150 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/lists/SearchList.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/lists/SearchList.kt @@ -30,23 +30,29 @@ import androidx.compose.ui.semantics.isTraversalGroup import androidx.compose.ui.semantics.semantics import androidx.compose.ui.unit.dp import androidx.compose.ui.zIndex -import androidx.paging.compose.LazyPagingItems +import androidx.paging.PagingData +import androidx.paging.compose.collectAsLazyPagingItems import dev.msfjarvis.claw.common.posts.PostActions import dev.msfjarvis.claw.common.ui.SearchBar import dev.msfjarvis.claw.database.local.SavedPost import dev.msfjarvis.claw.model.LobstersPost +import kotlinx.coroutines.flow.Flow @Composable fun SearchList( - items: LazyPagingItems, + items: Flow>, listState: LazyListState, isPostSaved: suspend (SavedPost) -> Boolean, postActions: PostActions, searchQuery: String, setSearchQuery: (String) -> Unit, - triggerSearch: (String) -> Unit, modifier: Modifier = Modifier, ) { + val lazyPagingItems = items.collectAsLazyPagingItems() + val triggerSearch = { query: String -> + setSearchQuery(query) + lazyPagingItems.refresh() + } DisposableEffect(true) { // Clear search field when navigating away onDispose { triggerSearch("") } @@ -65,7 +71,7 @@ fun SearchList( ) if (searchActive) { NetworkPosts( - lazyPagingItems = items, + lazyPagingItems = lazyPagingItems, listState = listState, isPostSaved = isPostSaved, postActions = postActions,