Make onClose async too

This commit is contained in:
Cohee 2024-08-19 23:58:36 +03:00
parent bc7660bba6
commit a4ee73a3a7
1 changed files with 4 additions and 4 deletions

View File

@ -41,7 +41,7 @@ export const POPUP_RESULT = {
* @property {CustomPopupButton[]|string[]?} [customButtons=null] - Custom buttons to add to the popup. If only strings are provided, the buttons will be added with default options, and their result will be in order from `2` onward. * @property {CustomPopupButton[]|string[]?} [customButtons=null] - Custom buttons to add to the popup. If only strings are provided, the buttons will be added with default options, and their result will be in order from `2` onward.
* @property {CustomPopupInput[]?} [customInputs=null] - Custom inputs to add to the popup. The display below the content and the input box, one by one. * @property {CustomPopupInput[]?} [customInputs=null] - Custom inputs to add to the popup. The display below the content and the input box, one by one.
* @property {(popup: Popup) => Promise<boolean?>|boolean?} [onClosing=null] - Handler called before the popup closes, return `false` to cancel the close * @property {(popup: Popup) => Promise<boolean?>|boolean?} [onClosing=null] - Handler called before the popup closes, return `false` to cancel the close
* @property {(popup: Popup) => void?} [onClose=null] - Handler called after the popup closes, but before the DOM is cleaned up * @property {(popup: Popup) => Promise<void?>|void?} [onClose=null] - Handler called after the popup closes, but before the DOM is cleaned up
* @property {number?} [cropAspect=null] - Aspect ratio for the crop popup * @property {number?} [cropAspect=null] - Aspect ratio for the crop popup
* @property {string?} [cropImage=null] - Image URL to display in the crop popup * @property {string?} [cropImage=null] - Image URL to display in the crop popup
*/ */
@ -139,7 +139,7 @@ export class Popup {
/** @readonly @type {CustomPopupInput[]} */ customInputs; /** @readonly @type {CustomPopupInput[]} */ customInputs;
/** @type {(popup: Popup) => Promise<boolean?>|boolean?} */ onClosing; /** @type {(popup: Popup) => Promise<boolean?>|boolean?} */ onClosing;
/** @type {(popup: Popup) => void?} */ onClose; /** @type {(popup: Popup) => Promise<void?>|void?} */ onClose;
/** @type {POPUP_RESULT|number} */ result; /** @type {POPUP_RESULT|number} */ result;
/** @type {any} */ value; /** @type {any} */ value;
@ -547,13 +547,13 @@ export class Popup {
fixToastrForDialogs(); fixToastrForDialogs();
// After the dialog is actually completely closed, remove it from the DOM // After the dialog is actually completely closed, remove it from the DOM
runAfterAnimation(this.dlg, () => { runAfterAnimation(this.dlg, async () => {
// Call the close on the dialog // Call the close on the dialog
this.dlg.close(); this.dlg.close();
// Run a possible custom handler right before DOM removal // Run a possible custom handler right before DOM removal
if (this.onClose) { if (this.onClose) {
this.onClose(this); await this.onClose(this);
} }
// Remove it from the dom // Remove it from the dom