From e6393aed6e3f6162cf23e05841007078c0d6db41 Mon Sep 17 00:00:00 2001 From: ilhan orhan Date: Wed, 22 May 2019 17:01:54 +0300 Subject: [PATCH] chore: filter out ui5 webcomponents in #whenFinished (#425) --- packages/base/src/RenderScheduler.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/base/src/RenderScheduler.js b/packages/base/src/RenderScheduler.js index b1f975c8a098..82235072a465 100644 --- a/packages/base/src/RenderScheduler.js +++ b/packages/base/src/RenderScheduler.js @@ -113,19 +113,23 @@ class RenderScheduler { return renderTaskPromise; } + static getNotDefinedComponents() { + return Array.from(document.querySelectorAll(":not(:defined)")).filter(el => el.localName.startsWith("ui5-")); + } + /** * return a promise that will be resolved once all ui5 webcomponents on the page have their shadow root ready */ static async whenShadowDOMReady() { - const undefinedElements = document.querySelectorAll(":not(:defined)"); + const undefinedElements = this.getNotDefinedComponents(); - const definedPromises = [...undefinedElements].map( + const definedPromises = undefinedElements.map( el => customElements.whenDefined(el.localName) ); const timeoutPromise = new Promise(resolve => setTimeout(resolve, 5000)); await Promise.race([Promise.all(definedPromises), timeoutPromise]); - const stillUndefined = document.querySelectorAll(":not(:defined)"); + const stillUndefined = this.getNotDefinedComponents(); if (stillUndefined.length) { // eslint-disable-next-line console.warn("undefined elements after 5 seconds: ", [...stillUndefined].map(el => el.localName));