fix: fix message bubble
This commit is contained in:
@@ -80,7 +80,8 @@ fun TelegramStyleMessageContent(
|
||||
textContent: @Composable () -> Unit,
|
||||
timeContent: @Composable () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
spacing: Int = 10
|
||||
spacing: Int = 10,
|
||||
fillWidth: Boolean = false // 🔥 Если true - время всегда справа на всю ширину контейнера
|
||||
) {
|
||||
val density = LocalDensity.current
|
||||
val spacingPx = with(density) { spacing.dp.roundToPx() }
|
||||
@@ -115,7 +116,14 @@ fun TelegramStyleMessageContent(
|
||||
|
||||
// Определяем layout
|
||||
val (width, height, timeX, timeY) =
|
||||
if (!textWraps && totalSingleLineWidth <= constraints.maxWidth) {
|
||||
if (fillWidth) {
|
||||
// 🔥 Для caption - занимаем всю доступную ширину, время справа на одной линии
|
||||
val w = constraints.maxWidth
|
||||
val h = maxOf(textPlaceable.height, timePlaceable.height)
|
||||
val tX = w - timeWidth // Время справа
|
||||
val tY = h - timePlaceable.height // Время внизу строки (выровнено по baseline)
|
||||
LayoutResult(w, h, tX, tY)
|
||||
} else if (!textWraps && totalSingleLineWidth <= constraints.maxWidth) {
|
||||
// Текст и время на одной строке
|
||||
val w = totalSingleLineWidth
|
||||
val h = maxOf(textPlaceable.height, timePlaceable.height)
|
||||
@@ -584,6 +592,7 @@ fun MessageBubble(
|
||||
Box(
|
||||
modifier =
|
||||
Modifier
|
||||
.fillMaxWidth() // 🔥 Растягиваем на ширину фото для правильного позиционирования времени
|
||||
.background(bubbleColor)
|
||||
.padding(
|
||||
start = captionPaddingStart,
|
||||
@@ -627,7 +636,8 @@ fun MessageBubble(
|
||||
}
|
||||
}
|
||||
},
|
||||
spacing = 8
|
||||
spacing = 8,
|
||||
fillWidth = true // 🔥 Время справа на всю ширину фото
|
||||
)
|
||||
}
|
||||
} else if (message.attachments.isNotEmpty() && message.text.isNotEmpty()) {
|
||||
|
||||
Reference in New Issue
Block a user