ability to remove controller

This commit is contained in:
Niels Lyngsø
2023-01-02 13:26:46 +01:00
parent d7e7e70e8f
commit 1640a2b644

View File

@@ -5,6 +5,7 @@ export declare class UmbControllerHostInterface extends HTMLElement {
//#controllers:UmbController[];
//#attached:boolean;
addController(controller:UmbController): void;
removeController(controller:UmbController): void;
}
/**
@@ -32,6 +33,20 @@ export const UmbControllerHostMixin = <T extends HTMLElementConstructor>(superCl
}
}
/**
* Remove a controller from this element.
* @param {UmbController} ctrl
*/
removeController(ctrl: UmbController): void {
const index = this.#controllers.indexOf(ctrl);
if(index !== -1) {
this.#controllers.splice(index, 1);
if(this.#attached) {
ctrl.hostDisconnected();
}
}
}
connectedCallback() {
super.connectedCallback?.();
this.#attached = true;