11package io.snabble.sdk.ui.payment.creditcard.shared
22
33import androidx.compose.animation.AnimatedVisibility
4+ import androidx.compose.foundation.BorderStroke
45import androidx.compose.foundation.layout.Arrangement
56import androidx.compose.foundation.layout.Column
7+ import androidx.compose.foundation.layout.defaultMinSize
68import androidx.compose.foundation.layout.fillMaxWidth
79import androidx.compose.foundation.layout.padding
810import androidx.compose.foundation.rememberScrollState
@@ -11,6 +13,7 @@ import androidx.compose.foundation.text.KeyboardOptions
1113import androidx.compose.foundation.verticalScroll
1214import androidx.compose.material3.Button
1315import androidx.compose.material3.MaterialTheme
16+ import androidx.compose.material3.OutlinedButton
1417import androidx.compose.material3.Text
1518import androidx.compose.material3.TextButton
1619import androidx.compose.runtime.Composable
@@ -24,8 +27,10 @@ import androidx.compose.ui.res.stringResource
2427import androidx.compose.ui.text.input.ImeAction
2528import androidx.compose.ui.text.input.KeyboardCapitalization
2629import androidx.compose.ui.unit.dp
30+ import androidx.compose.ui.unit.sp
2731import io.snabble.sdk.Snabble
2832import io.snabble.sdk.ui.R
33+ import io.snabble.sdk.ui.ThemeManager
2934import io.snabble.sdk.ui.cart.shoppingcart.utils.rememberTextFieldManager
3035import io.snabble.sdk.ui.payment.creditcard.shared.country.displayName
3136import io.snabble.sdk.ui.payment.creditcard.shared.country.domain.models.Address
@@ -46,6 +51,8 @@ internal fun CustomerInfoInputScreen(
4651 onBackNavigationClick : () -> Unit ,
4752) {
4853 val preFilledData = Snabble .formPrefillData
54+ val primaryButtonConfig = ThemeManager .primaryButtonConfig
55+ val secondaryButtonConfig = ThemeManager .secondaryButtonConfig
4956
5057 var name by remember { mutableStateOf(preFilledData?.name.orEmpty()) }
5158 var intCallingCode by remember { mutableStateOf(" " ) }
@@ -193,11 +200,16 @@ internal fun CustomerInfoInputScreen(
193200 verticalArrangement = Arrangement .spacedBy(4 .dp),
194201 ) {
195202 Button (
196- modifier = Modifier .fillMaxWidth(),
203+ modifier = Modifier
204+ .fillMaxWidth()
205+ .defaultMinSize(minHeight = primaryButtonConfig.minHeight.dp),
197206 onClick = { onSendAction(createCustomerInfo()) },
198207 enabled = ! isLoading && areRequiredFieldsSet
199208 ) {
200- Text (stringResource(R .string.Snabble_Payment_CustomerInfo_next ))
209+ Text (
210+ stringResource(R .string.Snabble_Payment_CustomerInfo_next ),
211+ fontSize = primaryButtonConfig.textSize.sp
212+ )
201213 }
202214 AnimatedVisibility (visible = showError) {
203215 Text (
@@ -208,11 +220,26 @@ internal fun CustomerInfoInputScreen(
208220 )
209221 }
210222 }
211- TextButton (
212- modifier = Modifier .fillMaxWidth(),
213- onClick = onBackNavigationClick
214- ) {
215- Text (text = stringResource(R .string.Snabble_cancel ))
223+ if (! secondaryButtonConfig.useOutlinedButton) {
224+ TextButton (
225+ modifier = Modifier .fillMaxWidth(),
226+ onClick = onBackNavigationClick
227+ ) {
228+ Text (text = stringResource(R .string.Snabble_cancel ))
229+ }
230+ } else {
231+ OutlinedButton (
232+ modifier = Modifier
233+ .fillMaxWidth()
234+ .defaultMinSize(minHeight = secondaryButtonConfig.minHeight.dp),
235+ onClick = onBackNavigationClick,
236+ border = BorderStroke (width = 1 .dp, color = MaterialTheme .colorScheme.primary)
237+ ) {
238+ Text (
239+ text = stringResource(R .string.Snabble_cancel ),
240+ fontSize = secondaryButtonConfig.textSize.sp
241+ )
242+ }
216243 }
217244 }
218245}
0 commit comments