mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-15 05:17:03 +05:30
fix(android): cache search results properly
This commit is contained in:
parent
d5a0bb256f
commit
943cddd8a4
2 changed files with 5 additions and 6 deletions
|
@ -19,16 +19,14 @@ import androidx.compose.ui.semantics.isTraversalGroup
|
||||||
import androidx.compose.ui.semantics.semantics
|
import androidx.compose.ui.semantics.semantics
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.zIndex
|
import androidx.compose.ui.zIndex
|
||||||
import androidx.paging.PagingData
|
import androidx.paging.compose.LazyPagingItems
|
||||||
import androidx.paging.compose.collectAsLazyPagingItems
|
|
||||||
import dev.msfjarvis.claw.common.posts.PostActions
|
import dev.msfjarvis.claw.common.posts.PostActions
|
||||||
import dev.msfjarvis.claw.common.ui.SearchBar
|
import dev.msfjarvis.claw.common.ui.SearchBar
|
||||||
import dev.msfjarvis.claw.model.UIPost
|
import dev.msfjarvis.claw.model.UIPost
|
||||||
import kotlinx.coroutines.flow.Flow
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun SearchList(
|
fun SearchList(
|
||||||
items: Flow<PagingData<UIPost>>,
|
lazyPagingItems: LazyPagingItems<UIPost>,
|
||||||
listState: LazyListState,
|
listState: LazyListState,
|
||||||
postActions: PostActions,
|
postActions: PostActions,
|
||||||
searchQuery: String,
|
searchQuery: String,
|
||||||
|
@ -36,7 +34,6 @@ fun SearchList(
|
||||||
contentPadding: PaddingValues,
|
contentPadding: PaddingValues,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
) {
|
) {
|
||||||
val lazyPagingItems = items.collectAsLazyPagingItems()
|
|
||||||
val triggerSearch = { query: String ->
|
val triggerSearch = { query: String ->
|
||||||
setSearchQuery(query)
|
setSearchQuery(query)
|
||||||
lazyPagingItems.refresh()
|
lazyPagingItems.refresh()
|
||||||
|
|
|
@ -15,6 +15,7 @@ import androidx.navigation.compose.NavHost
|
||||||
import androidx.navigation.compose.composable
|
import androidx.navigation.compose.composable
|
||||||
import androidx.navigation.compose.rememberNavController
|
import androidx.navigation.compose.rememberNavController
|
||||||
import androidx.navigation.toRoute
|
import androidx.navigation.toRoute
|
||||||
|
import androidx.paging.compose.collectAsLazyPagingItems
|
||||||
import com.deliveryhero.whetstone.compose.injectedViewModel
|
import com.deliveryhero.whetstone.compose.injectedViewModel
|
||||||
import dev.msfjarvis.claw.android.ui.lists.SearchList
|
import dev.msfjarvis.claw.android.ui.lists.SearchList
|
||||||
import dev.msfjarvis.claw.android.ui.navigation.Comments
|
import dev.msfjarvis.claw.android.ui.navigation.Comments
|
||||||
|
@ -38,12 +39,13 @@ fun SearchScreen(
|
||||||
val navController = rememberNavController()
|
val navController = rememberNavController()
|
||||||
val postActions = rememberPostActions(LocalContext.current, urlLauncher, navController, viewModel)
|
val postActions = rememberPostActions(LocalContext.current, urlLauncher, navController, viewModel)
|
||||||
val listState = rememberLazyListState()
|
val listState = rememberLazyListState()
|
||||||
|
val searchResults = viewModel.searchResults.collectAsLazyPagingItems()
|
||||||
Scaffold(modifier = modifier) { contentPadding ->
|
Scaffold(modifier = modifier) { contentPadding ->
|
||||||
NavHost(navController = navController, startDestination = Search) {
|
NavHost(navController = navController, startDestination = Search) {
|
||||||
composable<Search> {
|
composable<Search> {
|
||||||
setWebUri("https://lobste.rs/search")
|
setWebUri("https://lobste.rs/search")
|
||||||
SearchList(
|
SearchList(
|
||||||
items = viewModel.searchResults,
|
lazyPagingItems = searchResults,
|
||||||
listState = listState,
|
listState = listState,
|
||||||
postActions = postActions,
|
postActions = postActions,
|
||||||
searchQuery = viewModel.searchQuery,
|
searchQuery = viewModel.searchQuery,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue