abmp-npm 2.0.39 → 2.0.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/pages/personalDetails.js +30 -5
package/package.json
CHANGED
package/pages/personalDetails.js
CHANGED
|
@@ -89,8 +89,10 @@ async function personalDetailsOnReady({
|
|
|
89
89
|
};
|
|
90
90
|
|
|
91
91
|
const slugValidationTimeout = {};
|
|
92
|
+
const contactEmailValidationTimeout = {};
|
|
92
93
|
let isSlugValid = true;
|
|
93
94
|
let currentSlugValidationId = 0;
|
|
95
|
+
let currentContactEmailValidationId = 0;
|
|
94
96
|
|
|
95
97
|
const SLUG_FLAGS = {
|
|
96
98
|
VALID: '#validSlugFlag',
|
|
@@ -531,14 +533,32 @@ async function personalDetailsOnReady({
|
|
|
531
533
|
forceTriggerContactEmailCustomValidation(value);
|
|
532
534
|
};
|
|
533
535
|
|
|
534
|
-
elements.$contactFormEmailInput.onInput(
|
|
536
|
+
elements.$contactFormEmailInput.onInput(event => {
|
|
535
537
|
const value = event.target.value;
|
|
536
538
|
_$w('#saveContactBookingButton').disable();
|
|
539
|
+
|
|
540
|
+
if (contactEmailValidationTimeout.validation) {
|
|
541
|
+
clearTimeout(contactEmailValidationTimeout.validation);
|
|
542
|
+
}
|
|
543
|
+
|
|
537
544
|
if (!value) {
|
|
538
545
|
setContactEmailInvalid(CONTACT_EMAIL_VALIDATION_MESSAGES.REQUIRED, value);
|
|
539
|
-
|
|
546
|
+
checkFormChanges(FORM_SECTION_HANDLER_MAP.CONTACT_BOOKING);
|
|
547
|
+
return;
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
const validationId = ++currentContactEmailValidationId;
|
|
551
|
+
contactEmailValidationTimeout.validation = setTimeout(async () => {
|
|
540
552
|
try {
|
|
553
|
+
if (validationId !== currentContactEmailValidationId) {
|
|
554
|
+
return;
|
|
555
|
+
}
|
|
556
|
+
|
|
541
557
|
const isAlreadyUsed = await isEmailAlreadyUsed(value, itemMemberObj.memberId);
|
|
558
|
+
if (validationId !== currentContactEmailValidationId) {
|
|
559
|
+
return;
|
|
560
|
+
}
|
|
561
|
+
|
|
542
562
|
if (isAlreadyUsed) {
|
|
543
563
|
setContactEmailInvalid(CONTACT_EMAIL_VALIDATION_MESSAGES.ALREADY_TAKEN, value);
|
|
544
564
|
} else {
|
|
@@ -548,10 +568,15 @@ async function personalDetailsOnReady({
|
|
|
548
568
|
}
|
|
549
569
|
} catch (error) {
|
|
550
570
|
console.error('Email validation error:', error);
|
|
551
|
-
|
|
571
|
+
if (validationId === currentContactEmailValidationId) {
|
|
572
|
+
setContactEmailInvalid(CONTACT_EMAIL_VALIDATION_MESSAGES.ERROR, value);
|
|
573
|
+
}
|
|
574
|
+
} finally {
|
|
575
|
+
if (validationId === currentContactEmailValidationId) {
|
|
576
|
+
checkFormChanges(FORM_SECTION_HANDLER_MAP.CONTACT_BOOKING);
|
|
577
|
+
}
|
|
552
578
|
}
|
|
553
|
-
}
|
|
554
|
-
checkFormChanges(FORM_SECTION_HANDLER_MAP.CONTACT_BOOKING);
|
|
579
|
+
}, 500);
|
|
555
580
|
});
|
|
556
581
|
|
|
557
582
|
_$w('#slugInput').onInput(event => {
|