Skip to content

Commit 68a1a82

Browse files
committed
feat: set NumberPadTextField
1 parent 6c60570 commit 68a1a82

File tree

1 file changed

+69
-1
lines changed

1 file changed

+69
-1
lines changed

app/src/main/java/to/bitkit/ui/screens/wallets/receive/EditInvoiceScreen.kt

Lines changed: 69 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,40 @@
11
package 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
310
import androidx.compose.runtime.Composable
411
import androidx.compose.runtime.getValue
512
import androidx.compose.runtime.mutableStateOf
613
import androidx.compose.runtime.remember
714
import 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
823
import to.bitkit.ui.LocalCurrencies
924
import to.bitkit.ui.components.AmountInputHandler
25+
import to.bitkit.ui.components.NumberPadTextField
1026
import to.bitkit.ui.currencyViewModel
27+
import to.bitkit.ui.scaffold.SheetTopBar
28+
import to.bitkit.ui.shared.util.gradientBackground
1129
import to.bitkit.viewmodels.CurrencyUiState
30+
import to.bitkit.viewmodels.SendEvent
31+
import to.bitkit.viewmodels.SendUiState
1232

1333
@Composable
1434
fun 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

Comments
 (0)