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:
AHumphriesSL 2026-04-17 12:29:42 -04:00 committed by GitHub
commit b7733346fb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 13 additions and 7 deletions

View file

@ -526,13 +526,18 @@ export function doesCopyContainTextLink(copy) {
*
* @param context
*/
export function setupModalLinks(context) {
export function setupModalLinks(context, abortSignal = null) {
context.$nextTick(() => {
const elements = document.getElementsByClassName('modal-text');
for (const element of elements) {
const target = element.getAttribute('modalTarget');
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());
}
}
}
});

View file

@ -131,7 +131,6 @@ import recalModal from '@/iss-components/recal-modal/recal-modal.vue';
// Import Supporting Files
import {
fetchCmsContentForPage,
setupModalLink,
setupModalLinks,
processIfStatements
} from '@/helpers/cms-content-helper.js';
@ -231,7 +230,8 @@ export default {
},
RECAL_MODAL_REF_NAME,
CANCEL_CLAIM_REF_NAME,
OEM_ENDORSEMENT_REF_NAME
OEM_ENDORSEMENT_REF_NAME,
abortController: new AbortController()
};
},
computed: {
@ -367,8 +367,9 @@ export default {
watch: {
nextStepsBody(newValue, oldValue) {
if (newValue !== oldValue) {
setupModalLink(this, RECAL_MODAL_REF_NAME);
setupModalLink(this, OEM_ENDORSEMENT_REF_NAME);
this.abortController.abort();
this.abortController = new AbortController();
setupModalLinks(this, this.abortController.signal);
}
}
},
@ -376,7 +377,7 @@ export default {
if (this.isPageLoading) {
showIssLoadingModal(true);
}
setupModalLinks(this);
setupModalLinks(this, this.abortController.signal);
},
methods: {
logEventsToGA() {