change the click management on status summary
This commit is contained in:
parent
a73a352004
commit
38ae516704
2 changed files with 11 additions and 18 deletions
|
|
@ -15,7 +15,6 @@ import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.shape.CutCornerShape
|
import androidx.compose.foundation.shape.CutCornerShape
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.material.minimumInteractiveComponentSize
|
|
||||||
import androidx.compose.material3.Divider
|
import androidx.compose.material3.Divider
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
|
|
@ -182,9 +181,15 @@ fun SummaryIcon(
|
||||||
@DrawableRes icon: Int?,
|
@DrawableRes icon: Int?,
|
||||||
onClick: () -> Unit,
|
onClick: () -> Unit,
|
||||||
) {
|
) {
|
||||||
|
val localModifier = remember(icon) {
|
||||||
|
if (icon != null) {
|
||||||
|
Modifier.clickable(onClick = onClick)
|
||||||
|
} else {
|
||||||
|
Modifier
|
||||||
|
}
|
||||||
|
}
|
||||||
Box(
|
Box(
|
||||||
modifier = Modifier
|
modifier = localModifier
|
||||||
.clickable(enabled = icon != null, onClick = onClick)
|
|
||||||
.size(size = MaterialTheme.lexicon.dimens.summary.cell)
|
.size(size = MaterialTheme.lexicon.dimens.summary.cell)
|
||||||
.then(other = modifier),
|
.then(other = modifier),
|
||||||
contentAlignment = Alignment.Center,
|
contentAlignment = Alignment.Center,
|
||||||
|
|
|
||||||
|
|
@ -95,15 +95,6 @@ fun StatisticSummary(
|
||||||
onStatus: (Boolean) -> Unit,
|
onStatus: (Boolean) -> Unit,
|
||||||
onAlteration: (StatusSummaryUio.Status) -> Unit,
|
onAlteration: (StatusSummaryUio.Status) -> Unit,
|
||||||
) {
|
) {
|
||||||
val density = LocalDensity.current
|
|
||||||
|
|
||||||
val headerSize = remember {
|
|
||||||
mutableStateOf(IntSize.Zero)
|
|
||||||
}
|
|
||||||
val headerHeight = remember {
|
|
||||||
derivedStateOf { with(density) { headerSize.value.height.toDp() - 24.dp } }
|
|
||||||
}
|
|
||||||
|
|
||||||
Box(
|
Box(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(horizontal = 16.dp)
|
.padding(horizontal = 16.dp)
|
||||||
|
|
@ -113,10 +104,8 @@ fun StatisticSummary(
|
||||||
modifier = Modifier.verticalScroll(state = scrollState),
|
modifier = Modifier.verticalScroll(state = scrollState),
|
||||||
verticalArrangement = Arrangement.spacedBy(space = 8.dp),
|
verticalArrangement = Arrangement.spacedBy(space = 8.dp),
|
||||||
) {
|
) {
|
||||||
Spacer(
|
|
||||||
modifier = Modifier.height(height = headerHeight.value),
|
|
||||||
)
|
|
||||||
AnimatedVisibility(
|
AnimatedVisibility(
|
||||||
|
modifier = Modifier.padding(top = 96.dp + 8.dp),
|
||||||
visible = summary.statsVisibility.value,
|
visible = summary.statsVisibility.value,
|
||||||
enter = enterTransition(),
|
enter = enterTransition(),
|
||||||
) {
|
) {
|
||||||
|
|
@ -199,7 +188,6 @@ fun StatisticSummary(
|
||||||
AnimatedVisibility(
|
AnimatedVisibility(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.onSizeChanged { headerSize.value = it }
|
|
||||||
.background(brush = rememberHeaderBackgroundGradient())
|
.background(brush = rememberHeaderBackgroundGradient())
|
||||||
.padding(bottom = 16.dp, end = 3.dp),
|
.padding(bottom = 16.dp, end = 3.dp),
|
||||||
visible = summary.headerVisibility.value,
|
visible = summary.headerVisibility.value,
|
||||||
|
|
@ -237,8 +225,8 @@ private fun rememberHeaderBackgroundGradient(): Brush {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
@Preview(uiMode = Configuration.UI_MODE_NIGHT_NO, heightDp = 2000)
|
@Preview(uiMode = Configuration.UI_MODE_NIGHT_NO, heightDp = 1800)
|
||||||
@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES, heightDp = 2000)
|
@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES, heightDp = 1800)
|
||||||
fun StatisticSummaryPreview() {
|
fun StatisticSummaryPreview() {
|
||||||
LexiconTheme {
|
LexiconTheme {
|
||||||
Surface {
|
Surface {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue