Add disabled state to fill buttons

This commit is contained in:
Andrew 2024-06-20 11:56:37 +09:30
parent acbe4de25a
commit 175e1029ad

View File

@ -10,6 +10,11 @@ import androidx.compose.ui.unit.dp
import org.thoughtcrime.securesms.ui.LocalDimensions import org.thoughtcrime.securesms.ui.LocalDimensions
import org.thoughtcrime.securesms.ui.color.LocalColors import org.thoughtcrime.securesms.ui.color.LocalColors
private val disabledBorder @Composable get() = BorderStroke(
width = LocalDimensions.current.borderStroke,
color = LocalColors.current.disabled
)
interface ButtonType { interface ButtonType {
val contentPadding: PaddingValues get() = ButtonDefaults.ContentPadding val contentPadding: PaddingValues get() = ButtonDefaults.ContentPadding
@ -20,11 +25,10 @@ interface ButtonType {
class Outline(private val color: Color): ButtonType { class Outline(private val color: Color): ButtonType {
@Composable @Composable
override fun border(enabled: Boolean) = override fun border(enabled: Boolean) = BorderStroke(
BorderStroke( width = LocalDimensions.current.borderStroke,
width = LocalDimensions.current.borderStroke, color = if (enabled) color else LocalColors.current.disabled
color = if (enabled) color else LocalColors.current.disabled )
)
@Composable @Composable
override fun buttonColors() = ButtonDefaults.buttonColors( override fun buttonColors() = ButtonDefaults.buttonColors(
contentColor = color, contentColor = color,
@ -36,7 +40,7 @@ interface ButtonType {
object Fill: ButtonType { object Fill: ButtonType {
@Composable @Composable
override fun border(enabled: Boolean) = null override fun border(enabled: Boolean) = if (enabled) null else disabledBorder
@Composable @Composable
override fun buttonColors() = ButtonDefaults.buttonColors( override fun buttonColors() = ButtonDefaults.buttonColors(
contentColor = LocalColors.current.background, contentColor = LocalColors.current.background,
@ -48,7 +52,7 @@ interface ButtonType {
object PrimaryFill: ButtonType { object PrimaryFill: ButtonType {
@Composable @Composable
override fun border(enabled: Boolean) = null override fun border(enabled: Boolean) = if (enabled) null else disabledBorder
@Composable @Composable
override fun buttonColors() = ButtonDefaults.buttonColors( override fun buttonColors() = ButtonDefaults.buttonColors(
contentColor = LocalColors.current.primaryButtonFillText, contentColor = LocalColors.current.primaryButtonFillText,