From 10d6cc7beeb1dd486d622681ab1db1417195cd44 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 1 Apr 2025 16:02:30 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../buttons/small/TangemIconButton.kt | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 core/ui/src/main/java/com/tangem/core/ui/components/buttons/small/TangemIconButton.kt diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/buttons/small/TangemIconButton.kt b/core/ui/src/main/java/com/tangem/core/ui/components/buttons/small/TangemIconButton.kt new file mode 100644 index 0000000000..39a042f707 --- /dev/null +++ b/core/ui/src/main/java/com/tangem/core/ui/components/buttons/small/TangemIconButton.kt @@ -0,0 +1,72 @@ +package com.tangem.core.ui.components.buttons.small + +import android.content.res.Configuration +import androidx.annotation.DrawableRes +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.rememberVectorPainter +import androidx.compose.ui.res.vectorResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.tangem.core.ui.R +import com.tangem.core.ui.res.TangemTheme +import com.tangem.core.ui.res.TangemThemePreview + +/** + * Small button icon + * + * @param iconRes icon resource + * @param onClick lambda be invoked when action component is clicked + * @param modifier composable modifier + * @param shape icon button shape + * @param background background color + * @param iconTint icon color + * + * [Show in Figma](https://www.figma.com/design/14ISV23YB1yVW1uNVwqrKv/Android?node-id=4105-1439&t=nnYBX1qCZmUNhBDf-4) + */ +@Composable +fun TangemIconButton( + @DrawableRes iconRes: Int, + onClick: () -> Unit, + modifier: Modifier = Modifier, + shape: RoundedCornerShape = RoundedCornerShape(24.dp), + background: Color = TangemTheme.colors.button.secondary, + iconTint: Color = TangemTheme.colors.icon.secondary, +) { + IconButton( + onClick = onClick, + modifier = modifier + .clip(shape) + .background(background) + .size(24.dp), + ) { + Icon( + painter = rememberVectorPainter(ImageVector.vectorResource(iconRes)), + contentDescription = "", + tint = iconTint, + modifier = Modifier.size(16.dp), + ) + } +} + +// region Preview +@Preview(showBackground = true) +@Preview(showBackground = true, uiMode = Configuration.UI_MODE_NIGHT_YES) +@Composable +private fun TangemIconButton_Preview() { + TangemThemePreview { + TangemIconButton( + iconRes = R.drawable.ic_close_24, + onClick = {}, + ) + } +} +// endregion \ No newline at end of file