11package to.bitkit.ui.screens.wallets.receive
22
3+ import androidx.compose.animation.AnimatedVisibility
4+ import androidx.compose.foundation.layout.Column
5+ import androidx.compose.foundation.layout.Spacer
6+ import androidx.compose.foundation.layout.fillMaxSize
7+ import androidx.compose.foundation.layout.fillMaxWidth
8+ import androidx.compose.foundation.layout.height
9+ import androidx.compose.foundation.layout.padding
310import androidx.compose.runtime.Composable
411import androidx.compose.runtime.getValue
512import androidx.compose.runtime.mutableStateOf
613import androidx.compose.runtime.remember
714import androidx.compose.runtime.setValue
15+ import androidx.compose.ui.Modifier
16+ import androidx.compose.ui.platform.testTag
17+ import androidx.compose.ui.res.stringResource
18+ import androidx.compose.ui.unit.dp
19+ import to.bitkit.R
20+ import to.bitkit.models.BalanceState
21+ import to.bitkit.models.BitcoinDisplayUnit
22+ import to.bitkit.models.PrimaryDisplay
823import to.bitkit.ui.LocalCurrencies
924import to.bitkit.ui.components.AmountInputHandler
25+ import to.bitkit.ui.components.NumberPadTextField
1026import to.bitkit.ui.currencyViewModel
27+ import to.bitkit.ui.scaffold.SheetTopBar
28+ import to.bitkit.ui.shared.util.gradientBackground
1129import to.bitkit.viewmodels.CurrencyUiState
30+ import to.bitkit.viewmodels.SendEvent
31+ import to.bitkit.viewmodels.SendUiState
1232
1333@Composable
1434fun EditInvoiceScreen (
1535 currencyUiState : CurrencyUiState = LocalCurrencies .current,
36+ onEvent : (SendEvent ) -> Unit ,
37+ onBack : () -> Unit ,
1638) {
1739 val currencyVM = currencyViewModel ? : return
1840 var input: String by remember { mutableStateOf(" " ) }
@@ -22,7 +44,53 @@ fun EditInvoiceScreen(
2244 primaryDisplay = currencyUiState.primaryDisplay,
2345 displayUnit = currencyUiState.displayUnit,
2446 onInputChanged = { newInput -> input = newInput },
25- onAmountCalculated = { sats -> },
47+ onAmountCalculated = { sats -> },
2648 currencyVM = currencyVM
2749 )
50+
51+ EditInvoiceContent (
52+ input = input,
53+ primaryDisplay = currencyUiState.primaryDisplay,
54+ displayUnit = currencyUiState.displayUnit,
55+ onEvent = onEvent,
56+ onBack = onBack
57+ )
2858}
59+
60+ @Composable
61+ fun EditInvoiceContent (
62+ input : String ,
63+ primaryDisplay : PrimaryDisplay ,
64+ displayUnit : BitcoinDisplayUnit ,
65+ onEvent : (SendEvent ) -> Unit ,
66+ onBack : () -> Unit ,
67+ ){
68+ val keyboardVisible by remember { mutableStateOf(false ) }
69+
70+ Column (
71+ modifier = Modifier
72+ .fillMaxSize()
73+ .gradientBackground()
74+ ) {
75+ SheetTopBar (stringResource(R .string.wallet__receive_specify)) {
76+ onEvent(SendEvent .AmountReset )
77+ onBack()
78+ }
79+
80+ Column (
81+ modifier = Modifier .padding(horizontal = 16 .dp)
82+ ) {
83+ Spacer (Modifier .height(16 .dp))
84+
85+ NumberPadTextField (
86+ input = input,
87+ displayUnit = displayUnit,
88+ primaryDisplay = primaryDisplay,
89+ modifier = Modifier .fillMaxWidth().testTag(" amount_input_field" )
90+ )
91+
92+ Spacer (modifier = Modifier .weight(1f ))
93+ }
94+ }
95+ }
96+
0 commit comments