From c7d94653ecc4881f8ad996ad03f8b1fde08d97e1 Mon Sep 17 00:00:00 2001 From: fankesyooni Date: Wed, 15 Nov 2023 23:23:22 +0800 Subject: [PATCH] refactor: adjust the priority of Modifier --- .../kotlin/com/highcapable/flexiui/component/Button.kt | 5 +++-- .../kotlin/com/highcapable/flexiui/component/CheckBox.kt | 2 +- .../com/highcapable/flexiui/component/RadioButton.kt | 2 +- .../kotlin/com/highcapable/flexiui/component/Slider.kt | 3 ++- .../kotlin/com/highcapable/flexiui/component/Surface.kt | 9 ++++++--- .../kotlin/com/highcapable/flexiui/component/Switch.kt | 2 +- .../com/highcapable/flexiui/component/TextField.kt | 4 ++-- 7 files changed, 16 insertions(+), 11 deletions(-) diff --git a/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/Button.kt b/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/Button.kt index e073d3c..819edfe 100644 --- a/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/Button.kt +++ b/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/Button.kt @@ -87,10 +87,11 @@ fun Button( backgroundColor = Color.Transparent ) Box( - modifier = modifier.status(enabled) + modifier = Modifier.status(enabled) .clip(style.shape) .background(colors.backgroundColor, style.shape) .borderOrNot(style.border, style.shape) + .then(modifier) .rippleClickable( enabled = enabled, role = Role.Button, @@ -104,7 +105,7 @@ fun Button( LocalProgressIndicatorColors provides localProgressIndicatorColors ) { Row( - Modifier.padding( + modifier = Modifier.padding( top = style.topPadding.orElse() ?: style.padding, start = style.startPadding.orElse() ?: style.padding, bottom = style.bottomPadding.orElse() ?: style.padding, diff --git a/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/CheckBox.kt b/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/CheckBox.kt index b57d090..3d924d1 100644 --- a/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/CheckBox.kt +++ b/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/CheckBox.kt @@ -94,7 +94,7 @@ fun CheckBox( val animatedContentScale by animateFloatAsState(if (hovered) style.hoveredGain else 1f) val animatedContentAlpha by animateFloatAsState(if (checked) 1f else 0f) val animatedContentLayer by animateFloatAsState(if (checked) 1f else 0f) - Row(modifier = modifier.status(enabled), verticalAlignment = Alignment.CenterVertically) { + Row(modifier = Modifier.status(enabled).then(modifier), verticalAlignment = Alignment.CenterVertically) { Box( modifier = Modifier.clickable( interactionSource = interactionSource, diff --git a/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/RadioButton.kt b/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/RadioButton.kt index 5af2ce4..ff819ce 100644 --- a/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/RadioButton.kt +++ b/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/RadioButton.kt @@ -95,7 +95,7 @@ fun RadioButton( val animatedContentScale by animateFloatAsState(if (hovered) style.hoveredGain else 1f) val animatedContentShadow by animateDpAsState(if (selected) style.contentShadowSize else 0.dp) val animatedContentAlpha by animateFloatAsState(if (selected) 1f else 0f) - Row(modifier = modifier.status(enabled), verticalAlignment = Alignment.CenterVertically) { + Row(modifier = Modifier.status(enabled).then(modifier), verticalAlignment = Alignment.CenterVertically) { Box( modifier = Modifier.clickable( interactionSource = interactionSource, diff --git a/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/Slider.kt b/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/Slider.kt index af5125f..100196b 100644 --- a/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/Slider.kt +++ b/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/Slider.kt @@ -211,7 +211,8 @@ fun Slider( ) } Box( - modifier = modifier.status(enabled) + modifier = Modifier.status(enabled) + .then(modifier) .hoverable(interactionSource, enabled) .pointerInput(Unit) { if (enabled) detectTapGestures( diff --git a/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/Surface.kt b/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/Surface.kt index 5b93886..996efda 100644 --- a/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/Surface.kt +++ b/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/Surface.kt @@ -67,11 +67,14 @@ fun Surface( backgroundPrimary = colors.backgroundColor, textPrimary = colors.contentColor ) - ) { Box(modifier.surface(colors, style), content = content) } + ) { Box(Modifier.surface(colors, style).then(modifier), content = content) } } -private fun Modifier.surface(colors: SurfaceColors, style: SurfaceStyle) = - background(colors.backgroundColor).padding( +private fun Modifier.surface( + colors: SurfaceColors, + style: SurfaceStyle +) = background(colors.backgroundColor) + .padding( top = style.topPadding.orElse() ?: style.padding, start = style.startPadding.orElse() ?: style.padding, bottom = style.bottomPadding.orElse() ?: style.padding, diff --git a/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/Switch.kt b/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/Switch.kt index fe35f9c..6d01c7c 100644 --- a/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/Switch.kt +++ b/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/Switch.kt @@ -181,7 +181,7 @@ fun Switch( ) ) } - Row(modifier = modifier.status(enabled)) { + Row(modifier = Modifier.status(enabled).then(modifier)) { Box( modifier = Modifier.padding(end = contentSpacing) .clickable(enabled = enabled) { onCheckedChange(!checked) } diff --git a/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/TextField.kt b/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/TextField.kt index eef1916..9152d64 100644 --- a/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/TextField.kt +++ b/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/TextField.kt @@ -237,13 +237,13 @@ private fun TextFieldDecorationBox( else -> style.borderInactive }.copy(animatedBorderWidth, SolidColor(animatedBorderColor)) Box( - modifier.textField( + Modifier.textField( colors = colors, style = style, border = border, enabled = enabled, interactionSource = interactionSource - ) + ).then(modifier) ) { Row { header()