feat(filters): чипы растворяются под кнопкой-категорией (fade left edge)
Кнопка-категории теперь ПОВЕРХ чипов (Box-оверлей), чипы идут во всю ширину с отступом слева под кнопку. У левого края — затухание прозрачности (Modifier. fadingStartEdge: graphicsLayer Offscreen + horizontalGradient BlendMode.DstIn), так чипы при прокрутке влево красиво уплывают под кнопку и растворяются, а не обрезаются. FilterChips/GenreSelector получили параметр contentPadding. Экраны Радио и Чарты.
This commit is contained in:
@@ -46,6 +46,7 @@ import com.radiola.domain.model.StatPoint
|
||||
import com.radiola.domain.model.TrackStats
|
||||
import com.radiola.ui.components.CategoryPicker
|
||||
import com.radiola.ui.components.EmptyState
|
||||
import com.radiola.ui.components.fadingStartEdge
|
||||
import com.radiola.ui.components.PopularityChart
|
||||
import com.radiola.ui.components.crossfadeModel
|
||||
import com.radiola.ui.components.serviceLogoRes
|
||||
@@ -102,19 +103,23 @@ fun ChartsScreen(
|
||||
// Фильтр по жанру (если бэкенд уже накопил жанры)
|
||||
if (genres.isNotEmpty()) {
|
||||
Spacer(Modifier.height(10.dp))
|
||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||
Box(modifier = Modifier.fillMaxWidth().height(44.dp)) {
|
||||
GenreSelector(
|
||||
genres = genres,
|
||||
selected = selectedGenre,
|
||||
onSelect = viewModel::selectGenre,
|
||||
contentPadding = PaddingValues(start = 70.dp, end = 20.dp),
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.align(Alignment.Center)
|
||||
.fadingStartEdge(62.dp)
|
||||
)
|
||||
CategoryPicker(
|
||||
title = "Стиль музыки",
|
||||
items = genres,
|
||||
selected = selectedGenre,
|
||||
onSelect = viewModel::selectGenre,
|
||||
modifier = Modifier.padding(start = 20.dp)
|
||||
)
|
||||
GenreSelector(
|
||||
genres = genres,
|
||||
selected = selectedGenre,
|
||||
onSelect = viewModel::selectGenre,
|
||||
modifier = Modifier.weight(1f)
|
||||
modifier = Modifier.align(Alignment.CenterStart).padding(start = 20.dp)
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -225,12 +230,13 @@ private fun GenreSelector(
|
||||
genres: List<String>,
|
||||
selected: String?,
|
||||
onSelect: (String?) -> Unit,
|
||||
modifier: Modifier = Modifier
|
||||
modifier: Modifier = Modifier,
|
||||
contentPadding: PaddingValues = PaddingValues(horizontal = 20.dp)
|
||||
) {
|
||||
LazyRow(
|
||||
modifier = modifier,
|
||||
horizontalArrangement = Arrangement.spacedBy(9.dp),
|
||||
contentPadding = PaddingValues(horizontal = 20.dp)
|
||||
contentPadding = contentPadding
|
||||
) {
|
||||
item {
|
||||
PeriodChip(
|
||||
|
||||
Reference in New Issue
Block a user