package com.craigvg.lichun_android.ui.screens.dating.components import androidx.compose.foundation.background import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Favorite 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.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 /** * Compatibility score badge displayed on profile cards */ @Composable fun CompatibilityBadge( score: Int, modifier: Modifier = Modifier, style: CompatibilityBadgeStyle = CompatibilityBadgeStyle.DEFAULT ) { val badgeColor = when { score >= 80 -> AppColors.success score >= 60 -> AppColors.primary score >= 40 -> AppColors.warning else -> AppColors.secondaryText } when (style) { CompatibilityBadgeStyle.DEFAULT -> { Row( verticalAlignment = Alignment.CenterVertically, modifier = modifier ) { Icon( imageVector = Icons.Default.Favorite, contentDescription = null, tint = badgeColor, modifier = Modifier.size(20.dp) ) Spacer(modifier = Modifier.width(4.dp)) Text( text = "$score% Compatible", style = AppTypography.captionBold, color = badgeColor ) } } CompatibilityBadgeStyle.COMPACT -> { Box( modifier = modifier .clip(RoundedCornerShape(AppSpacing.smallCornerRadius)) .background(badgeColor) .padding(horizontal = 8.dp, vertical = 4.dp) ) { Text( text = "$score%", style = AppTypography.captionBold, color = Color.White ) } } } } enum class CompatibilityBadgeStyle { DEFAULT, COMPACT }