package com.craigvg.lichun_android.ui.screens.messaging.components import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.background import androidx.compose.foundation.border import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.MenuBook import androidx.compose.material.icons.filled.* import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector 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 /** * Relationship type indicator badge with icon and colored background. * Ported from iOS RelationshipBadge.swift */ @Composable fun RelationshipBadge( relationship: String, modifier: Modifier = Modifier ) { val rel = relationship.lowercase() val (icon, color) = relationshipIconAndColor(rel) val shape = RoundedCornerShape(10.dp) Row( modifier = modifier .background(color.copy(alpha = 0.2f), shape) .border(BorderStroke(1.dp, color.copy(alpha = 0.3f)), shape) .padding(horizontal = 8.dp, vertical = 4.dp), verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(4.dp) ) { Icon( imageVector = icon, contentDescription = null, tint = color, modifier = Modifier.size(10.dp) ) Text( text = relationship, style = AppTypography.small, color = AppColors.primaryText ) } } private fun relationshipIconAndColor(rel: String): Pair { return when { rel.contains("love") || rel.contains("romantic") -> Icons.Default.Favorite to AppColors.loveInterest rel.contains("friend") -> Icons.Default.People to AppColors.friend rel.contains("family") || rel.contains("parent") || rel.contains("sibling") -> Icons.Default.Home to AppColors.family rel.contains("colleague") || rel.contains("coworker") -> Icons.Default.Work to AppColors.acquaintance rel.contains("classmate") -> Icons.AutoMirrored.Filled.MenuBook to AppColors.acquaintance else -> Icons.Default.Person to AppColors.acquaintance } }