diff --git a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatDetailScreen.kt b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatDetailScreen.kt index 1c54294..6b02ccb 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatDetailScreen.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatDetailScreen.kt @@ -794,7 +794,10 @@ fun ChatDetailScreen( ) { // Reversed layout: item 0 = самое новое сообщение (внизу экрана) // messagesWithDates уже отсортирован новые->старые - itemsIndexed(messagesWithDates, key = { _, item -> item.first.id }) { + // Используем id + timestamp для уникальности ключа (защита от пустых id) + itemsIndexed(messagesWithDates, key = { index, item -> + item.first.id.ifEmpty { "msg_${item.first.timestamp.time}_$index" } + }) { index, (message, showDate) -> // Определяем, показывать ли хвостик (последнее сообщение в группе)