From 605ae6f0e5020c4088299b7fdcf72c8e39451e04 Mon Sep 17 00:00:00 2001 From: Orest Bida Date: Sat, 27 May 2023 15:06:50 +0200 Subject: [PATCH] Remove optional chaining operator `?.` to improve browser support --- src/core/api.js | 4 ++-- src/core/modals/consentModal.js | 4 ++-- src/core/modals/preferencesModal.js | 10 +++++----- src/utils/cookies.js | 2 +- src/utils/general.js | 6 +++--- src/utils/gui-manager.js | 16 ++++++++-------- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/core/api.js b/src/core/api.js index 4d142e82..49b86cc3 100644 --- a/src/core/api.js +++ b/src/core/api.js @@ -709,12 +709,12 @@ export const reset = (deleteCookie) => { /** * Remove main container from DOM */ - _ccMain?.remove(); + _ccMain && _ccMain.remove(); /** * Remove any remaining classes */ - _htmlDom?.classList.remove( + _htmlDom && _htmlDom.classList.remove( TOGGLE_DISABLE_INTERACTION_CLASS, TOGGLE_PREFERENCES_MODAL_CLASS, TOGGLE_CONSENT_MODAL_CLASS diff --git a/src/core/modals/consentModal.js b/src/core/modals/consentModal.js index b1bd88d2..3ebebdde 100644 --- a/src/core/modals/consentModal.js +++ b/src/core/modals/consentModal.js @@ -112,8 +112,8 @@ export const createConsentModal = (api, createMainContainer) => { const boxLayout = 'box', guiOptions = state._userConfig.guiOptions, - consentModalOptions = guiOptions?.consentModal, - consentModalLayout = consentModalOptions?.layout || boxLayout, + consentModalOptions = guiOptions && guiOptions.consentModal, + consentModalLayout = consentModalOptions && consentModalOptions.layout || boxLayout, isBoxLayout = consentModalLayout.split(' ')[0] === boxLayout; /** diff --git a/src/core/modals/preferencesModal.js b/src/core/modals/preferencesModal.js index 3cb306d2..149ef3ce 100644 --- a/src/core/modals/preferencesModal.js +++ b/src/core/modals/preferencesModal.js @@ -162,7 +162,7 @@ export const createPreferencesModal = (api, createMainContainer) => { let sectionToggleContainer; - sectionsData?.forEach((section, sectionIndex) => { + sectionsData && sectionsData.forEach((section, sectionIndex) => { const sTitleData = section.title, @@ -170,9 +170,9 @@ export const createPreferencesModal = (api, createMainContainer) => { sLinkedCategory = section.linkedCategory, sCurrentCategoryObject = sLinkedCategory && state._allDefinedCategories[sLinkedCategory], sCookieTableData = section.cookieTable, - sCookieTableBody = sCookieTableData?.body, - sCookieTableCaption = sCookieTableData?.caption, - sCreateCookieTable = sCookieTableBody?.length > 0, + sCookieTableBody = sCookieTableData && sCookieTableData.body, + sCookieTableCaption = sCookieTableData && sCookieTableData.caption, + sCreateCookieTable = sCookieTableBody && sCookieTableBody.length > 0, hasToggle = !!sCurrentCategoryObject, /** @@ -204,7 +204,7 @@ export const createPreferencesModal = (api, createMainContainer) => { for(const serviceName of sServiceNames){ const service = sServices[serviceName]; - const serviceLabel = service?.label || serviceName; + const serviceLabel = service && service.label || serviceName; const serviceDiv = createNode(DIV_TAG); const serviceHeader = createNode(DIV_TAG); const serviceIconContainer = createNode(DIV_TAG); diff --git a/src/utils/cookies.js b/src/utils/cookies.js index 40d2e58a..3a305521 100644 --- a/src/utils/cookies.js +++ b/src/utils/cookies.js @@ -54,7 +54,7 @@ export const autoclearCookiesHelper = (clearOnFirstConsent) => { const category = state._allDefinedCategories[currentCategoryName], autoClear = category.autoClear, - autoClearCookies = autoClear?.cookies || [], + autoClearCookies = autoClear && autoClear.cookies || [], categoryWasJustChanged = elContains(state._lastChangedCategoryNames, currentCategoryName), categoryIsDisabled = !elContains(state._acceptedCategories, currentCategoryName), diff --git a/src/utils/general.js b/src/utils/general.js index 21492654..52a68391 100644 --- a/src/utils/general.js +++ b/src/utils/general.js @@ -386,7 +386,7 @@ export const resolveEnabledServices = (relativeCategory) => { const services = _allDefinedServices[categoryName]; const serviceNames = getKeys(services); - const customServicesSelection = _enabledServices[categoryName]?.length > 0; + const customServicesSelection = _enabledServices[categoryName] && _enabledServices[categoryName].length > 0; const readOnlyCategory = elContains(_readOnlyCategories, categoryName); /** @@ -559,7 +559,7 @@ export const fetchJson = async (url) => { const response = await fetch(url); - return response?.ok + return response && response.ok ? await response.json() : false; @@ -727,7 +727,7 @@ export const addDataButtonListeners = (elem, api, createPreferencesModal, create * @param {1 | 2} [modalId] */ export const focus = (el, modalId) => { - el?.focus(); + el && el.focus(); if(modalId) { globalObj._state._currentFocusedModal = modalId === 1 diff --git a/src/utils/gui-manager.js b/src/utils/gui-manager.js index bef1197d..1d9846f8 100644 --- a/src/utils/gui-manager.js +++ b/src/utils/gui-manager.js @@ -88,8 +88,8 @@ const ALL_PM_LAYOUTS = { export const guiManager = (applyToModal) => { const guiOptions = globalObj._state._userConfig.guiOptions; - const consentModalOptions = guiOptions?.consentModal; - const preferencesModalOptions = guiOptions?.preferencesModal; + const consentModalOptions = guiOptions && guiOptions.consentModal; + const preferencesModalOptions = guiOptions && guiOptions.preferencesModal; if(applyToModal === 0){ setLayout( @@ -130,12 +130,12 @@ const setLayout = (modal, allowedLayoutsObj, userGuiOptions, modalClassPrefix, d */ modal.className = modalClassName; - const layout = userGuiOptions?.layout; - const position = userGuiOptions?.position; - const flipButtons = userGuiOptions?.flipButtons; - const equalWeightButtons = userGuiOptions?.equalWeightButtons !== false; + const layout = userGuiOptions && userGuiOptions.layout; + const position = userGuiOptions && userGuiOptions.position; + const flipButtons = userGuiOptions && userGuiOptions.flipButtons; + const equalWeightButtons = userGuiOptions && userGuiOptions.equalWeightButtons !== false; - const layoutSplit = layout?.split(' ') || []; + const layoutSplit = layout && layout.split(' ') || []; const layoutName = layoutSplit[0]; const layoutVariant = layoutSplit[1]; @@ -147,7 +147,7 @@ const setLayout = (modal, allowedLayoutsObj, userGuiOptions, modalClassPrefix, d const currentLayout = allowedLayoutsObj[currentLayoutName]; const currentLayoutVariant = elContains(currentLayout._variants, layoutVariant) && layoutVariant; - const positionSplit = position?.split(' ') || []; + const positionSplit = position && position.split(' ') || []; const positionV = positionSplit[0]; const positionH = modalClassPrefix === CLASS_CONSTANTS._pmPrefix