From 1785d4fef6b2c2adaa645e44419c3da883863562 Mon Sep 17 00:00:00 2001 From: pimlie Date: Sun, 23 May 2021 17:59:05 +0200 Subject: [PATCH] fix: check if DOM is still loading before cleanup --- src/manager.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/manager.ts b/src/manager.ts index 4b7e999..daf0f4b 100644 --- a/src/manager.ts +++ b/src/manager.ts @@ -177,16 +177,22 @@ export class MetaManager { if (!isSSR && !this.ssrCleanedUp) { this.ssrCleanedUp = true - // Listen for DOM loaded because tags in the body couldnt - // have loaded yet once the manager does it first render - // (preferable there should only be one meta render on hydration) - window.addEventListener('DOMContentLoaded', () => { + const cleanUpSSR = () => { const ssrTags = document.querySelectorAll(`[${ssrAttribute}]`) if (ssrTags && ssrTags.length) { ssrTags.forEach(el => el.parentNode && el.parentNode.removeChild(el)) } - }, { once: true }) + } + + if (document.readyState === 'loading') { + // Listen for DOM loaded because tags in the body couldnt + // have loaded yet once the manager does it first render + // (preferable there should only be one meta render on hydration) + window.addEventListener('DOMContentLoaded', cleanUpSSR, { once: true }) + } else { + cleanUpSSR() + } } const teleports: MetaTeleports = {}