chore(common): add imports for NetworkState subclasses

This commit is contained in:
Harsh Shandilya 2022-09-18 22:15:58 +05:30
parent f69c569406
commit 3335c79591
No known key found for this signature in database

View file

@ -18,6 +18,9 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import dev.msfjarvis.claw.common.NetworkState import dev.msfjarvis.claw.common.NetworkState
import dev.msfjarvis.claw.common.NetworkState.Error
import dev.msfjarvis.claw.common.NetworkState.Loading
import dev.msfjarvis.claw.common.NetworkState.Success
import dev.msfjarvis.claw.common.posts.PostActions import dev.msfjarvis.claw.common.posts.PostActions
import dev.msfjarvis.claw.common.ui.NetworkError import dev.msfjarvis.claw.common.ui.NetworkError
import dev.msfjarvis.claw.common.ui.ProgressBar import dev.msfjarvis.claw.common.ui.ProgressBar
@ -72,25 +75,25 @@ fun CommentsPage(
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
) { ) {
val postDetails by val postDetails by
produceState<NetworkState>(NetworkState.Loading) { produceState<NetworkState>(Loading) {
runCatching { getDetails(postId) } runCatching { getDetails(postId) }
.fold( .fold(
onSuccess = { details -> value = NetworkState.Success(details) }, onSuccess = { details -> value = Success(details) },
onFailure = { value = NetworkState.Error("Failed to load comments") } onFailure = { value = Error("Failed to load comments") }
) )
} }
when (postDetails) { when (postDetails) {
is NetworkState.Success<*> -> { is Success<*> -> {
CommentsPageInternal( CommentsPageInternal(
(postDetails as NetworkState.Success<ExtendedPostDetails>).data, (postDetails as Success<ExtendedPostDetails>).data,
postActions, postActions,
modifier.fillMaxSize(), modifier.fillMaxSize(),
) )
} }
is NetworkState.Error -> { is Error -> {
NetworkError((postDetails as NetworkState.Error).message) NetworkError((postDetails as Error).message)
} }
NetworkState.Loading -> ProgressBar(modifier) Loading -> ProgressBar(modifier)
} }
} }