From 98cd745c6e8fd29f29f3f315bbb72da0fd066f78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 14 Feb 2024 20:23:05 +0100 Subject: [PATCH] destroy for controllerHostElements --- .../controller-host-element.mixin.ts | 2 ++ .../src/packages/core/modal/modal.element.ts | 16 ++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-element.mixin.ts b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-element.mixin.ts index ec5de9282a..88c224179a 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-element.mixin.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-element.mixin.ts @@ -11,6 +11,8 @@ export declare class UmbControllerHostElement extends HTMLElement implements Umb removeControllerByAlias(alias: UmbControllerAlias): void; removeController(controller: UmbController): void; getHostElement(): Element; + + destroy(): void; } /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.element.ts index 3a187f20d0..3c95e5bb5a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.element.ts @@ -1,3 +1,4 @@ +import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbModalContext } from './modal.context.js'; import { UMB_MODAL_CONTEXT } from './modal.context.js'; import type { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; @@ -5,7 +6,6 @@ import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registr import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { CSSResultGroup } from '@umbraco-cms/backoffice/external/lit'; import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { BehaviorSubject } from '@umbraco-cms/backoffice/external/rxjs'; import type { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; import { @@ -29,7 +29,7 @@ export class UmbModalElement extends UmbLitElement { this.#modalContext = value; if (!value) { - this.#destroy(); + this.destroy(); return; } @@ -166,18 +166,18 @@ export class UmbModalElement extends UmbLitElement { return html`${this.element}`; } - #destroy() { + disconnectedCallback(): void { + super.disconnectedCallback(); + this.destroy(); + } + + destroy() { this.#innerElement.complete(); this.#modalExtensionObserver?.destroy(); this.#modalExtensionObserver = undefined; super.destroy(); } - disconnectedCallback(): void { - super.disconnectedCallback(); - this.#destroy(); - } - static styles: CSSResultGroup = [UmbTextStyles]; }