Приложение
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
package stories.presentation.components
|
||||
|
||||
import androidx.compose.foundation.border
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
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.Brush
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import core.presentation.components.AppAvatar
|
||||
import core.presentation.theme.SoftSquareShape
|
||||
|
||||
@Composable
|
||||
fun StoryThumbnail(
|
||||
username: String,
|
||||
avatarUrl: String?,
|
||||
hasUnseen: Boolean,
|
||||
onClick: () -> Unit
|
||||
) {
|
||||
val gradientBrush = Brush.sweepGradient(
|
||||
colors = listOf(Color.Cyan, Color.Magenta, Color.Yellow, Color.Cyan)
|
||||
)
|
||||
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.padding(8.dp)
|
||||
.clickable(onClick = onClick),
|
||||
horizontalAlignment = Alignment.CenterHorizontally
|
||||
) {
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.size(72.dp)
|
||||
.padding(4.dp)
|
||||
.then(
|
||||
if (hasUnseen) Modifier.border(3.dp, gradientBrush, SoftSquareShape)
|
||||
else Modifier.border(1.dp, Color.Gray, SoftSquareShape)
|
||||
),
|
||||
contentAlignment = Alignment.Center
|
||||
) {
|
||||
AppAvatar(
|
||||
url = avatarUrl,
|
||||
name = username,
|
||||
size = 60.dp,
|
||||
modifier = Modifier.padding(2.dp)
|
||||
)
|
||||
}
|
||||
|
||||
Spacer(modifier = Modifier.height(4.dp))
|
||||
|
||||
Text(
|
||||
text = username,
|
||||
fontSize = 11.sp,
|
||||
maxLines = 1,
|
||||
color = MaterialTheme.colorScheme.onSurface
|
||||
)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user