11package to.bitkit.ui.screens.wallets.receive
22
3- import androidx.compose.animation.AnimatedVisibility
43import androidx.compose.foundation.layout.Column
54import androidx.compose.foundation.layout.Spacer
65import androidx.compose.foundation.layout.defaultMinSize
@@ -9,20 +8,18 @@ import androidx.compose.foundation.layout.fillMaxWidth
98import androidx.compose.foundation.layout.height
109import androidx.compose.foundation.layout.padding
1110import androidx.compose.material3.MaterialTheme
12- import androidx.compose.material3.Text
1311import androidx.compose.material3.TextField
1412import androidx.compose.runtime.Composable
1513import androidx.compose.runtime.getValue
1614import androidx.compose.runtime.mutableStateOf
1715import androidx.compose.runtime.remember
1816import androidx.compose.runtime.setValue
1917import androidx.compose.ui.Modifier
20- import androidx.compose.ui.focus.focusRequester
2118import androidx.compose.ui.platform.testTag
2219import androidx.compose.ui.res.stringResource
20+ import androidx.compose.ui.tooling.preview.Preview
2321import androidx.compose.ui.unit.dp
2422import to.bitkit.R
25- import to.bitkit.models.BalanceState
2623import to.bitkit.models.BitcoinDisplayUnit
2724import to.bitkit.models.PrimaryDisplay
2825import to.bitkit.ui.LocalCurrencies
@@ -35,9 +32,10 @@ import to.bitkit.ui.currencyViewModel
3532import to.bitkit.ui.scaffold.SheetTopBar
3633import to.bitkit.ui.shared.util.gradientBackground
3734import to.bitkit.ui.theme.AppTextFieldDefaults
35+ import to.bitkit.ui.theme.AppThemeSurface
36+ import to.bitkit.ui.theme.Colors
3837import to.bitkit.viewmodels.CurrencyUiState
3938import to.bitkit.viewmodels.SendEvent
40- import to.bitkit.viewmodels.SendUiState
4139
4240@Composable
4341fun EditInvoiceScreen (
@@ -47,6 +45,7 @@ fun EditInvoiceScreen(
4745) {
4846 val currencyVM = currencyViewModel ? : return
4947 var input: String by remember { mutableStateOf(" " ) }
48+ var noteText by remember { mutableStateOf(" " ) }
5049
5150 AmountInputHandler (
5251 input = input,
@@ -59,23 +58,26 @@ fun EditInvoiceScreen(
5958
6059 EditInvoiceContent (
6160 input = input,
61+ noteText = noteText,
6262 primaryDisplay = currencyUiState.primaryDisplay,
6363 displayUnit = currencyUiState.displayUnit,
6464 onEvent = onEvent,
65- onBack = onBack
65+ onBack = onBack,
66+ onTextChanged = { newNote -> noteText = newNote }
6667 )
6768}
6869
6970@Composable
7071fun EditInvoiceContent (
7172 input : String ,
73+ noteText : String ,
7274 primaryDisplay : PrimaryDisplay ,
7375 displayUnit : BitcoinDisplayUnit ,
7476 onEvent : (SendEvent ) -> Unit ,
7577 onBack : () -> Unit ,
76- ){
78+ onTextChanged : (String ) -> Unit ,
79+ ) {
7780 var keyboardVisible by remember { mutableStateOf(false ) }
78- var noteText by remember { mutableStateOf(" " ) }
7981
8082 Column (
8183 modifier = Modifier
@@ -96,22 +98,31 @@ fun EditInvoiceContent(
9698 input = input,
9799 displayUnit = displayUnit,
98100 primaryDisplay = primaryDisplay,
99- modifier = Modifier .fillMaxWidth().testTag(" amount_input_field" )
101+ modifier = Modifier
102+ .fillMaxWidth()
103+ .testTag(" amount_input_field" )
100104 )
101105 Spacer (modifier = Modifier .height(44 .dp))
102106
103- Caption13Up (text = stringResource(R .string.wallet__note))
107+ Caption13Up (text = stringResource(R .string.wallet__note), color = Colors . White64 )
104108
105109 Spacer (modifier = Modifier .height(16 .dp))
106110
107111 TextField (
108- placeholder = { BodySSB (stringResource(R .string.wallet__receive_note_placeholder)) },
112+ placeholder = {
113+ BodySSB (
114+ text = stringResource(R .string.wallet__receive_note_placeholder),
115+ color = Colors .White64
116+ )
117+ },
109118 value = noteText,
110- onValueChange = { noteText = it } ,
119+ onValueChange = onTextChanged ,
111120 minLines = 4 ,
112121 colors = AppTextFieldDefaults .noIndicatorColors,
113- shape = MaterialTheme .shapes.small,
114- modifier = Modifier .fillMaxWidth().defaultMinSize(minHeight = 74 .dp),
122+ shape = MaterialTheme .shapes.medium,
123+ modifier = Modifier
124+ .fillMaxWidth()
125+ .defaultMinSize(minHeight = 74 .dp),
115126 )
116127
117128 Spacer (modifier = Modifier .height(16 .dp))
@@ -120,9 +131,44 @@ fun EditInvoiceContent(
120131
121132 PrimaryButton (
122133 text = stringResource(R .string.continue_button),
123- onClick = { }, // TODO IMPLEMENT
134+ onClick = { }, // TODO IMPLEMENT
124135 )
136+
137+ Spacer (modifier = Modifier .height(16 .dp))
125138 }
126139 }
127140}
128141
142+ @Preview(showBackground = true )
143+ @Composable
144+ private fun Preview () {
145+ AppThemeSurface {
146+ EditInvoiceContent (
147+ input = " 123" ,
148+ noteText = " " ,
149+ primaryDisplay = PrimaryDisplay .BITCOIN ,
150+ displayUnit = BitcoinDisplayUnit .MODERN ,
151+ onEvent = {},
152+ onBack = {},
153+ onTextChanged = {}
154+ )
155+ }
156+ }
157+
158+
159+ @Preview(showBackground = true )
160+ @Composable
161+ private fun Preview2 () {
162+ AppThemeSurface {
163+ EditInvoiceContent (
164+ input = " 123" ,
165+ noteText = " Note text" ,
166+ primaryDisplay = PrimaryDisplay .BITCOIN ,
167+ displayUnit = BitcoinDisplayUnit .MODERN ,
168+ onEvent = {},
169+ onBack = {},
170+ onTextChanged = {}
171+ )
172+ }
173+ }
174+
0 commit comments