package core.presentation.components import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.size 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.Color import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import coil.compose.AsyncImage import core.presentation.theme.SoftSquareShape @Composable fun AppAvatar( url: String?, name: String, size: Dp = 48.dp, modifier: Modifier = Modifier ) { Box( modifier = modifier .size(size) .clip(SoftSquareShape) // Тот самый "мягкий квадрат" .background(MaterialTheme.colorScheme.primary.copy(alpha = 0.1f)), contentAlignment = Alignment.Center ) { if (url != null) { AsyncImage( model = url, contentDescription = name, modifier = Modifier.size(size), contentScale = ContentScale.Crop ) } else { // Заглушка, если нет аватара (первая буква имени) Text( text = name.take(1).uppercase(), color = MaterialTheme.colorScheme.primary, fontSize = (size.value * 0.4).sp, style = MaterialTheme.typography.titleMedium ) } } }