From 1ca841e6c03573c00f5143b254010f5707d47c1e Mon Sep 17 00:00:00 2001 From: Jarek Radosz Date: Sun, 17 Feb 2019 14:32:16 +0100 Subject: [PATCH] Add a fallback for missing uiContextualLayerPositioner (#781) --- source/browser.ts | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/source/browser.ts b/source/browser.ts index 58aa83dbb..0f3e4583b 100644 --- a/source/browser.ts +++ b/source/browser.ts @@ -21,17 +21,20 @@ async function withMenu( menuButtonElement.click(); // Wait for the menu to close before removing the 'hide-dropdowns' class - const menuLayer = document.querySelector( - '.uiContextualLayerPositioner:not(.hidden_elem)' - )!; + const menuLayer = document.querySelector('.uiContextualLayerPositioner:not(.hidden_elem)'); - const observer = new MutationObserver(() => { - if (menuLayer.classList.contains('hidden_elem')) { - classList.remove('hide-dropdowns'); - observer.disconnect(); - } - }); - observer.observe(menuLayer, {attributes: true, attributeFilter: ['class']}); + if (menuLayer) { + const observer = new MutationObserver(() => { + if (menuLayer.classList.contains('hidden_elem')) { + classList.remove('hide-dropdowns'); + observer.disconnect(); + } + }); + observer.observe(menuLayer, {attributes: true, attributeFilter: ['class']}); + } else { + // Fallback in case .uiContextualLayerPositioner is missing + classList.remove('hide-dropdowns'); + } await callback(); }