refactor: replace HomeNavItem with LibraryUiModel in LibrariesScreen and related components

This commit is contained in:
2026-04-29 17:40:51 +02:00
parent bd5e43114b
commit 5595a15820
4 changed files with 14 additions and 23 deletions

View File

@@ -22,7 +22,6 @@ import hu.bbara.purefin.feature.browse.home.AppViewModel
import hu.bbara.purefin.navigation.LocalNavigationManager import hu.bbara.purefin.navigation.LocalNavigationManager
import hu.bbara.purefin.ui.screen.download.DownloadsScreen import hu.bbara.purefin.ui.screen.download.DownloadsScreen
import hu.bbara.purefin.ui.screen.home.HomeScreen import hu.bbara.purefin.ui.screen.home.HomeScreen
import hu.bbara.purefin.ui.screen.home.components.HomeNavItem
import hu.bbara.purefin.ui.screen.libraries.LibrariesScreen import hu.bbara.purefin.ui.screen.libraries.LibrariesScreen
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
@@ -44,14 +43,6 @@ fun AppScreen(
val currentRoute = backStack.lastOrNull() ?: AppTabRoute.Home val currentRoute = backStack.lastOrNull() ?: AppTabRoute.Home
val selectedTab = currentRoute.toTabIndex() val selectedTab = currentRoute.toTabIndex()
val libraryNavItems = libraries.map {
HomeNavItem(
id = it.id,
label = it.name,
posterUrl = it.posterUrl
)
}
LifecycleResumeEffect(Unit) { LifecycleResumeEffect(Unit) {
viewModel.onResumed() viewModel.onResumed()
onPauseOrDispose { } onPauseOrDispose { }
@@ -93,8 +84,8 @@ fun AppScreen(
} }
entry<AppTabRoute.Libraries>(metadata = appTabMetadata(AppTabRoute.Libraries)) { entry<AppTabRoute.Libraries>(metadata = appTabMetadata(AppTabRoute.Libraries)) {
LibrariesScreen( LibrariesScreen(
items = libraryNavItems, items = libraries,
onLibrarySelected = { item -> viewModel.onLibrarySelected(item.id, item.label) }, onLibrarySelected = { item -> viewModel.onLibrarySelected(item.id, item.name) },
selectedTab = selectedTab, selectedTab = selectedTab,
onTabSelected = onTabSelected, onTabSelected = onTabSelected,
modifier = Modifier.fillMaxSize() modifier = Modifier.fillMaxSize()

View File

@@ -6,15 +6,15 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import hu.bbara.purefin.ui.model.LibraryUiModel
import hu.bbara.purefin.ui.screen.AppBottomBar import hu.bbara.purefin.ui.screen.AppBottomBar
import hu.bbara.purefin.ui.screen.home.components.HomeNavItem
import hu.bbara.purefin.ui.screen.libraries.components.LibrariesContent import hu.bbara.purefin.ui.screen.libraries.components.LibrariesContent
import hu.bbara.purefin.ui.screen.library.components.LibraryTopBar import hu.bbara.purefin.ui.screen.library.components.LibraryTopBar
@Composable @Composable
fun LibrariesScreen( fun LibrariesScreen(
items: List<HomeNavItem>, items: List<LibraryUiModel>,
onLibrarySelected: (HomeNavItem) -> Unit, onLibrarySelected: (LibraryUiModel) -> Unit,
selectedTab: Int, selectedTab: Int,
onTabSelected: (Int) -> Unit, onTabSelected: (Int) -> Unit,
modifier: Modifier = Modifier modifier: Modifier = Modifier

View File

@@ -9,12 +9,12 @@ import androidx.compose.foundation.lazy.grid.items
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import hu.bbara.purefin.ui.screen.home.components.HomeNavItem import hu.bbara.purefin.ui.model.LibraryUiModel
@Composable @Composable
fun LibrariesContent( fun LibrariesContent(
items: List<HomeNavItem>, items: List<LibraryUiModel>,
onLibrarySelected: (HomeNavItem) -> Unit, onLibrarySelected: (LibraryUiModel) -> Unit,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
) { ) {
LazyVerticalGrid( LazyVerticalGrid(
@@ -26,7 +26,7 @@ fun LibrariesContent(
) { ) {
items(items, key = { it.id }) { item -> items(items, key = { it.id }) { item ->
LibraryListItem( LibraryListItem(
item = item, uiModel = item,
modifier = Modifier.clickable { modifier = Modifier.clickable {
onLibrarySelected(item) onLibrarySelected(item)
} }

View File

@@ -11,18 +11,18 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clip
import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import hu.bbara.purefin.ui.screen.home.components.HomeNavItem
import hu.bbara.purefin.ui.common.image.PurefinAsyncImage import hu.bbara.purefin.ui.common.image.PurefinAsyncImage
import hu.bbara.purefin.ui.model.LibraryUiModel
@Composable @Composable
fun LibraryListItem( fun LibraryListItem(
item: HomeNavItem, uiModel: LibraryUiModel,
modifier: Modifier = Modifier modifier: Modifier = Modifier
) { ) {
Column(modifier = modifier.fillMaxWidth()) { Column(modifier = modifier.fillMaxWidth()) {
PurefinAsyncImage( PurefinAsyncImage(
model = item.posterUrl, model = uiModel.posterUrl,
contentDescription = item.label, contentDescription = uiModel.name,
contentScale = ContentScale.Inside, contentScale = ContentScale.Inside,
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
@@ -30,7 +30,7 @@ fun LibraryListItem(
.clip(RoundedCornerShape(24.dp)) .clip(RoundedCornerShape(24.dp))
) )
Text( Text(
text = item.label, text = uiModel.name,
style = MaterialTheme.typography.displaySmall style = MaterialTheme.typography.displaySmall
) )
} }