make modal context an event target so we can use events

This commit is contained in:
Mads Rasmussen
2023-09-25 19:44:39 +02:00
parent b961adac59
commit 3fd8fed832

View File

@@ -41,7 +41,10 @@ type OptionalSubmitArgumentIfUndefined<T> = T extends undefined
};
// TODO: consider splitting this into two separate handlers
export class UmbModalContextClass<ModalData extends object = object, ModalResult = unknown> implements UmbController {
export class UmbModalContextClass<ModalData extends object = object, ModalResult = unknown>
extends EventTarget
implements UmbController
{
#host: UmbControllerHostElement;
#submitPromise: Promise<ModalResult>;
@@ -70,8 +73,9 @@ export class UmbModalContextClass<ModalData extends object = object, ModalResult
router: IRouterSlot | null,
modalAlias: string | UmbModalToken<ModalData, ModalResult>,
data?: ModalData,
config?: UmbModalConfig
config?: UmbModalConfig,
) {
super();
this.#host = host;
this.key = config?.key || UmbId.new();
@@ -120,7 +124,7 @@ export class UmbModalContextClass<ModalData extends object = object, ModalResult
UMB_MODAL_CONTEXT_TOKEN,
// Note, We are doing the Typing dance here because of the way we are correcting the submit method attribute type.
this as unknown as UmbModalContext<ModalData, ModalResult>
this as unknown as UmbModalContext<ModalData, ModalResult>,
);
this.#host.addController(this);
@@ -168,7 +172,7 @@ export class UmbModalContextClass<ModalData extends object = object, ModalResult
this.#appendInnerElement(innerElement);
}
}
}
},
);
}
}