diff --git a/src/helpers/cms-content-helper.js b/src/helpers/cms-content-helper.js index 2ce5dc26..67206666 100644 --- a/src/helpers/cms-content-helper.js +++ b/src/helpers/cms-content-helper.js @@ -1,3 +1,8 @@ +/* eslint-disable no-use-before-define */ +/* eslint-disable no-param-reassign */ +/* eslint-disable jsdoc/require-param-type */ +/* eslint-disable jsdoc/require-param-description */ +/* eslint-disable jsdoc/require-returns */ import dynamicStrings from '@/constants/dynamic-strings'; import { useMainStore } from '@/store'; @@ -174,6 +179,45 @@ export function fetchCmsContentForPage(issPage) { ); } +export function fetchGlobalCmsContent(issComponent) { + const store = useMainStore(); + + return ( + store.getPageData(issComponent) + .then((baseResponse) => processPageData(baseResponse, null))); +} + +export function updateCmsSiteHeader(cmsResponse) { + const clientCmsSiteHeader = getCmsSiteHeader(cmsResponse); + useMainStore().issConfig.clientHeader = clientCmsSiteHeader; +} + +function getCmsSiteHeader(cmsResponse) { + if (cmsResponse?.SiteHeaderWidget) { + const siteHeader = cmsResponse?.SiteHeaderWidget; + if (siteHeader.Answers) { + const { parentAccountNumber } = useMainStore().issConfig; + let headerAnswersToUse = siteHeader.Answers + .find((answer) => answer.AccountNumber === parentAccountNumber.toString()); + if (headerAnswersToUse === null) { + headerAnswersToUse = siteHeader.Answers + .find((answer) => answer.AccountNumber === '0'); + } + + if (headerAnswersToUse) { + return { + altText: headerAnswersToUse.AltText, + clientName: headerAnswersToUse.ClientName, + hexCode: headerAnswersToUse.HexCode, + imageId: headerAnswersToUse.ImageId, + imageUrl: headerAnswersToUse.AnswerImageUrl + }; + } + } + } + return {}; +} + /** * @function mapStringToModal * @param str @@ -476,6 +520,7 @@ export function doesCopyContainTextLink(copy) { export function setupModalLinks(context) { context.$nextTick(() => { const elements = document.getElementsByClassName('modal-text'); + // eslint-disable-next-line no-restricted-syntax for (const element of elements) { const target = element.getAttribute('modalTarget'); if (target) { diff --git a/src/iss-components/site-header/site-header.vue b/src/iss-components/site-header/site-header.vue index 3d8b0545..d88e71dc 100644 --- a/src/iss-components/site-header/site-header.vue +++ b/src/iss-components/site-header/site-header.vue @@ -46,19 +46,19 @@ export default ({ messageHeadline: '', type: '' }, - headerAnswers: null + cmsClientHeader: null }; }, computed: { imageSrc() { - return this.headerAnswers ? this.headerAnswers.AnswerImageUrl : ''; + return this.cmsClientHeader ? this.cmsClientHeader.imageUrl : ''; }, altText() { - return this.headerAnswers ? this.headerAnswers.AltText : ''; + return this.cmsClientHeader ? this.cmsClientHeader.altText : ''; }, logoBackgroundStyle() { return { - 'background-color': this.headerAnswers ? this.headerAnswers.HexCode : '#FFFFFF' + 'background-color': this.cmsClientHeader ? this.cmsClientHeader.hexCode : '#FFFFFF' }; } }, @@ -86,10 +86,9 @@ export default ({ }, methods: { setupHeader() { - const answers = useMainStore().issConfig.issCmsContent.SiteHeaderWidget.Answers; - if (Array.isArray(answers)) { - this.headerAnswers = answers.filter((x) => x.AccountNumber == this.mainStore.issConfig.parentAccountNumber)[0]; - this.headerAnswers = !this.headerAnswers ? answers.filter((x) => x.AccountNumber === '0')[0] : this.headerAnswers; + const { clientHeader } = useMainStore().issConfig; + if (clientHeader) { + this.cmsClientHeader = clientHeader; } } } diff --git a/src/layouts/entry-page/entry-page.vue b/src/layouts/entry-page/entry-page.vue index 18e3824d..5f4810cc 100644 --- a/src/layouts/entry-page/entry-page.vue +++ b/src/layouts/entry-page/entry-page.vue @@ -9,8 +9,6 @@