Skip to content

Instantly share code, notes, and snippets.

@skydoves
Last active August 1, 2022 05:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save skydoves/9ffd7dea4146470f19068a1ae67df762 to your computer and use it in GitHub Desktop.
Save skydoves/9ffd7dea4146470f19068a1ae67df762 to your computer and use it in GitHub Desktop.
message_topbar
@Composable
fun WhatsAppMessageTopBar(
viewModel: WhatsAppMessagesViewModel,
composeNavigator: AppComposeNavigator
) {
val messageUiState by viewModel.messageUiSate.collectAsState()
TopAppBar(
modifier = Modifier.fillMaxWidth(),
backgroundColor = MaterialTheme.colorScheme.primary,
elevation = 0.dp
) {
..
WhatsAppMessageUserInfo(messageUiState = messageUiState)
..
}
@Composable
private fun WhatsAppMessageUserInfo(
messageUiState: WhatsAppMessageUiState
) {
when (messageUiState) {
WhatsAppMessageUiState.Loading -> WhatsAppLoadingIndicator()
WhatsAppMessageUiState.Error -> Unit
is WhatsAppMessageUiState.Success -> {
GlideImage(
modifier = Modifier
.size(32.dp)
.clip(CircleShape),
imageModel = messageUiState.channel.image,
previewPlaceholder = io.getstream.whatsappclone.designsystem.R.drawable.placeholder
)
Text(
modifier = Modifier.padding(start = 12.dp),
text = messageUiState.channel.name,
color = MaterialTheme.colorScheme.tertiary,
style = MaterialTheme.typography.bodyLarge
)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment