From dfa8c8e712650850354f4533803831b83a046eb4 Mon Sep 17 00:00:00 2001 From: Matt Stover Date: Thu, 30 Nov 2023 13:41:01 -0800 Subject: [PATCH] fix: guard against missing fields and draft ui-global-promo banners --- .../GlobalPromotionalBannerContentful.vue | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/components/WwwFrame/PromotionalBanner/GlobalPromotionalBannerContentful.vue b/src/components/WwwFrame/PromotionalBanner/GlobalPromotionalBannerContentful.vue index d91ecff0d3..1227639a2e 100644 --- a/src/components/WwwFrame/PromotionalBanner/GlobalPromotionalBannerContentful.vue +++ b/src/components/WwwFrame/PromotionalBanner/GlobalPromotionalBannerContentful.vue @@ -76,6 +76,17 @@ export default { // if setting is enabled determine which banner to display if (isGlobalSettingEnabled) { const activePromoBanner = uiGlobalPromoSetting.fields.content.find(promoContent => { + // guard against drafts + if (promoContent?.sys?.revision === 0) { + return false; + } + // guard against missing fields + if (!promoContent?.fields + || !promoContent?.fields?.active + || !promoContent?.fields?.startDate + || !promoContent?.fields?.endDate) { + return false; + } return settingEnabled( promoContent.fields, 'active', @@ -84,7 +95,8 @@ export default { ); }); - if (activePromoBanner) { + // check for activePromoBanner and ensure it has content fields + if (activePromoBanner && activePromoBanner?.fields) { // check for visibility based on current route and hiddenUrls field const hiddenUrls = globalBannerDenyList.concat(activePromoBanner?.fields?.hiddenUrls ?? []); const visibleUrls = [];