diff --git a/src/helpers/cms-content-helper.js b/src/helpers/cms-content-helper.js index bf12c5c2..d2c3ce97 100644 --- a/src/helpers/cms-content-helper.js +++ b/src/helpers/cms-content-helper.js @@ -526,13 +526,13 @@ 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()); + element.addEventListener('click', () => context.$refs[target].openModal(), { signal: abortSignal }); } } }); @@ -547,6 +547,7 @@ export function setupModalLink(context, desiredTarget) { context.$nextTick(() => { const element = document.querySelector(`[modalTarget=${desiredTarget}]`); if (element) { + element.removeEventListener('click', () => context.$refs[desiredTarget].openModal()); element.addEventListener('click', () => context.$refs[desiredTarget].openModal()); } }); diff --git a/src/layouts/coverage-statement/coverage-statement.vue b/src/layouts/coverage-statement/coverage-statement.vue index 88a0ecb7..54e341ff 100644 --- a/src/layouts/coverage-statement/coverage-statement.vue +++ b/src/layouts/coverage-statement/coverage-statement.vue @@ -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() {