@@ -13,23 +13,29 @@ import androidx.compose.material3.HorizontalDivider
1313import androidx.compose.runtime.Composable
1414import androidx.compose.runtime.LaunchedEffect
1515import androidx.compose.runtime.getValue
16+ import androidx.compose.runtime.mutableStateOf
17+ import androidx.compose.runtime.remember
18+ import androidx.compose.runtime.setValue
1619import androidx.compose.ui.Alignment
1720import androidx.compose.ui.Modifier
1821import androidx.compose.ui.platform.testTag
1922import androidx.compose.ui.res.stringResource
23+ import androidx.compose.ui.tooling.preview.Devices.NEXUS_5
2024import androidx.compose.ui.tooling.preview.Preview
2125import androidx.compose.ui.unit.dp
2226import androidx.lifecycle.compose.collectAsStateWithLifecycle
27+ import okhttp3.internal.toLongOrDefault
2328import to.bitkit.R
2429import to.bitkit.models.PrimaryDisplay
2530import to.bitkit.ui.LocalCurrencies
26- import to.bitkit.ui.components.AmountInput
31+ import to.bitkit.ui.components.AmountInputHandler
2732import to.bitkit.ui.components.Display
2833import to.bitkit.ui.components.FillHeight
2934import to.bitkit.ui.components.FillWidth
3035import to.bitkit.ui.components.Keyboard
3136import to.bitkit.ui.components.MoneySSB
3237import to.bitkit.ui.components.NumberPadActionButton
38+ import to.bitkit.ui.components.NumberPadTextField
3339import to.bitkit.ui.components.PrimaryButton
3440import to.bitkit.ui.components.Text13Up
3541import to.bitkit.ui.components.UnitButton
@@ -71,6 +77,19 @@ fun SpendingAmountScreen(
7177 }
7278 }
7379
80+ var input: String by remember { mutableStateOf(uiState.input) }
81+
82+ AmountInputHandler (
83+ input = input,
84+ overrideSats = uiState.overrideSats,
85+ primaryDisplay = currencies.primaryDisplay,
86+ displayUnit = currencies.displayUnit,
87+ onInputChanged = { newInput -> input = newInput },
88+ onAmountCalculated = { sats ->
89+ viewModel.onAmountChanged(sats.toLongOrDefault(0 ))
90+ },
91+ )
92+
7493 Content (
7594 uiState = uiState,
7695 currencies = currencies,
@@ -79,8 +98,7 @@ fun SpendingAmountScreen(
7998 onClickQuarter = viewModel::onClickQuarter,
8099 onClickMaxAmount = viewModel::onClickMaxAmount,
81100 onConfirmAmount = viewModel::onConfirmAmount,
82- onAmountChanged = viewModel::onAmountChanged,
83- onInputChanged = { input -> } // TODO IMPLEMENT
101+ onInputChanged = { newInput -> input = newInput },
84102 )
85103}
86104
@@ -93,7 +111,6 @@ private fun Content(
93111 onClickQuarter : () -> Unit ,
94112 onClickMaxAmount : () -> Unit ,
95113 onConfirmAmount : () -> Unit ,
96- onAmountChanged : (Long ) -> Unit ,
97114 onInputChanged : (String ) -> Unit ,
98115) {
99116 ScreenColumn {
@@ -114,12 +131,16 @@ private fun Content(
114131 text = stringResource(R .string.lightning__spending_amount__title)
115132 .withAccent(accentColor = Colors .Purple )
116133 )
117- VerticalSpacer (32 .dp)
134+ VerticalSpacer (8 .dp)
118135
119- AmountInput (
136+ NumberPadTextField (
137+ input = uiState.input,
138+ displayUnit = currencies.displayUnit,
139+ showSecondaryField = false ,
120140 primaryDisplay = currencies.primaryDisplay,
121- overrideSats = uiState.overrideSats,
122- onSatsChange = onAmountChanged,
141+ modifier = Modifier
142+ .fillMaxWidth()
143+ // .testTag("SendNumberField")
123144 )
124145
125146 FillHeight ()
@@ -192,14 +213,29 @@ private fun Content(
192213private fun Preview () {
193214 AppThemeSurface {
194215 Content (
195- uiState = TransferToSpendingUiState (),
216+ uiState = TransferToSpendingUiState (input = " 5 000" ),
217+ currencies = CurrencyUiState (),
218+ onBackClick = {},
219+ onCloseClick = {},
220+ onClickQuarter = {},
221+ onClickMaxAmount = {},
222+ onConfirmAmount = {},
223+ onInputChanged = {},
224+ )
225+ }
226+ }
227+ @Preview(showBackground = true , device = NEXUS_5 )
228+ @Composable
229+ private fun Preview2 () {
230+ AppThemeSurface {
231+ Content (
232+ uiState = TransferToSpendingUiState (input = " 5 000" ),
196233 currencies = CurrencyUiState (),
197234 onBackClick = {},
198235 onCloseClick = {},
199236 onClickQuarter = {},
200237 onClickMaxAmount = {},
201238 onConfirmAmount = {},
202- onAmountChanged = {},
203239 onInputChanged = {},
204240 )
205241 }
0 commit comments