all: switch to produceState where applicable

This commit is contained in:
Harsh Shandilya 2022-02-14 17:29:15 +05:30
parent 4aa26d80a6
commit 943ee382d8
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
2 changed files with 7 additions and 13 deletions

View file

@ -1,11 +1,8 @@
package dev.msfjarvis.claw.android.ui.lists
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.runtime.produceState
import androidx.compose.ui.Modifier
import dev.msfjarvis.claw.common.posts.LobstersCard
import dev.msfjarvis.claw.common.posts.PostActions
@ -18,8 +15,7 @@ fun ListItem(
postActions: PostActions,
modifier: Modifier = Modifier,
) {
var saved by remember(item) { mutableStateOf(false) }
LaunchedEffect(item) { saved = isSaved(item) }
val saved by produceState(false, item) { value = isSaved(item) }
LobstersCard(
post = item,
isSaved = saved,

View file

@ -10,11 +10,8 @@ import androidx.compose.material.CircularProgressIndicator
import androidx.compose.material.Divider
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.runtime.produceState
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
@ -45,9 +42,10 @@ fun CommentsPage(
getDetails: suspend (String) -> LobstersPostDetails,
modifier: Modifier = Modifier,
) {
var postDetails: NetworkState by remember { mutableStateOf(NetworkState.Loading) }
LaunchedEffect(postId) { postDetails = NetworkState.Success(getDetails(postId)) }
val postDetails by
produceState<NetworkState>(NetworkState.Loading) {
value = NetworkState.Success(getDetails(postId))
}
when (postDetails) {
is NetworkState.Success<*> -> {