Skip to content

Commit 07c5830

Browse files
authored
Merge pull request #73 from synonymdev/feat/unit-button-send-amount
Implement UnitButton in SendAmountScreen
2 parents b217939 + c72b04f commit 07c5830

File tree

1 file changed

+35
-20
lines changed

1 file changed

+35
-20
lines changed

app/src/main/java/to/bitkit/ui/screens/wallets/send/SendAmountScreen.kt

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,32 +7,38 @@ import androidx.compose.foundation.layout.fillMaxSize
77
import androidx.compose.foundation.layout.fillMaxWidth
88
import androidx.compose.foundation.layout.height
99
import androidx.compose.foundation.layout.padding
10+
import androidx.compose.foundation.layout.width
1011
import androidx.compose.material3.HorizontalDivider
11-
import androidx.compose.material3.Text
1212
import androidx.compose.runtime.Composable
1313
import androidx.compose.ui.Alignment
1414
import androidx.compose.ui.Modifier
1515
import androidx.compose.ui.res.stringResource
1616
import androidx.compose.ui.unit.dp
1717
import to.bitkit.R
18+
import to.bitkit.models.PrimaryDisplay
1819
import to.bitkit.ui.LocalBalances
20+
import to.bitkit.ui.LocalCurrencies
1921
import to.bitkit.ui.components.BalanceHeaderView
2022
import to.bitkit.ui.components.Keyboard
23+
import to.bitkit.ui.components.MoneySSB
2124
import to.bitkit.ui.components.OutlinedColorButton
2225
import to.bitkit.ui.components.PrimaryButton
2326
import to.bitkit.ui.components.Text13Up
27+
import to.bitkit.ui.components.UnitButton
2428
import to.bitkit.ui.scaffold.SheetTopBar
25-
import to.bitkit.ui.shared.moneyString
2629
import to.bitkit.ui.shared.util.DarkModePreview
2730
import to.bitkit.ui.theme.AppThemeSurface
2831
import to.bitkit.ui.theme.Colors
32+
import to.bitkit.viewmodels.CurrencyUiState
2933
import to.bitkit.viewmodels.SendEvent
3034
import to.bitkit.viewmodels.SendMethod
3135
import to.bitkit.viewmodels.SendUiState
3236

37+
3338
@Composable
3439
fun SendAmountScreen(
3540
uiState: SendUiState,
41+
currencyUiState: CurrencyUiState = LocalCurrencies.current,
3642
onBack: () -> Unit,
3743
onEvent: (SendEvent) -> Unit,
3844
) {
@@ -50,48 +56,57 @@ fun SendAmountScreen(
5056

5157
Spacer(modifier = Modifier.height(24.dp))
5258

59+
Text13Up(
60+
text = stringResource(R.string.wallet__send_available),
61+
color = Colors.White64,
62+
)
63+
Spacer(modifier = Modifier.height(4.dp))
64+
5365
Row(
54-
verticalAlignment = Alignment.Bottom,
66+
verticalAlignment = Alignment.CenterVertically,
5567
) {
56-
Column {
57-
val balances = LocalBalances.current
58-
Text13Up(
59-
text = stringResource(R.string.wallet__send_available),
60-
color = Colors.White64,
61-
)
62-
Spacer(modifier = Modifier.height(8.dp))
63-
Text(
64-
text = when (uiState.payMethod) {
65-
SendMethod.ONCHAIN -> moneyString(balances.totalOnchainSats.toLong())
66-
SendMethod.LIGHTNING -> moneyString(balances.totalLightningSats.toLong())
67-
}
68-
)
68+
val balances = LocalBalances.current
69+
val availableAmount = when (uiState.payMethod) {
70+
SendMethod.ONCHAIN -> balances.totalOnchainSats.toLong()
71+
SendMethod.LIGHTNING -> balances.totalLightningSats.toLong()
6972
}
73+
MoneySSB(sats = availableAmount.toLong())
74+
7075
Spacer(modifier = Modifier.weight(1f))
76+
7177
OutlinedColorButton(
7278
onClick = { onEvent(SendEvent.PaymentMethodSwitch) },
7379
enabled = uiState.isUnified,
7480
color = when (uiState.payMethod) {
7581
SendMethod.ONCHAIN -> Colors.Brand
7682
SendMethod.LIGHTNING -> Colors.Purple
77-
}
83+
},
84+
modifier = Modifier.height(28.dp)
7885
) {
79-
Text(
86+
Text13Up(
8087
text = when (uiState.payMethod) {
8188
SendMethod.ONCHAIN -> stringResource(R.string.savings)
8289
SendMethod.LIGHTNING -> stringResource(R.string.spending)
90+
},
91+
color = when (uiState.payMethod) {
92+
SendMethod.ONCHAIN -> Colors.Brand
93+
SendMethod.LIGHTNING -> Colors.Purple
8394
}
8495
)
8596
}
97+
Spacer(modifier = Modifier.width(8.dp))
98+
UnitButton(
99+
modifier = Modifier.height(28.dp)
100+
)
86101
}
87102

88103
Spacer(modifier = Modifier.weight(1f))
89104

90-
HorizontalDivider(modifier = Modifier.padding(vertical = 32.dp))
105+
HorizontalDivider(modifier = Modifier.padding(vertical = 24.dp))
91106

92107
Keyboard(
93108
onClick = { number -> onEvent(SendEvent.AmountChange(number)) },
94-
isDecimal = false, //TODO UPDATE IN OTHER PR
109+
isDecimal = currencyUiState.primaryDisplay == PrimaryDisplay.FIAT,
95110
modifier = Modifier.fillMaxWidth(),
96111
)
97112

0 commit comments

Comments
 (0)