From 53fffe8e308b2f384460342e382a33f6319565f0 Mon Sep 17 00:00:00 2001 From: rahim Date: Wed, 8 Apr 2026 00:43:16 -0700 Subject: [PATCH] fix(html): add destroy guards to connectedCallback (#1284) --- packages/html/src/ui/alert-dialog/alert-dialog-element.ts | 1 + .../src/ui/buffering-indicator/buffering-indicator-element.ts | 1 + packages/html/src/ui/error-dialog/error-dialog-element.ts | 1 + packages/html/src/ui/media-button-element.ts | 1 + 4 files changed, 4 insertions(+) diff --git a/packages/html/src/ui/alert-dialog/alert-dialog-element.ts b/packages/html/src/ui/alert-dialog/alert-dialog-element.ts index 3688be73..65e33ef8 100644 --- a/packages/html/src/ui/alert-dialog/alert-dialog-element.ts +++ b/packages/html/src/ui/alert-dialog/alert-dialog-element.ts @@ -40,6 +40,7 @@ export class AlertDialogElement extends MediaElement { override connectedCallback(): void { super.connectedCallback(); + if (this.destroyed) return; this.#dialog = createAlertDialog({ transition: createTransition(), diff --git a/packages/html/src/ui/buffering-indicator/buffering-indicator-element.ts b/packages/html/src/ui/buffering-indicator/buffering-indicator-element.ts index 00961aa4..f4004d53 100644 --- a/packages/html/src/ui/buffering-indicator/buffering-indicator-element.ts +++ b/packages/html/src/ui/buffering-indicator/buffering-indicator-element.ts @@ -22,6 +22,7 @@ export class BufferingIndicatorElement extends MediaElement { override connectedCallback(): void { super.connectedCallback(); + if (this.destroyed) return; this.#disconnect = new AbortController(); diff --git a/packages/html/src/ui/error-dialog/error-dialog-element.ts b/packages/html/src/ui/error-dialog/error-dialog-element.ts index f0ea9a3c..c984c704 100644 --- a/packages/html/src/ui/error-dialog/error-dialog-element.ts +++ b/packages/html/src/ui/error-dialog/error-dialog-element.ts @@ -41,6 +41,7 @@ export class ErrorDialogElement extends MediaElement { override connectedCallback(): void { super.connectedCallback(); + if (this.destroyed) return; this.#dialog = createAlertDialog({ transition: createTransition(), diff --git a/packages/html/src/ui/media-button-element.ts b/packages/html/src/ui/media-button-element.ts index e23de36b..d10b43b8 100644 --- a/packages/html/src/ui/media-button-element.ts +++ b/packages/html/src/ui/media-button-element.ts @@ -41,6 +41,7 @@ export abstract class MediaButtonElement exte override connectedCallback(): void { super.connectedCallback(); + if (this.destroyed) return; if (this.hotkeyAction && !this.#hotkeyRegistry) { this.#hotkeyRegistry = new AriaKeyShortcutsController(this, this.hotkeyAction);