package com.craigvg.lichun_android.ui.screens.dating.components import androidx.compose.foundation.background import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Lock import androidx.compose.material3.* 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.Brush import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.craigvg.lichun_android.ui.theme.AppColors import com.craigvg.lichun_android.ui.theme.AppSpacing import com.craigvg.lichun_android.ui.theme.AppTypography /** * Age-gate placeholder shown when dating is not yet unlocked */ @Composable fun DatingLockedView( requiredAge: Int = 16, currentAge: Int, modifier: Modifier = Modifier ) { Box( modifier = modifier .fillMaxSize() .background( Brush.linearGradient( colors = listOf( AppColors.background, AppColors.primary.copy(alpha = 0.05f), AppColors.background ) ) ), contentAlignment = Alignment.Center ) { Column( horizontalAlignment = Alignment.CenterHorizontally, modifier = Modifier.padding(AppSpacing.xl) ) { Box( modifier = Modifier .size(100.dp) .clip(CircleShape) .background(AppColors.primary.copy(alpha = 0.1f)), contentAlignment = Alignment.Center ) { Icon( imageVector = Icons.Default.Lock, contentDescription = null, tint = AppColors.primary, modifier = Modifier.size(48.dp) ) } Spacer(modifier = Modifier.height(AppSpacing.lg)) Text( text = "Dating Locked", style = AppTypography.title, color = AppColors.primaryText ) Spacer(modifier = Modifier.height(AppSpacing.sm)) Text( text = "You need to be at least $requiredAge years old to start dating.", style = AppTypography.body, color = AppColors.secondaryText, textAlign = TextAlign.Center ) Spacer(modifier = Modifier.height(AppSpacing.md)) Card( shape = RoundedCornerShape(AppSpacing.cornerRadius), colors = CardDefaults.cardColors(containerColor = AppColors.surfaceElevated) ) { Column( modifier = Modifier.padding(AppSpacing.md), horizontalAlignment = Alignment.CenterHorizontally ) { Text( text = "Current Age", style = AppTypography.caption, color = AppColors.secondaryText ) Text( text = "$currentAge", fontSize = 32.sp, color = AppColors.primaryText ) Spacer(modifier = Modifier.height(AppSpacing.xs)) // Progress towards unlock val progress = (currentAge.toFloat() / requiredAge).coerceIn(0f, 1f) LinearProgressIndicator( progress = { progress }, modifier = Modifier .fillMaxWidth() .height(8.dp) .clip(RoundedCornerShape(4.dp)), color = AppColors.primary, trackColor = AppColors.primary.copy(alpha = 0.2f) ) Spacer(modifier = Modifier.height(AppSpacing.xs)) Text( text = "${requiredAge - currentAge} years until dating unlocks", style = AppTypography.caption, color = AppColors.primary ) } } } } }