rajesh
06/17/2021, 2:22 PMrajesh
06/17/2021, 2:23 PMfun ProfileScreen(profileViewModel: ProfileViewModel) {
Column {
ProfileView(profileViewModel)
Spacer(modifier = Modifier.padding(top = 8.dp))
PostView(profileViewModel)
}
}
fun ProfileView(profileViewModel: ProfileViewModel) {
val user by remember(profileViewModel) { profileViewModel.user }.collectAsState()
when (user) {
is UiState.Loading -> {
CircularProgressIndicator(
modifier = Modifier.wrapContentWidth(CenterHorizontally)
)
}
is UiState.Success -> {
(user as UiState.Success).data?.let { user ->
Scaffold(
topBar = { ProfileAppBar(user) }
) { innerPadding ->
val modifier = Modifier.padding(innerPadding)
Column(modifier = modifier) {
UserInfo(user = user)
Spacer(modifier = Modifier.padding(top = 10.dp))
}
}
}
}
}
}
fun PostView(profileViewModel: ProfileViewModel) {
val posts by remember(profileViewModel) { profileViewModel.posts }.collectAsState()
when (posts) {
is UiState.Loading -> {
CircularProgressIndicator(
modifier = Modifier.wrapContentWidth(CenterHorizontally)
)
}
is UiState.Success -> {
(posts as UiState.Success).data?.let { posts ->
lazyGridFor(posts) { post, index ->
GridItem(post = post) {
}
}
}
}
}
}
Erlan Amanatov
06/17/2021, 3:13 PMrajesh
06/17/2021, 3:14 PM