From 62e25fa9967cbbddf07a6f727961370f39f46d1a Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 15 Apr 2024 13:42:37 +0200 Subject: [PATCH] Remove unnecessary Box wrapping. --- .../button/GradientFloatingActionButton.kt | 84 +++++++------- .../components/button/SuperButton.kt | 106 +++++++++--------- 2 files changed, 93 insertions(+), 97 deletions(-) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/button/GradientFloatingActionButton.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/button/GradientFloatingActionButton.kt index d600f92326..dcce83644c 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/button/GradientFloatingActionButton.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/button/GradientFloatingActionButton.kt @@ -59,56 +59,54 @@ fun GradientFloatingActionButton( shape: Shape = RoundedCornerShape(25), content: @Composable () -> Unit, ) { - Box { - val linearShaderBrush = remember { - object : ShaderBrush() { - override fun createShader(size: Size): Shader { - return LinearGradientShader( - from = Offset(size.width, size.height), - to = Offset(size.width, 0f), - colors = listOf( - LightColorTokens.colorBlue900, - LightColorTokens.colorGreen700, - ), - ) - } + val linearShaderBrush = remember { + object : ShaderBrush() { + override fun createShader(size: Size): Shader { + return LinearGradientShader( + from = Offset(size.width, size.height), + to = Offset(size.width, 0f), + colors = listOf( + LightColorTokens.colorBlue900, + LightColorTokens.colorGreen700, + ), + ) } } - val radialShaderBrush = remember { - object : ShaderBrush() { - override fun createShader(size: Size): Shader { - return RadialGradientShader( - center = size.center, - radius = size.width / 2, - colors = listOf( - LightColorTokens.colorGreen700, - LightColorTokens.colorBlue900, - ) + } + val radialShaderBrush = remember { + object : ShaderBrush() { + override fun createShader(size: Size): Shader { + return RadialGradientShader( + center = size.center, + radius = size.width / 2, + colors = listOf( + LightColorTokens.colorGreen700, + LightColorTokens.colorBlue900, ) - } + ) } } + } - Box( - modifier = modifier - .minimumInteractiveComponentSize() - .graphicsLayer(shape = shape, clip = false) - .clip(shape) - .drawBehind { - drawRect(brush = radialShaderBrush, alpha = 0.4f) - drawRect(brush = linearShaderBrush) - } - .clickable( - enabled = true, - onClick = onClick, - interactionSource = remember { MutableInteractionSource() }, - indication = rememberRipple(color = Color.White) - ), - contentAlignment = Alignment.Center - ) { - CompositionLocalProvider(LocalContentColor provides Color.White) { - content() + Box( + modifier = modifier + .minimumInteractiveComponentSize() + .graphicsLayer(shape = shape, clip = false) + .clip(shape) + .drawBehind { + drawRect(brush = radialShaderBrush, alpha = 0.4f) + drawRect(brush = linearShaderBrush) } + .clickable( + enabled = true, + onClick = onClick, + interactionSource = remember { MutableInteractionSource() }, + indication = rememberRipple(color = Color.White) + ), + contentAlignment = Alignment.Center + ) { + CompositionLocalProvider(LocalContentColor provides Color.White) { + content() } } } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/button/SuperButton.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/button/SuperButton.kt index dbd03091ed..1bbbc1c123 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/button/SuperButton.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/button/SuperButton.kt @@ -71,66 +71,64 @@ fun SuperButton( ButtonSize.Small -> PaddingValues(horizontal = 16.dp, vertical = 5.dp) } } - Box { - val isLightTheme = ElementTheme.isLightTheme - val colors = remember(isLightTheme) { - if (isLightTheme) { - listOf( - LightColorTokens.colorBlue900, - LightColorTokens.colorGreen1100, - ) - } else { - listOf( - DarkColorTokens.colorBlue900, - DarkColorTokens.colorGreen1100, - ) - } - } - - val shaderBrush = remember(colors) { - object : ShaderBrush() { - override fun createShader(size: Size): Shader { - return LinearGradientShader( - from = Offset(0f, size.height), - to = Offset(size.width, 0f), - colors = colors, - ) - } - } - } - val border = if (enabled) { - BorderStroke(1.dp, shaderBrush) + val isLightTheme = ElementTheme.isLightTheme + val colors = remember(isLightTheme) { + if (isLightTheme) { + listOf( + LightColorTokens.colorBlue900, + LightColorTokens.colorGreen1100, + ) } else { - BorderStroke(1.dp, ElementTheme.colors.borderDisabled) + listOf( + DarkColorTokens.colorBlue900, + DarkColorTokens.colorGreen1100, + ) } - val backgroundColor = ElementTheme.colors.bgCanvasDefault - Box( - modifier = modifier - .minimumInteractiveComponentSize() - .graphicsLayer(shape = shape, clip = false) - .clip(shape) - .border(border, shape) - .drawBehind { - drawRect(backgroundColor) - drawRect(brush = shaderBrush, alpha = 0.04f) - } - .clickable( - enabled = enabled, - onClick = onClick, - interactionSource = remember { MutableInteractionSource() }, - indication = rememberRipple() + } + + val shaderBrush = remember(colors) { + object : ShaderBrush() { + override fun createShader(size: Size): Shader { + return LinearGradientShader( + from = Offset(0f, size.height), + to = Offset(size.width, 0f), + colors = colors, ) - .padding(contentPadding), - contentAlignment = Alignment.Center - ) { - CompositionLocalProvider( - LocalContentColor provides if (enabled) ElementTheme.colors.textPrimary else ElementTheme.colors.textDisabled, - LocalTextStyle provides ElementTheme.typography.fontBodyLgMedium, - ) { - content() } } } + val border = if (enabled) { + BorderStroke(1.dp, shaderBrush) + } else { + BorderStroke(1.dp, ElementTheme.colors.borderDisabled) + } + val backgroundColor = ElementTheme.colors.bgCanvasDefault + Box( + modifier = modifier + .minimumInteractiveComponentSize() + .graphicsLayer(shape = shape, clip = false) + .clip(shape) + .border(border, shape) + .drawBehind { + drawRect(backgroundColor) + drawRect(brush = shaderBrush, alpha = 0.04f) + } + .clickable( + enabled = enabled, + onClick = onClick, + interactionSource = remember { MutableInteractionSource() }, + indication = rememberRipple() + ) + .padding(contentPadding), + contentAlignment = Alignment.Center + ) { + CompositionLocalProvider( + LocalContentColor provides if (enabled) ElementTheme.colors.textPrimary else ElementTheme.colors.textDisabled, + LocalTextStyle provides ElementTheme.typography.fontBodyLgMedium, + ) { + content() + } + } } @PreviewsDayNight