add temp event listener for outside clicks

This commit is contained in:
JesmoDev
2024-05-27 13:54:32 +02:00
parent f3d57dedbc
commit 9af6ba3ac2

View File

@@ -64,12 +64,27 @@ export class UmbSearchModalElement extends UmbLitElement {
super.connectedCallback();
this.addEventListener('keydown', this.#onKeydown);
document.addEventListener('click', this.#onDocumentClick); //TODO: Temp solution to close the modal on outside click. We need to look into a generic solution for this.
requestAnimationFrame(() => {
this.#focusInput();
});
}
disconnectedCallback(): void {
super.disconnectedCallback();
this.removeEventListener('keydown', this.#onKeydown);
document.removeEventListener('click', this.#onDocumentClick);
}
#onDocumentClick = (event: MouseEvent) => {
const path = event.composedPath();
if (path.includes(this)) return;
this.modalContext?.reject();
};
#observeProviders() {
new UmbExtensionsManifestInitializer(this, umbExtensionsRegistry, 'searchProvider', null, async (providers) => {
const searchProviders: Array<SearchProvider> = [];