@@ -24,6 +24,7 @@ import androidx.compose.ui.res.stringResource
2424import androidx.compose.ui.text.input.ImeAction
2525import androidx.compose.ui.text.input.KeyboardCapitalization
2626import androidx.compose.ui.unit.dp
27+ import io.snabble.sdk.Snabble
2728import io.snabble.sdk.ui.R
2829import io.snabble.sdk.ui.cart.shoppingcart.utils.rememberTextFieldManager
2930import io.snabble.sdk.ui.payment.creditcard.shared.country.displayName
@@ -44,20 +45,33 @@ internal fun CustomerInfoInputScreen(
4445 countryItems : List <CountryItem >,
4546 onBackNavigationClick : () -> Unit ,
4647) {
47- var name by remember { mutableStateOf(" " ) }
48+ val preFilledData = Snabble .formPrefillData
49+
50+ var name by remember { mutableStateOf(preFilledData?.name.orEmpty()) }
4851 var intCallingCode by remember { mutableStateOf(" " ) }
4952 var phoneNumber by remember { mutableStateOf(" " ) }
50- var email by remember { mutableStateOf(" " ) }
51- var street by remember { mutableStateOf(" " ) }
52- var zip by remember { mutableStateOf(" " ) }
53- var city by remember { mutableStateOf(" " ) }
54- var state by remember { mutableStateOf(" " ) }
55- var country: CountryItem by remember { mutableStateOf(countryItems.loadDefaultCountry()) }
53+ var email by remember { mutableStateOf(preFilledData?.email.orEmpty()) }
54+ var street by remember { mutableStateOf(preFilledData?.street.orEmpty()) }
55+ var zip by remember { mutableStateOf(preFilledData?.zip.orEmpty()) }
56+ var city by remember { mutableStateOf(preFilledData?.city.orEmpty()) }
57+ var state by remember { mutableStateOf(preFilledData?.stateCode.orEmpty()) }
58+
59+ var country: CountryItem by remember {
60+ mutableStateOf(
61+ countryItems.loadPreSetCountry(preFilledData?.countryCode)
62+ ? : countryItems.loadDefaultCountry()
63+ )
64+ }
5665
5766 val textFieldManager = rememberTextFieldManager()
5867
5968 val isRequiredStateSet =
60- if (! countryItems.firstOrNull { it.code == country.code }?.stateItems.isNullOrEmpty()) state.isNotEmpty() else true
69+ if (! countryItems.firstOrNull { it.code == country.code }?.stateItems.isNullOrEmpty()) {
70+ state.isNotEmpty()
71+ } else {
72+ true
73+ }
74+
6175 val areRequiredFieldsSet = listOf (
6276 name,
6377 intCallingCode,
@@ -166,7 +180,7 @@ internal fun CustomerInfoInputScreen(
166180 CountrySelectionMenu (
167181 countryItems = countryItems,
168182 selectedCountryCode = country,
169- selectedStateCode = null ,
183+ selectedStateCode = state ,
170184 onCountrySelected = { countryItem, stateItem ->
171185 country = countryItem
172186 state = stateItem?.code.orEmpty()
@@ -203,6 +217,9 @@ internal fun CustomerInfoInputScreen(
203217 }
204218}
205219
220+ private fun List<CountryItem>?.loadPreSetCountry (countryCode : String? ): CountryItem ? =
221+ this ?.firstOrNull { it.code == countryCode }
222+
206223private fun List<CountryItem>?.loadDefaultCountry (): CountryItem =
207224 this ?.firstOrNull { it.displayName == Locale .getDefault().country.displayName }
208225 ? : this ?.firstOrNull { it.code == Locale .GERMANY .displayCountry }
0 commit comments