show message time

This commit is contained in:
2026-05-12 08:51:54 +07:00
parent 5e2dfd447f
commit 428a7ef7af
3 changed files with 71 additions and 15 deletions

View File

@@ -48,6 +48,7 @@ import org.jetbrains.compose.resources.painterResource
import rust.nostr.sdk.Event
import su.reya.coop.LocalNostrViewModel
import su.reya.coop.LocalSnackbarHostState
import su.reya.coop.humanReadable
import su.reya.coop.shared.displayNameFlow
import su.reya.coop.shared.pictureFlow
@@ -177,9 +178,9 @@ fun ChatMessage(
RoundedCornerShape(topStart = 20.dp, topEnd = 20.dp, bottomStart = 4.dp, bottomEnd = 20.dp)
}
val alignment = if (isMine) Alignment.CenterEnd else Alignment.CenterStart
val containerColor =
if (isMine) MaterialTheme.colorScheme.primaryContainer else MaterialTheme.colorScheme.secondaryContainer
val contentColor =
if (isMine) MaterialTheme.colorScheme.onPrimaryContainer else MaterialTheme.colorScheme.onSecondaryContainer
@@ -187,19 +188,26 @@ fun ChatMessage(
modifier = Modifier
.fillMaxWidth()
.padding(vertical = 4.dp),
contentAlignment = alignment
contentAlignment = if (isMine) Alignment.CenterEnd else Alignment.CenterStart
) {
Surface(
color = containerColor,
contentColor = contentColor,
shape = bubbleShape,
modifier = Modifier.widthIn(max = 280.dp)
) {
Column {
Text(
text = event.content(),
modifier = Modifier.padding(horizontal = 16.dp, vertical = 8.dp),
style = MaterialTheme.typography.bodyMedium
text = event.createdAt().humanReadable(),
style = MaterialTheme.typography.labelSmall,
)
Spacer(modifier = Modifier.size(4.dp))
Surface(
color = containerColor,
contentColor = contentColor,
shape = bubbleShape,
modifier = Modifier.widthIn(max = 280.dp)
) {
Text(
text = event.content(),
modifier = Modifier.padding(horizontal = 16.dp, vertical = 8.dp),
style = MaterialTheme.typography.bodyMedium
)
}
}
}
}

View File

@@ -5,6 +5,7 @@ import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
@@ -56,6 +57,7 @@ import org.jetbrains.compose.resources.painterResource
import su.reya.coop.LocalNostrViewModel
import su.reya.coop.LocalSnackbarHostState
import su.reya.coop.Room
import su.reya.coop.ago
import su.reya.coop.shared.displayNameFlow
import su.reya.coop.shared.pictureFlow
import su.reya.coop.short
@@ -265,10 +267,21 @@ fun ChatRoom(room: Room, onClick: () -> Unit) {
}
},
headlineContent = {
Text(
text = displayName ?: "Unknown",
style = MaterialTheme.typography.titleMediumEmphasized
)
Row(
modifier = Modifier.fillMaxWidth(),
verticalAlignment = Alignment.CenterVertically
) {
Text(
text = displayName,
style = MaterialTheme.typography.titleMediumEmphasized,
modifier = Modifier.weight(1f)
)
Text(
text = room.createdAt.ago(),
style = MaterialTheme.typography.bodySmall,
color = MaterialTheme.colorScheme.outline
)
}
},
supportingContent = {
if (!room.lastMessage.isNullOrBlank()) {