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:
@@ -1,5 +1,12 @@
|
||||
# Changelog
|
||||
|
||||
## 2026-03-03 - 8.4.1 - fix(statuspill)
|
||||
wait for document.body before appending status pill when script loads before <body> is parsed; defer via DOMContentLoaded or requestAnimationFrame
|
||||
|
||||
- Guard against missing document.body to avoid errors when the script runs before the <body> is parsed
|
||||
- Retry showing on DOMContentLoaded if the document is still loading
|
||||
- Fallback to requestAnimationFrame to schedule the show on the next frame if DOM is already parsed
|
||||
|
||||
## 2026-02-24 - 8.4.0 - feat(utilityservers)
|
||||
add injectReload and noCache options and enable dev features by default
|
||||
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@api.global/typedserver',
|
||||
version: '8.4.0',
|
||||
version: '8.4.1',
|
||||
description: 'A TypeScript-based project for easy serving of static files with support for live reloading, compression, and typed requests.'
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user