feat(search): update genre selection to support multiple selections in SearchScreen

This commit is contained in:
2026-05-02 21:38:56 +02:00
parent f957098369
commit ae4c2b34f4
3 changed files with 59 additions and 43 deletions

View File

@@ -1,6 +1,7 @@
package hu.bbara.purefin.ui.screen.libraries.components
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.BoxWithConstraints
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.lazy.grid.GridCells
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
@@ -16,9 +17,11 @@ fun LibrariesContent(
onLibrarySelected: (LibraryUiModel) -> Unit,
modifier: Modifier = Modifier,
) {
BoxWithConstraints(modifier = modifier) {
val minCellSize = if (maxWidth >= 600.dp) 220.dp else 160.dp
LazyVerticalGrid(
modifier = modifier,
columns = GridCells.Adaptive(minSize = 160.dp),
columns = GridCells.Adaptive(minSize = minCellSize),
contentPadding = PaddingValues(16.dp),
horizontalArrangement = Arrangement.spacedBy(16.dp),
verticalArrangement = Arrangement.spacedBy(16.dp),
@@ -31,3 +34,4 @@ fun LibrariesContent(
}
}
}
}

View File

@@ -2,6 +2,7 @@ package hu.bbara.purefin.ui.screen.library
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.BoxWithConstraints
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.fillMaxSize
@@ -67,12 +68,14 @@ internal fun LibraryPosterGrid(
modifier: Modifier = Modifier,
viewModel: LibraryViewModel = hiltViewModel()
) {
BoxWithConstraints(modifier = modifier.background(MaterialTheme.colorScheme.background)) {
val minCellSize = if (maxWidth >= 600.dp) 220.dp else 120.dp
LazyVerticalGrid(
columns = GridCells.Adaptive(minSize = 120.dp),
columns = GridCells.Adaptive(minSize = minCellSize),
contentPadding = PaddingValues(16.dp),
horizontalArrangement = Arrangement.spacedBy(16.dp),
verticalArrangement = Arrangement.spacedBy(16.dp),
modifier = modifier.background(MaterialTheme.colorScheme.background)
) {
items(libraryItems, key = { item -> item.id }) { item ->
MediaImageCard(
@@ -104,3 +107,4 @@ internal fun LibraryPosterGrid(
}
}
}
}

View File

@@ -1,7 +1,8 @@
package hu.bbara.purefin.ui.screen.library.components
import androidx.compose.material.icons.automirrored.outlined.ArrowBack
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.outlined.ArrowBack
import androidx.compose.material.icons.outlined.FilterAlt
import androidx.compose.runtime.Composable
import hu.bbara.purefin.ui.screen.home.components.DefaultTopBar
import hu.bbara.purefin.ui.screen.home.components.DefaultTopBarIconButton
@@ -17,6 +18,13 @@ fun LibraryTopBar(
contentDescription = "Back",
onClick = onBack,
)
},
rightActions = {
DefaultTopBarIconButton(
imageVector = Icons.Outlined.FilterAlt,
contentDescription = "Search",
onClick = {},
)
}
)
}