package com.craigvg.lichun_android.ui.components.messaging import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.widthIn import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp import com.craigvg.lichun_android.ui.theme.AppColors import com.craigvg.lichun_android.ui.theme.AppSpacing import com.craigvg.lichun_android.ui.theme.AppTypography @Composable fun CozyMessageBubble( message: String, isFromPlayer: Boolean, modifier: Modifier = Modifier, timestamp: String? = null ) { val bubbleColor = if (isFromPlayer) AppColors.playerBubble else AppColors.npcBubble val textColor = if (isFromPlayer) Color.White else AppColors.primaryText val corner = AppSpacing.cornerRadius val smallCorner = 4.dp val shape = if (isFromPlayer) { RoundedCornerShape(corner, corner, smallCorner, corner) } else { RoundedCornerShape(corner, corner, corner, smallCorner) } Row( modifier = modifier.fillMaxWidth(), horizontalArrangement = if (isFromPlayer) Arrangement.End else Arrangement.Start ) { Column( modifier = Modifier .widthIn(max = 280.dp) .clip(shape) .background(bubbleColor) .padding(horizontal = AppSpacing.sm, vertical = AppSpacing.xs) ) { Text(text = message, style = AppTypography.body, color = textColor) timestamp?.let { Text( text = it, style = AppTypography.micro, color = textColor.copy(alpha = 0.7f), modifier = Modifier.padding(top = 2.dp) ) } } } }