fixed tag overflow, detail page padding
This commit is contained in:
@@ -269,7 +269,6 @@ fun MainContent(
|
|||||||
onQueryChange = onQueryChange,
|
onQueryChange = onQueryChange,
|
||||||
loadSearchResult = loadSearchResult,
|
loadSearchResult = loadSearchResult,
|
||||||
openGallery = {
|
openGallery = {
|
||||||
Log.d("PUPILD", "openGallery: ${it.id}")
|
|
||||||
navController.navigate(MainDestination.ImageViewer(it.id).route) {
|
navController.navigate(MainDestination.ImageViewer(it.id).route) {
|
||||||
launchSingleTop = true
|
launchSingleTop = true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import androidx.compose.foundation.layout.BoxWithConstraints
|
|||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.PaddingValues
|
import androidx.compose.foundation.layout.PaddingValues
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
|
import androidx.compose.foundation.layout.RowScope
|
||||||
import androidx.compose.foundation.layout.Spacer
|
import androidx.compose.foundation.layout.Spacer
|
||||||
import androidx.compose.foundation.layout.WindowInsets
|
import androidx.compose.foundation.layout.WindowInsets
|
||||||
import androidx.compose.foundation.layout.absoluteOffset
|
import androidx.compose.foundation.layout.absoluteOffset
|
||||||
@@ -190,7 +191,14 @@ fun TagChip(
|
|||||||
onClick: (SearchQuery.Tag) -> Unit = { },
|
onClick: (SearchQuery.Tag) -> Unit = { },
|
||||||
leftIcon: @Composable (SearchQuery.Tag) -> Unit = { TagChipIcon(it) },
|
leftIcon: @Composable (SearchQuery.Tag) -> Unit = { TagChipIcon(it) },
|
||||||
rightIcon: @Composable (SearchQuery.Tag) -> Unit = { Spacer(Modifier.width(16.dp)) },
|
rightIcon: @Composable (SearchQuery.Tag) -> Unit = { Spacer(Modifier.width(16.dp)) },
|
||||||
content: @Composable (SearchQuery.Tag) -> Unit = { Text(it.tag) },
|
content: @Composable RowScope.(SearchQuery.Tag) -> Unit = {
|
||||||
|
Text(
|
||||||
|
it.tag,
|
||||||
|
modifier = Modifier
|
||||||
|
.weight(1f, fill = false)
|
||||||
|
.horizontalScroll(rememberScrollState())
|
||||||
|
)
|
||||||
|
},
|
||||||
) {
|
) {
|
||||||
val surfaceColor = if (isFavorite) Yellow400 else when (tag.namespace) {
|
val surfaceColor = if (isFavorite) Yellow400 else when (tag.namespace) {
|
||||||
"male" -> Blue600
|
"male" -> Blue600
|
||||||
@@ -513,7 +521,7 @@ fun DetailScreen(
|
|||||||
|
|
||||||
Column(
|
Column(
|
||||||
Modifier
|
Modifier
|
||||||
.padding(8.dp)
|
.padding(horizontal = 8.dp)
|
||||||
.verticalScroll(rememberScrollState()),
|
.verticalScroll(rememberScrollState()),
|
||||||
verticalArrangement = Arrangement.spacedBy(16.dp)
|
verticalArrangement = Arrangement.spacedBy(16.dp)
|
||||||
) {
|
) {
|
||||||
@@ -526,14 +534,18 @@ fun DetailScreen(
|
|||||||
|
|
||||||
Row(Modifier.fillMaxWidth()) {
|
Row(Modifier.fillMaxWidth()) {
|
||||||
FilledTonalButton(
|
FilledTonalButton(
|
||||||
modifier = Modifier.weight(1f).padding(horizontal = 4.dp),
|
modifier = Modifier
|
||||||
|
.weight(1f)
|
||||||
|
.padding(horizontal = 4.dp),
|
||||||
onClick = { /*TODO*/ }
|
onClick = { /*TODO*/ }
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.download))
|
Text(stringResource(R.string.download))
|
||||||
}
|
}
|
||||||
|
|
||||||
Button(
|
Button(
|
||||||
modifier = Modifier.weight(1f).padding(horizontal = 4.dp),
|
modifier = Modifier
|
||||||
|
.weight(1f)
|
||||||
|
.padding(horizontal = 4.dp),
|
||||||
onClick = { openGallery(galleryInfo) }
|
onClick = { openGallery(galleryInfo) }
|
||||||
) {
|
) {
|
||||||
Text("Open")
|
Text("Open")
|
||||||
@@ -569,9 +581,11 @@ fun SearchScreen(
|
|||||||
) {
|
) {
|
||||||
val itemsPerPage by remember { mutableIntStateOf(20) }
|
val itemsPerPage by remember { mutableIntStateOf(20) }
|
||||||
|
|
||||||
val pageToRange: (Int) -> IntRange = remember(itemsPerPage) {{ page ->
|
val pageToRange: (Int) -> IntRange = remember(itemsPerPage) {
|
||||||
page * itemsPerPage ..< (page+1) * itemsPerPage
|
{ page ->
|
||||||
}}
|
page * itemsPerPage..<(page + 1) * itemsPerPage
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
val currentPage = remember(uiState) {
|
val currentPage = remember(uiState) {
|
||||||
if (uiState.currentRange != IntRange.EMPTY) {
|
if (uiState.currentRange != IntRange.EMPTY) {
|
||||||
@@ -585,9 +599,11 @@ fun SearchScreen(
|
|||||||
} else 0
|
} else 0
|
||||||
}
|
}
|
||||||
|
|
||||||
val loadResult: (Int) -> Unit = remember(loadSearchResult) {{ page ->
|
val loadResult: (Int) -> Unit = remember(loadSearchResult) {
|
||||||
loadSearchResult(pageToRange(page))
|
{ page ->
|
||||||
}}
|
loadSearchResult(pageToRange(page))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
LaunchedEffect(uiState.query) { loadSearchResult(pageToRange(currentPage)) }
|
LaunchedEffect(uiState.query) { loadSearchResult(pageToRange(currentPage)) }
|
||||||
|
|
||||||
@@ -652,4 +668,3 @@ fun SearchScreen(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user