Skip to content

Commit 8ceb15c

Browse files
authored
Merge branch 'master' into feat/toast-v59
2 parents e57c101 + 31f20b4 commit 8ceb15c

File tree

9 files changed

+626
-212
lines changed

9 files changed

+626
-212
lines changed

app/src/main/java/to/bitkit/ui/ContentView.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,6 @@ fun ContentView(
457457

458458
if (showTabBar) {
459459
TabBar(
460-
hazeState = hazeState,
461460
onSendClick = { appViewModel.showSheet(Sheet.Send()) },
462461
onReceiveClick = { appViewModel.showSheet(Sheet.Receive) },
463462
onScanClick = { navController.navigateToScanner() },

app/src/main/java/to/bitkit/ui/components/RectangleButton.kt

Lines changed: 69 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,111 @@
11
package to.bitkit.ui.components
22

3+
import androidx.annotation.DrawableRes
4+
import androidx.compose.foundation.background
35
import androidx.compose.foundation.layout.Arrangement
6+
import androidx.compose.foundation.layout.Box
47
import androidx.compose.foundation.layout.Column
58
import androidx.compose.foundation.layout.PaddingValues
6-
import androidx.compose.foundation.layout.Spacer
79
import androidx.compose.foundation.layout.fillMaxWidth
810
import androidx.compose.foundation.layout.height
911
import androidx.compose.foundation.layout.padding
1012
import androidx.compose.foundation.layout.size
11-
import androidx.compose.foundation.layout.width
13+
import androidx.compose.foundation.shape.CircleShape
1214
import androidx.compose.material.icons.Icons
1315
import androidx.compose.material.icons.filled.ContentPaste
1416
import androidx.compose.material3.Button
1517
import androidx.compose.material3.ButtonDefaults
1618
import androidx.compose.material3.Icon
1719
import androidx.compose.runtime.Composable
20+
import androidx.compose.ui.Alignment
1821
import androidx.compose.ui.Modifier
1922
import androidx.compose.ui.draw.alpha
23+
import androidx.compose.ui.draw.clip
2024
import androidx.compose.ui.graphics.Color
25+
import androidx.compose.ui.graphics.painter.Painter
26+
import androidx.compose.ui.graphics.vector.ImageVector
2127
import androidx.compose.ui.res.painterResource
2228
import androidx.compose.ui.tooling.preview.Preview
29+
import androidx.compose.ui.unit.Dp
2330
import androidx.compose.ui.unit.dp
2431
import to.bitkit.R
25-
import to.bitkit.ui.theme.AppShapes
2632
import to.bitkit.ui.theme.AppThemeSurface
2733
import to.bitkit.ui.theme.Colors
34+
import to.bitkit.ui.theme.Shapes
2835

2936
@Composable
3037
fun RectangleButton(
3138
label: String,
32-
icon: @Composable () -> Unit,
3339
modifier: Modifier = Modifier,
40+
@DrawableRes icon: Int? = null,
41+
imageVector: ImageVector? = null,
42+
iconTint: Color = Colors.White,
3443
enabled: Boolean = true,
44+
iconSize: Dp = 20.dp,
3545
onClick: () -> Unit = {},
3646
) {
3747
Button(
3848
onClick = onClick,
3949
colors = ButtonDefaults.buttonColors(
40-
containerColor = Colors.White10,
50+
containerColor = Colors.Gray6,
4151
),
4252
enabled = enabled,
43-
shape = AppShapes.small,
44-
contentPadding = PaddingValues(24.dp),
53+
shape = Shapes.medium,
54+
contentPadding = PaddingValues(horizontal = 16.dp, vertical = 0.dp),
4555
modifier = modifier
4656
.alpha(if (enabled) 1f else 0.5f)
4757
.height(80.dp)
4858
.fillMaxWidth()
4959
) {
50-
icon()
51-
Spacer(modifier = Modifier.width(16.dp))
60+
icon?.let {
61+
CircularIcon(
62+
painter = painterResource(it),
63+
iconTint = iconTint,
64+
iconSize = iconSize
65+
)
66+
}
67+
imageVector?.let {
68+
CircularIcon(
69+
imageVector = it,
70+
iconTint = iconTint,
71+
iconSize = iconSize
72+
)
73+
}
74+
HorizontalSpacer(16.dp)
5275
BodyMSB(text = label, color = Colors.White)
53-
Spacer(modifier = Modifier.weight(1f))
76+
FillWidth()
77+
}
78+
}
79+
80+
@Composable
81+
private fun CircularIcon(
82+
iconTint: Color,
83+
iconSize: Dp,
84+
painter: Painter? = null,
85+
imageVector: ImageVector? = null,
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+
}
54109
}
55110
}
56111

@@ -64,26 +119,14 @@ private fun RectangleButtonPreview() {
64119
) {
65120
RectangleButton(
66121
label = "Button",
67-
icon = {
68-
Icon(
69-
painter = painterResource(R.drawable.ic_scan),
70-
contentDescription = null,
71-
tint = Color.Unspecified,
72-
modifier = Modifier.size(28.dp),
73-
)
74-
}
122+
icon = R.drawable.ic_scan
75123
)
76124
RectangleButton(
77125
label = "Button Disabled",
78126
enabled = false,
79-
icon = {
80-
Icon(
81-
imageVector = Icons.Default.ContentPaste,
82-
contentDescription = null,
83-
tint = Colors.Brand,
84-
modifier = Modifier.size(28.dp),
85-
)
86-
}
127+
icon = null,
128+
iconTint = Colors.Purple,
129+
imageVector = Icons.Default.ContentPaste,
87130
)
88131
}
89132
}

app/src/main/java/to/bitkit/ui/components/SwipeToConfirm.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ import kotlinx.coroutines.delay
4949
import kotlinx.coroutines.launch
5050
import to.bitkit.R
5151
import to.bitkit.ui.scaffold.ScreenColumn
52+
import to.bitkit.ui.shared.util.primaryButtonStyle
5253
import to.bitkit.ui.theme.AppThemeSurface
5354
import to.bitkit.ui.theme.Colors
5455
import kotlin.math.roundToInt
@@ -61,7 +62,7 @@ private val Padding = 8.dp
6162
@Composable
6263
fun SwipeToConfirm(
6364
text: String = stringResource(R.string.other__swipe),
64-
color: Color = Colors.Green,
65+
color: Color = Colors.Brand,
6566
icon: ImageVector = Icons.AutoMirrored.Default.ArrowForward,
6667
@DrawableRes endIcon: Int = R.drawable.ic_check,
6768
endIconTint: Color = Colors.Black,
@@ -97,7 +98,10 @@ fun SwipeToConfirm(
9798
modifier = modifier
9899
.requiredHeight(CircleSize + Padding * 2)
99100
.clip(CircleShape)
100-
.background(Color.White.copy(alpha = 0.16f))
101+
.primaryButtonStyle(
102+
isEnabled = !loading,
103+
shape = CircleShape,
104+
)
101105
.padding(Padding)
102106
) {
103107
Box(
@@ -223,7 +227,7 @@ private fun Preview() {
223227
) {
224228
SwipeToConfirm(
225229
text = stringResource(R.string.wallet__send_swipe),
226-
color = Colors.Green,
230+
color = Colors.Brand,
227231
loading = isLoading,
228232
onConfirm = {
229233
scope.launch {

0 commit comments

Comments
 (0)