Skip to content

Commit 45d8f22

Browse files
feat: phone country code accept (#452)
1 parent b45831b commit 45d8f22

File tree

3 files changed

+31
-8
lines changed

3 files changed

+31
-8
lines changed

src/Components/DynamicFields.res

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -481,6 +481,7 @@ let make = (
481481
| ShippingAddressCity
482482
| ShippingAddressPincode
483483
| ShippingAddressState
484+
| PhoneCountryCode
484485
| ShippingAddressCountry(_) => React.null
485486
}}
486487
</div>
@@ -763,6 +764,7 @@ let make = (
763764
| ShippingAddressCountry(_)
764765
| CryptoCurrencyNetworks
765766
| DateOfBirth
767+
| PhoneCountryCode
766768
| None => React.null
767769
}}
768770
</div>

src/Payments/PaymentMethodsRecord.res

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ type paymentMethodsFields =
1111
| None
1212
| BillingName
1313
| PhoneNumber
14+
| PhoneCountryCode
1415
| AddressLine1
1516
| AddressLine2
1617
| AddressCity
@@ -558,6 +559,7 @@ let getPaymentMethodsFieldTypeFromString = (str, isBancontact) => {
558559
| ("user_shipping_address_state", _) => ShippingAddressState
559560
| ("user_crypto_currency_network", _) => CryptoCurrencyNetworks
560561
| ("user_date_of_birth", _) => DateOfBirth
562+
| ("user_phone_number_country_code", _) => PhoneCountryCode
561563
| _ => None
562564
}
563565
}

src/Utilities/DynamicFieldsUtils.res

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -289,17 +289,32 @@ let useSetInitialRequiredFields = (
289289
field: RecoilAtomTypes.field,
290290
item: PaymentMethodsRecord.required_fields,
291291
isNameField,
292+
~isCountryCodeAvailable=?,
292293
) => {
293294
if isNameField && field.value === "" {
294-
setMethod(prev => {
295-
...prev,
296-
value: getNameValue(item),
297-
})
295+
if isCountryCodeAvailable->Option.isSome {
296+
setMethod(prev => {
297+
...prev,
298+
countryCode: getNameValue(item),
299+
})
300+
} else {
301+
setMethod(prev => {
302+
...prev,
303+
value: getNameValue(item),
304+
})
305+
}
298306
} else if field.value === "" {
299-
setMethod(prev => {
300-
...prev,
301-
value: item.value,
302-
})
307+
if isCountryCodeAvailable->Option.isSome {
308+
setMethod(prev => {
309+
...prev,
310+
countryCode: item.value,
311+
})
312+
} else {
313+
setMethod(prev => {
314+
...prev,
315+
value: item.value,
316+
})
317+
}
303318
}
304319
}
305320

@@ -338,6 +353,8 @@ let useSetInitialRequiredFields = (
338353
}
339354
| AddressState => setFields(setState, state, requiredField, false)
340355
| AddressCity => setFields(setCity, city, requiredField, false)
356+
| PhoneCountryCode =>
357+
setFields(setPhone, phone, requiredField, false, ~isCountryCodeAvailable=true)
341358
| AddressPincode => setFields(setPostalCode, postalCode, requiredField, false)
342359
| PhoneNumber => setFields(setPhone, phone, requiredField, false)
343360
| BlikCode => setFields(setBlikCode, blikCode, requiredField, false)
@@ -427,6 +444,7 @@ let useRequiredFieldsBody = (
427444
| AddressState => state.value
428445
| BlikCode => blikCode.value->Utils.removeHyphen
429446
| PhoneNumber => phone.value
447+
| PhoneCountryCode => phone.countryCode->Option.getOr("")
430448
| Currency(_) => currency
431449
| Country => country
432450
| Bank =>
@@ -538,6 +556,7 @@ let useRequiredFieldsBody = (
538556
state.value,
539557
blikCode.value,
540558
phone.value,
559+
phone.countryCode,
541560
currency,
542561
billingName.value,
543562
country,

0 commit comments

Comments
 (0)