Files
forkmessager/client-mobile/core/presentation/components/AppAvatar.kt
Халимов Рустам 1fb1be47dd Приложение
2026-04-14 01:15:54 +03:00

51 lines
1.6 KiB
Kotlin

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
)
}
}
}