@@ -22,6 +22,7 @@ import androidx.compose.ui.Modifier
2222import androidx.compose.ui.draw.alpha
2323import androidx.compose.ui.draw.clip
2424import androidx.compose.ui.graphics.Color
25+ import androidx.compose.ui.graphics.painter.Painter
2526import androidx.compose.ui.graphics.vector.ImageVector
2627import androidx.compose.ui.res.painterResource
2728import androidx.compose.ui.tooling.preview.Preview
@@ -57,43 +58,57 @@ fun RectangleButton(
5758 .fillMaxWidth()
5859 ) {
5960 icon?.let {
60- Box (
61- modifier = Modifier
62- .clip(CircleShape )
63- .size(40 .dp)
64- .background(Colors .Black ),
65- contentAlignment = Alignment .Center
66- ) {
67- Icon (
68- painter = painterResource(it),
69- contentDescription = null ,
70- tint = iconTint,
71- modifier = Modifier .size(iconSize),
72- )
73- }
61+ CircularIcon (
62+ painter = painterResource(it),
63+ iconTint = iconTint,
64+ iconSize = iconSize
65+ )
7466 }
7567 imageVector?.let {
76- Box (
77- modifier = Modifier
78- .clip(CircleShape )
79- .size(40 .dp)
80- .background(Colors .Black ),
81- contentAlignment = Alignment .Center
82- ) {
83- Icon (
84- imageVector = it,
85- contentDescription = null ,
86- tint = iconTint,
87- modifier = Modifier .size(iconSize),
88- )
89- }
68+ CircularIcon (
69+ imageVector = it,
70+ iconTint = iconTint,
71+ iconSize = iconSize
72+ )
9073 }
9174 HorizontalSpacer (16 .dp)
9275 BodyMSB (text = label, color = Colors .White )
9376 FillWidth ()
9477 }
9578}
9679
80+ @Composable
81+ private fun CircularIcon (
82+ painter : Painter ? = null,
83+ imageVector : ImageVector ? = null,
84+ iconTint : Color ,
85+ iconSize : Dp ,
86+ ) {
87+ Box (
88+ modifier = Modifier
89+ .clip(CircleShape )
90+ .size(40 .dp)
91+ .background(Colors .Black ),
92+ contentAlignment = Alignment .Center
93+ ) {
94+ when {
95+ painter != null -> Icon (
96+ painter = painter,
97+ contentDescription = null ,
98+ tint = iconTint,
99+ modifier = Modifier .size(iconSize),
100+ )
101+
102+ imageVector != null -> Icon (
103+ imageVector = imageVector,
104+ contentDescription = null ,
105+ tint = iconTint,
106+ modifier = Modifier .size(iconSize),
107+ )
108+ }
109+ }
110+ }
111+
97112@Preview
98113@Composable
99114private fun RectangleButtonPreview () {
0 commit comments