This commit is contained in:
Eric85710 2026-05-15 18:09:51 +08:00
parent c22bbbcaa0
commit e64b4a05b5
2 changed files with 25 additions and 22 deletions

View file

@ -255,7 +255,7 @@ fun Loaded_Tg_Message(
modifier = Modifier modifier = Modifier
.fillMaxSize() .fillMaxSize()
) { ) {
Spacer(modifier = Modifier.height(20.dp)) Spacer(modifier = Modifier.height(10.dp))
if (rooms.isEmpty()) { if (rooms.isEmpty()) {
// 顯示空狀態或 Loading (這部分可根據需求擴充) // 顯示空狀態或 Loading (這部分可根據需求擴充)
@ -381,6 +381,8 @@ fun RoomItem(
overflow = TextOverflow.Ellipsis overflow = TextOverflow.Ellipsis
) )
Spacer(modifier = Modifier.width(6.dp))
if (room.unreadCount > 0) { if (room.unreadCount > 0) {
Badge( Badge(
containerColor = Color(0xFFDA7029), // 使用你的主橘色 containerColor = Color(0xFFDA7029), // 使用你的主橘色
@ -397,27 +399,23 @@ fun RoomItem(
Spacer(modifier = Modifier.width(2.dp)) Spacer(modifier = Modifier.width(2.dp))
} }
// 3. 右側:時間與未讀計數
Column(
verticalArrangement = Arrangement.Center
) {
val partner = room.partner // 先從 room 取得 partner
if (partner != null) { //online status
val status = UserStatus.fromString(partner.status) val partner = room.partner // 先從 room 取得 partner
if (status != UserStatus.UNKNOWN) { if (partner != null) {
Canvas( val status = UserStatus.fromString(partner.status)
modifier = Modifier if (status != UserStatus.UNKNOWN) {
.size(14.dp) Box(
// 注意:在 Column 中 Alignment.BottomEnd 可能不適用 modifier = Modifier
// 如果你要讓點跟在文字旁邊,建議用 Box 或是調整 Alignment .size(14.dp)
.border(2.dp, Color.White, CircleShape) .background(status.color, CircleShape) // 直接設定圓形背景
) { .border(2.dp, Color.White, CircleShape) // 白色外圈邊線
drawCircle(color = status.color) )
}
}
} }
} }
Spacer(modifier = Modifier.width(10.dp))
} }
@ -441,4 +439,4 @@ enum class UserStatus(val color: Color) {
} }
} }
} }
} }

View file

@ -27,9 +27,14 @@ class ChatRoomsViewModel @Inject constructor(
val result = repository.fetchRooms() val result = repository.fetchRooms()
result.onSuccess { response -> result.onSuccess { response ->
_roomsState.value = response.rooms _roomsState.value = response.rooms
// 打印偵錯訊息
response.rooms.forEach { room ->
val status = room.partner?.status
val name = room.partner?.displayName
}
}.onFailure { error -> }.onFailure { error ->
// 這裡非常重要! Log.e("ChatRoomsViewModel", "Fetch failed", error)
Log.e("Technologia", "讀取失敗!原因:${error.message}", error)
} }
} }
} }