From 6b22d2458b615db9261ad855684a73b0d0182b13 Mon Sep 17 00:00:00 2001 From: beijixiaohu <60805870+beijixiaohu@users.noreply.github.com> Date: Fri, 10 Jan 2025 13:53:54 +0800 Subject: [PATCH] fix: improve CSS insertion logic to handle document loading state --- vite.config.ts | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/vite.config.ts b/vite.config.ts index f5a0f64..4aa7f19 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -80,11 +80,21 @@ export default defineConfig(({ command, mode }) => { code: `\ function __insertCSSVueSonner(code) { if (!code || typeof document == 'undefined') return - let head = document.head || document.getElementsByTagName('head')[0] - let style = document.createElement('style') - style.type = 'text/css' - head.appendChild(style) - ;style.styleSheet ? (style.styleSheet.cssText = code) : style.appendChild(document.createTextNode(code)) + + function insertCSS() { + let head = document.head || document.getElementsByTagName('head')[0] + if (!head) return + let style = document.createElement('style') + style.type = 'text/css' + head.appendChild(style) + style.styleSheet ? (style.styleSheet.cssText = code) : style.appendChild(document.createTextNode(code)) + } + + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', insertCSS) + } else { + insertCSS() + } }\n __insertCSSVueSonner(${JSON.stringify(cssCodeStr)}) \n ${code}`,