fix(statuspill): wait for document.body before appending status pill when script loads before <body> is parsed; defer via DOMContentLoaded or requestAnimationFrame

This commit is contained in:
2026-03-03 21:17:44 +00:00
parent c5c45f668f
commit e290744451
3 changed files with 17 additions and 1 deletions

View File

@@ -311,6 +311,15 @@ export class TypedserverStatusPill extends LitElement {
*/
public show(): void {
if (!this.appended) {
if (!document.body) {
// Script loaded before <body> was parsed (async module) — wait for DOM
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', () => this.show(), { once: true });
} else {
requestAnimationFrame(() => this.show());
}
return;
}
document.body.appendChild(this);
this.appended = true;
}