Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package com.london.designsystem.component.button

import android.annotation.SuppressLint
import android.graphics.BlurMaskFilter
import androidx.annotation.DrawableRes
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Spacer
Expand All @@ -17,13 +15,7 @@ import androidx.compose.material3.Icon
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.drawWithCache
import androidx.compose.ui.graphics.BlendMode
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.Paint
import androidx.compose.ui.graphics.drawscope.drawIntoCanvas
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import com.london.designsystem.R
import com.london.designsystem.theme.NovixTheme
Expand All @@ -45,8 +37,7 @@ fun PrimaryButton(
enabled = enabled,
modifier = modifier
.heightIn(48.dp)
.defaultMinSize(minWidth = 52.dp)
.insetShadow(),
.defaultMinSize(minWidth = 52.dp),
shape = RoundedCornerShape(12.dp),
colors = ButtonDefaults.buttonColors(
containerColor = NovixTheme.colors.primary,
Expand All @@ -55,7 +46,6 @@ fun PrimaryButton(
disabledContentColor = NovixTheme.colors.onPrimaryHint
),
contentPadding = PaddingValues(horizontal = 16.dp, vertical = 8.dp),
elevation = ButtonDefaults.buttonElevation(defaultElevation = 2.dp)
) {

if (hasLabel && text != null) {
Expand Down Expand Up @@ -88,44 +78,6 @@ fun PrimaryButton(
}
}

@SuppressLint("SuspiciousModifierThen")
private fun Modifier.insetShadow(
color: Color = Color(0x1F0D0608),
offsetX: Dp = 2.dp,
offsetY: Dp = 4.dp,
blurRadius: Dp = 12.dp,
cornerRadius: Dp = 12.dp
) = this.then(
drawWithCache {
val paint = Paint().apply {
this.color = color
this.blendMode = BlendMode.SrcOver
}

val pxBlurRadius = blurRadius.toPx()
val pxCornerRadius = cornerRadius.toPx()

onDrawWithContent {
drawContent()
drawIntoCanvas { canvas ->
canvas.drawRoundRect(
left = 0f,
top = 0f,
right = size.width,
bottom = size.height,
radiusX = pxCornerRadius,
radiusY = pxCornerRadius,
paint = paint.apply {
asFrameworkPaint().apply {
maskFilter = BlurMaskFilter(pxBlurRadius, BlurMaskFilter.Blur.NORMAL)
}
}
)
}
}
}
)

@ThemePreviews
@Composable
private fun PreviewPrimaryNormal() {
Expand Down
Loading