Colton Idle
11/19/2021, 5:46 AMAlbert Chang
11/19/2021, 6:09 AMColton Idle
11/19/2021, 6:29 AMAbhinav Suthar
11/19/2021, 6:31 AM@Composable
private fun RowScope.ButtonContent(
text: String,
isLoading: Boolean = false,
@DrawableRes iconStart: Int? = null,
@DrawableRes iconEnd: Int? = null,
) {
if (isLoading) {
CircularProgressIndicator(color = MegaTheme.colors.primary, modifier = Modifier.size(22.dp), strokeWidth = 2.dp)
} else {
if (iconStart != null) {
Icon(painter = painterResource(id = iconStart), contentDescription = null)
Spacer8()
}
Text(
text = text,
style = Typography.ButtonText
)
if (iconEnd != null) {
Spacer8()
Icon(painter = painterResource(id = iconEnd), contentDescription = null)
}
}
}
@Composable
private fun BaseButton(
text: String,
colors: ButtonColors,
modifier: Modifier = Modifier,
showPlaceholder: Boolean = false,
enabled: Boolean = true,
isLoading: Boolean = false,
elevation: ButtonElevation? = ButtonDefaults.elevation(),
contentPadding: PaddingValues = ButtonDefaults.ContentPadding,
@DrawableRes iconStart: Int? = null,
@DrawableRes iconEnd: Int? = null,
onClick: () -> Unit,
) {
Button(
onClick = onClick,
modifier = modifier
.animateContentSize()
.shimmerWithCircularCorners(showPlaceholder),
enabled = enabled && isLoading.not(),
elevation = elevation,
shape = RoundedCornerShape(50),
colors = colors,
contentPadding = contentPadding
) {
ButtonContent(text, isLoading, iconStart, iconEnd)
}
}
Abhinav Suthar
11/19/2021, 6:32 AMColton Idle
11/19/2021, 6:35 AM