Merge pull request #1190 from Safelite/feature/humphries/INSR-8881.2
INSR-8881: Ensure modal links don't end up with doubled listeners
This commit is contained in:
commit
b7733346fb
2 changed files with 13 additions and 7 deletions
|
|
@ -526,13 +526,18 @@ export function doesCopyContainTextLink(copy) {
|
||||||
*
|
*
|
||||||
* @param context
|
* @param context
|
||||||
*/
|
*/
|
||||||
export function setupModalLinks(context) {
|
export function setupModalLinks(context, abortSignal = null) {
|
||||||
context.$nextTick(() => {
|
context.$nextTick(() => {
|
||||||
const elements = document.getElementsByClassName('modal-text');
|
const elements = document.getElementsByClassName('modal-text');
|
||||||
for (const element of elements) {
|
for (const element of elements) {
|
||||||
const target = element.getAttribute('modalTarget');
|
const target = element.getAttribute('modalTarget');
|
||||||
if (target) {
|
if (target) {
|
||||||
element.addEventListener('click', () => context.$refs[target].openModal());
|
if (abortSignal) {
|
||||||
|
element.addEventListener('click', () => context.$refs[target].openModal(), { signal: abortSignal });
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
element.addEventListener('click', () => context.$refs[target].openModal());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -131,7 +131,6 @@ import recalModal from '@/iss-components/recal-modal/recal-modal.vue';
|
||||||
// Import Supporting Files
|
// Import Supporting Files
|
||||||
import {
|
import {
|
||||||
fetchCmsContentForPage,
|
fetchCmsContentForPage,
|
||||||
setupModalLink,
|
|
||||||
setupModalLinks,
|
setupModalLinks,
|
||||||
processIfStatements
|
processIfStatements
|
||||||
} from '@/helpers/cms-content-helper.js';
|
} from '@/helpers/cms-content-helper.js';
|
||||||
|
|
@ -231,7 +230,8 @@ export default {
|
||||||
},
|
},
|
||||||
RECAL_MODAL_REF_NAME,
|
RECAL_MODAL_REF_NAME,
|
||||||
CANCEL_CLAIM_REF_NAME,
|
CANCEL_CLAIM_REF_NAME,
|
||||||
OEM_ENDORSEMENT_REF_NAME
|
OEM_ENDORSEMENT_REF_NAME,
|
||||||
|
abortController: new AbortController()
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|
@ -367,8 +367,9 @@ export default {
|
||||||
watch: {
|
watch: {
|
||||||
nextStepsBody(newValue, oldValue) {
|
nextStepsBody(newValue, oldValue) {
|
||||||
if (newValue !== oldValue) {
|
if (newValue !== oldValue) {
|
||||||
setupModalLink(this, RECAL_MODAL_REF_NAME);
|
this.abortController.abort();
|
||||||
setupModalLink(this, OEM_ENDORSEMENT_REF_NAME);
|
this.abortController = new AbortController();
|
||||||
|
setupModalLinks(this, this.abortController.signal);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -376,7 +377,7 @@ export default {
|
||||||
if (this.isPageLoading) {
|
if (this.isPageLoading) {
|
||||||
showIssLoadingModal(true);
|
showIssLoadingModal(true);
|
||||||
}
|
}
|
||||||
setupModalLinks(this);
|
setupModalLinks(this, this.abortController.signal);
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
logEventsToGA() {
|
logEventsToGA() {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue