diff --git a/src/Umbraco.Web.UI.Client/libs/modal/elements/modal-element-picker-base.ts b/src/Umbraco.Web.UI.Client/libs/modal/elements/modal-element-picker-base.ts index 928976f163..0e1c8c1a5f 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/elements/modal-element-picker-base.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/elements/modal-element-picker-base.ts @@ -24,7 +24,7 @@ export class UmbModalElementPickerBase extends UmbModalLayoutElement { + this._submitPromise = new Promise((resolve, reject) => { this._submitResolver = resolve; - }); - this._closePromise = new Promise((resolve) => { - this._closeResolver = resolve; + this._submitRejecter = reject; }); this.modalElement = this.#createContainerElement(); @@ -95,17 +92,14 @@ export class UmbModalHandler { this.modalElement.close(); } - public close() { - this._closeResolver(); + public reject() { + this._submitRejecter(); this.modalElement.close(); } public onSubmit(): Promise { return this._submitPromise; } - public onClose(): Promise { - return this._closePromise; - } /* TODO: modals being part of the extension registry now means that a modal element can change over time. It makes this code a bit more complex. The main idea is to have the element as part of the modalHandler so it is possible to dispatch events from within the modal element to the one that opened it. diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 0e6cf62954..54625e1d51 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -91,7 +91,7 @@ export class UmbModalContext { public close(key: string) { const modal = this.#modals.getValue().find((modal) => modal.key === key); if (modal) { - modal.close(); + modal.reject(); } } diff --git a/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.mdx b/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.mdx index ed0aae3113..69baf76f73 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.mdx +++ b/src/Umbraco.Web.UI.Client/libs/modal/stories/modal.mdx @@ -64,8 +64,8 @@ class MyElement extends UmbElementMixin(LitElement) { const options {'options go here'}; const modalHandler = this.#modalContext?.open(SOME_MODAL_TOKEN), data, options); - modalHandler?.onClose().then((data) => { - // if any data is supplied on close, it will be available here. + modalHandler?.onSubmit().then((data) => { + // if modal submitted, then data is supplied here. }); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/create/create-document-modal-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/create/create-document-modal-layout.element.ts index 4ba9aa6b4e..de2fda08f9 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/create/create-document-modal-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/entity-actions/create/create-document-modal-layout.element.ts @@ -16,7 +16,7 @@ export class UmbCreateDocumentModalLayoutElement extends UmbModalLayoutElement