From 46accdd7ade09bfad66ec6a227e5e6514cac0a6d Mon Sep 17 00:00:00 2001 From: longnghia <41385034+longnghia@users.noreply.github.com> Date: Wed, 4 Dec 2024 14:37:30 +0700 Subject: [PATCH] Fix missing favorite in SearchPage --- .../hviewer/ui/page/search/SearchPage.kt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/paulcoding/hviewer/ui/page/search/SearchPage.kt b/app/src/main/java/com/paulcoding/hviewer/ui/page/search/SearchPage.kt index a62f7d4..6837d6a 100644 --- a/app/src/main/java/com/paulcoding/hviewer/ui/page/search/SearchPage.kt +++ b/app/src/main/java/com/paulcoding/hviewer/ui/page/search/SearchPage.kt @@ -107,7 +107,7 @@ fun SearchPage( Icon(EditIcon, contentDescription = "Search") } } - PageContent(viewModel = viewModel) { post -> + PageContent(appViewModel = appViewModel, viewModel = viewModel) { post -> navToImages(post) } } @@ -117,11 +117,13 @@ fun SearchPage( @Composable fun PageContent( + appViewModel: AppViewModel, viewModel: SearchViewModel, onClick: (PostItem) -> Unit ) { val listState = rememberLazyListState() val uiState by viewModel.stateFlow.collectAsState() + val listFavorite by appViewModel.favoritePosts.collectAsState(initial = emptyList()) uiState.error?.let { Toast.makeText(appContext, it.message ?: it.toString(), Toast.LENGTH_SHORT).show() @@ -138,7 +140,15 @@ fun PageContent( state = listState ) { items(uiState.postItems) { post -> - PostCard(post) { + PostCard(post, + isFavorite = listFavorite.find { it.url == post.url } != null, + setFavorite = { isFavorite -> + if (isFavorite) + appViewModel.addFavorite(post) + else + appViewModel.deleteFavorite(post) + } + ) { onClick(post) } }