SuperButton

This commit is contained in:
Benoit Marty 2025-07-07 15:18:26 +02:00
parent d1e04d510f
commit aaa7e976b8

View file

@ -36,10 +36,7 @@ import androidx.compose.ui.graphics.ShaderBrush
import androidx.compose.ui.graphics.Shape import androidx.compose.ui.graphics.Shape
import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import io.element.android.compound.annotations.CoreColorToken
import io.element.android.compound.theme.ElementTheme import io.element.android.compound.theme.ElementTheme
import io.element.android.compound.tokens.generated.internal.DarkColorTokens
import io.element.android.compound.tokens.generated.internal.LightColorTokens
import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.LocalBuildMeta import io.element.android.libraries.designsystem.theme.LocalBuildMeta
@ -47,7 +44,6 @@ import io.element.android.libraries.designsystem.theme.components.ButtonSize
import io.element.android.libraries.designsystem.theme.components.HorizontalDivider import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
import io.element.android.libraries.designsystem.theme.components.lowHorizontalPaddingValue import io.element.android.libraries.designsystem.theme.components.lowHorizontalPaddingValue
@OptIn(CoreColorToken::class)
@Composable @Composable
fun SuperButton( fun SuperButton(
onClick: () -> Unit, onClick: () -> Unit,
@ -66,34 +62,26 @@ fun SuperButton(
ButtonSize.Small -> PaddingValues(horizontal = 16.dp, vertical = 5.dp) ButtonSize.Small -> PaddingValues(horizontal = 16.dp, vertical = 5.dp)
} }
} }
val isLightTheme = ElementTheme.isLightTheme
val colors = if (LocalBuildMeta.current.isEnterpriseBuild) { val colors = if (LocalBuildMeta.current.isEnterpriseBuild) {
listOf( listOf(
ElementTheme.colors.textActionAccent, ElementTheme.colors.textActionAccent,
ElementTheme.colors.textActionAccent, ElementTheme.colors.textActionAccent,
) )
} else { } else {
remember(isLightTheme) { listOf(
if (isLightTheme) { ElementTheme.colors.gradientActionStop1,
listOf( ElementTheme.colors.gradientActionStop2,
LightColorTokens.colorBlue900, ElementTheme.colors.gradientActionStop3,
LightColorTokens.colorGreen1100, ElementTheme.colors.gradientActionStop4,
) )
} else {
listOf(
DarkColorTokens.colorBlue900,
DarkColorTokens.colorGreen1100,
)
}
}
} }
val shaderBrush = remember(colors) { val shaderBrush = remember(colors) {
object : ShaderBrush() { object : ShaderBrush() {
override fun createShader(size: Size): Shader { override fun createShader(size: Size): Shader {
return LinearGradientShader( return LinearGradientShader(
from = Offset(0f, size.height), from = Offset(0f, 0f),
to = Offset(size.width, 0f), to = Offset(0f, size.height),
colors = colors, colors = colors,
) )
} }