@@ -10,20 +10,23 @@ import androidx.compose.foundation.layout.padding
1010import androidx.compose.foundation.layout.width
1111import androidx.compose.material3.HorizontalDivider
1212import androidx.compose.runtime.Composable
13+ import androidx.compose.runtime.getValue
14+ import androidx.compose.runtime.mutableStateOf
15+ import androidx.compose.runtime.remember
16+ import androidx.compose.runtime.setValue
1317import androidx.compose.ui.Alignment
1418import androidx.compose.ui.Modifier
1519import androidx.compose.ui.res.stringResource
1620import androidx.compose.ui.tooling.preview.Preview
1721import androidx.compose.ui.unit.dp
18- import okhttp3.internal.toLongOrDefault
1922import to.bitkit.R
2023import to.bitkit.models.NodeLifecycleState
2124import to.bitkit.models.PrimaryDisplay
2225import to.bitkit.ui.LocalBalances
2326import to.bitkit.ui.LocalCurrencies
24- import to.bitkit.ui.components.BalanceHeaderView
2527import to.bitkit.ui.components.Keyboard
2628import to.bitkit.ui.components.MoneySSB
29+ import to.bitkit.ui.components.NumberPadTextField
2730import to.bitkit.ui.components.OutlinedColorButton
2831import to.bitkit.ui.components.PrimaryButton
2932import to.bitkit.ui.components.SyncNodeView
@@ -48,6 +51,8 @@ fun SendAmountScreen(
4851 onBack : () -> Unit ,
4952 onEvent : (SendEvent ) -> Unit ,
5053) {
54+ var input: String by remember { mutableStateOf(" " ) }
55+
5156 Column (
5257 modifier = Modifier
5358 .fillMaxSize()
@@ -64,7 +69,7 @@ fun SendAmountScreen(
6469 Column (
6570 modifier = Modifier .padding(horizontal = 16 .dp)
6671 ) {
67- BalanceHeaderView (sats = uiState.amountInput.toLongOrDefault( 0 ) , modifier = Modifier .fillMaxWidth())
72+ NumberPadTextField (input = input , modifier = Modifier .fillMaxWidth())
6873
6974 Spacer (modifier = Modifier .height(24 .dp))
7075
@@ -117,8 +122,14 @@ fun SendAmountScreen(
117122 HorizontalDivider (modifier = Modifier .padding(vertical = 24 .dp))
118123
119124 Keyboard (
120- onClick = { number -> onEvent(SendEvent .AmountChange (number)) },
121- onClickBackspace = { onEvent(SendEvent .BackSpaceClick ) },
125+ onClick = { number ->
126+ if (input == " 0" ) input = number else input+ = number
127+ onEvent(SendEvent .AmountChange (number))
128+ },
129+ onClickBackspace = {
130+ input = if (input.length > 1 ) input.dropLast(1 ) else " 0"
131+ onEvent(SendEvent .BackSpaceClick )
132+ },
122133 isDecimal = currencyUiState.primaryDisplay == PrimaryDisplay .FIAT ,
123134 modifier = Modifier .fillMaxWidth(),
124135 )
@@ -134,9 +145,11 @@ fun SendAmountScreen(
134145 Spacer (modifier = Modifier .height(16 .dp))
135146 }
136147 } else {
137- SyncNodeView (modifier = Modifier
138- .fillMaxWidth()
139- .weight(1f ))
148+ SyncNodeView (
149+ modifier = Modifier
150+ .fillMaxWidth()
151+ .weight(1f )
152+ )
140153 }
141154 }
142155}
0 commit comments