From e623ea8d33c8851ddfd3d04985bbf17b29ff64b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Braun?= Date: Wed, 13 Nov 2024 09:23:52 +0100 Subject: [PATCH] Use collectAsStateWithLifecycle --- .../kotlin/com/jetbrains/kmpapp/screens/DetailScreen.kt | 4 ++-- .../kotlin/com/jetbrains/kmpapp/screens/ListScreen.kt | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/composeApp/src/androidMain/kotlin/com/jetbrains/kmpapp/screens/DetailScreen.kt b/composeApp/src/androidMain/kotlin/com/jetbrains/kmpapp/screens/DetailScreen.kt index 50fbaac..85ce753 100644 --- a/composeApp/src/androidMain/kotlin/com/jetbrains/kmpapp/screens/DetailScreen.kt +++ b/composeApp/src/androidMain/kotlin/com/jetbrains/kmpapp/screens/DetailScreen.kt @@ -25,7 +25,6 @@ import androidx.compose.material3.Text import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -36,6 +35,7 @@ import androidx.compose.ui.text.buildAnnotatedString import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.withStyle import androidx.compose.ui.unit.dp +import androidx.lifecycle.compose.collectAsStateWithLifecycle import coil3.compose.AsyncImage import com.jetbrains.kmpapp.R import com.jetbrains.kmpapp.data.MuseumObject @@ -44,7 +44,7 @@ import org.koin.androidx.compose.koinViewModel @Composable fun DetailScreen(objectId: Int, navigateBack: () -> Unit) { val viewModel: DetailViewModel = koinViewModel() - val obj by viewModel.museumObject.collectAsState() + val obj by viewModel.museumObject.collectAsStateWithLifecycle() LaunchedEffect(objectId) { viewModel.setId(objectId) diff --git a/composeApp/src/androidMain/kotlin/com/jetbrains/kmpapp/screens/ListScreen.kt b/composeApp/src/androidMain/kotlin/com/jetbrains/kmpapp/screens/ListScreen.kt index 19d5a77..cb36c82 100644 --- a/composeApp/src/androidMain/kotlin/com/jetbrains/kmpapp/screens/ListScreen.kt +++ b/composeApp/src/androidMain/kotlin/com/jetbrains/kmpapp/screens/ListScreen.kt @@ -21,13 +21,12 @@ import androidx.compose.foundation.lazy.grid.items import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.layout.ContentScale -import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp +import androidx.lifecycle.compose.collectAsStateWithLifecycle import coil3.compose.AsyncImage import com.jetbrains.kmpapp.data.MuseumObject import org.koin.androidx.compose.koinViewModel @@ -35,7 +34,7 @@ import org.koin.androidx.compose.koinViewModel @Composable fun ListScreen(navigateToDetails: (objectId: Int) -> Unit) { val viewModel: ListViewModel = koinViewModel() - val objects by viewModel.objects.collectAsState() + val objects by viewModel.objects.collectAsStateWithLifecycle() AnimatedContent(objects.isNotEmpty()) { objectsAvailable -> if (objectsAvailable) {