mirror of
https://github.com/BetterAndroid/FlexiUI.git
synced 2025-09-07 19:14:12 +08:00
refactor: make content optional
This commit is contained in:
@@ -32,8 +32,9 @@ import androidx.compose.foundation.interaction.collectIsHoveredAsState
|
||||
import androidx.compose.foundation.interaction.collectIsPressedAsState
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.RowScope
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.Immutable
|
||||
@@ -85,7 +86,7 @@ fun CheckBox(
|
||||
style: CheckBoxStyle = CheckBox.style,
|
||||
enabled: Boolean = true,
|
||||
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
|
||||
content: @Composable () -> Unit = {}
|
||||
content: @Composable (RowScope.() -> Unit)? = null
|
||||
) {
|
||||
val hovered by interactionSource.collectIsHoveredAsState()
|
||||
val pressed by interactionSource.collectIsPressedAsState()
|
||||
@@ -120,10 +121,12 @@ fun CheckBox(
|
||||
tint = colors.contentColor
|
||||
)
|
||||
}
|
||||
Box(
|
||||
modifier = Modifier.padding(start = style.contentSpacing)
|
||||
.clickable(enabled = enabled) { onCheckedChange(!checked) }
|
||||
) { content() }
|
||||
content?.also { content ->
|
||||
Row(modifier = Modifier.clickable(enabled = enabled) { onCheckedChange(!checked) }) {
|
||||
Box(modifier = Modifier.width(style.contentSpacing))
|
||||
content()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -33,8 +33,9 @@ import androidx.compose.foundation.interaction.collectIsHoveredAsState
|
||||
import androidx.compose.foundation.interaction.collectIsPressedAsState
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.RowScope
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.Immutable
|
||||
import androidx.compose.runtime.ReadOnlyComposable
|
||||
@@ -84,7 +85,7 @@ fun RadioButton(
|
||||
style: RadioButtonStyle = RadioButton.style,
|
||||
enabled: Boolean = true,
|
||||
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
|
||||
content: @Composable () -> Unit = {}
|
||||
content: @Composable (RowScope.() -> Unit)? = null
|
||||
) {
|
||||
val contentDiameter = style.contentRadius * 2
|
||||
val strokeDiameter = style.strokeRadius * 2
|
||||
@@ -115,10 +116,12 @@ fun RadioButton(
|
||||
.background(colors.contentColor, style.shape)
|
||||
)
|
||||
}
|
||||
Box(
|
||||
modifier = Modifier.padding(start = style.contentSpacing)
|
||||
.clickable(enabled = enabled, onClick = onClick)
|
||||
) { content() }
|
||||
content?.also { content ->
|
||||
Row(modifier = Modifier.clickable(enabled = enabled, onClick = onClick)) {
|
||||
Box(modifier = Modifier.width(style.contentSpacing))
|
||||
content()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -39,6 +39,7 @@ import androidx.compose.foundation.layout.RowScope
|
||||
import androidx.compose.foundation.layout.offset
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.Immutable
|
||||
import androidx.compose.runtime.ReadOnlyComposable
|
||||
@@ -98,7 +99,7 @@ fun Switch(
|
||||
style: SwitchStyle = Switch.style,
|
||||
enabled: Boolean = true,
|
||||
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
|
||||
content: @Composable () -> Unit = {}
|
||||
content: @Composable (RowScope.() -> Unit)? = null
|
||||
) {
|
||||
val thumbDiameter = style.thumbRadius * 2
|
||||
val maxOffsetX = with(LocalDensity.current) { (style.trackWidth - thumbDiameter - style.padding.horizontal).toPx() }
|
||||
@@ -183,10 +184,12 @@ fun Switch(
|
||||
)
|
||||
}
|
||||
Row(modifier = Modifier.status(enabled).then(modifier)) {
|
||||
Box(
|
||||
modifier = Modifier.padding(end = style.contentSpacing)
|
||||
.clickable(enabled = enabled) { onCheckedChange(!checked) }
|
||||
) { content() }
|
||||
content?.also { content ->
|
||||
Row(modifier = Modifier.clickable(enabled = enabled) { onCheckedChange(!checked) }) {
|
||||
content()
|
||||
Box(modifier = Modifier.width(style.contentSpacing))
|
||||
}
|
||||
}
|
||||
Track { Thumb() }
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user