Merge pull request #40 from jeanmatthieud/fix-checkout-details-validation

Fix email validation before submitting checkout details
This commit is contained in:
Anthony Gordon 2022-08-30 15:12:36 +10:00 committed by GitHub
commit 94b989ad9d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -298,7 +298,7 @@ class _CheckoutDetailsPageState extends State<CheckoutDetailsPage> {
city: _txtBillingCity.text,
postalCode: _txtBillingPostalCode.text,
phoneNumber: _txtBillingPhoneNumber.text,
emailAddress: _txtBillingEmailAddress.text,
emailAddress: _txtBillingEmailAddress.text.trim(),
customerCountry: _billingCountry,
);
@ -314,7 +314,7 @@ class _CheckoutDetailsPageState extends State<CheckoutDetailsPage> {
addressLine: _txtShippingAddressLine.text,
city: _txtShippingCity.text,
postalCode: _txtShippingPostalCode.text,
emailAddress: _txtShippingEmailAddress.text,
emailAddress: _txtShippingEmailAddress.text.trim(),
customerCountry: _shippingCountry);
if (customerShippingAddress.hasMissingFields()) {
@ -328,10 +328,15 @@ class _CheckoutDetailsPageState extends State<CheckoutDetailsPage> {
return;
}
CheckoutSession.getInstance.billingDetails!.shippingAddress =
customerShippingAddress;
}
// Email validation
String billingEmail = _txtBillingEmailAddress.text;
String shippingEmail = _txtShippingEmailAddress.text;
if (billingEmail.isNotEmpty && !validate.isEmail(billingEmail)) {
String billingEmail = CheckoutSession.getInstance.billingDetails!.billingAddress!.emailAddress!;
String shippingEmail = CheckoutSession.getInstance.billingDetails!.shippingAddress!.emailAddress!;
// Billing email is required for Stripe
if (billingEmail.isEmpty || !validate.isEmail(billingEmail)) {
showToastNotification(
context,
title: trans("Oops"),
@ -351,10 +356,6 @@ class _CheckoutDetailsPageState extends State<CheckoutDetailsPage> {
return;
}
CheckoutSession.getInstance.billingDetails!.shippingAddress =
customerShippingAddress;
}
if (valRememberDetails == true) {
await CheckoutSession.getInstance.saveBillingAddress();
await CheckoutSession.getInstance.saveShippingAddress();