implement messageBox.close()
This commit is contained in:
parent
8f1e8c8e47
commit
adfd94001b
|
@ -12,6 +12,19 @@ window.messageBox = {
|
||||||
_resolve: null,
|
_resolve: null,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
messageBox.close = async isAnimated => {
|
||||||
|
window.off('keydown', messageBox.listeners.key, true);
|
||||||
|
window.off('scroll', messageBox.listeners.scroll);
|
||||||
|
window.off('mouseup', messageBox.listeners.mouseUp);
|
||||||
|
window.off('mousemove', messageBox.listeners.mouseMove);
|
||||||
|
if (isAnimated) {
|
||||||
|
await animateElement(messageBox.element, 'fadeout');
|
||||||
|
}
|
||||||
|
messageBox.element.remove();
|
||||||
|
messageBox.element = null;
|
||||||
|
messageBox._resolve = null;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {Object} params
|
* @param {Object} params
|
||||||
* @param {String} params.title
|
* @param {String} params.title
|
||||||
|
@ -143,9 +156,7 @@ messageBox.show = async ({
|
||||||
|
|
||||||
function resolveWith(value) {
|
function resolveWith(value) {
|
||||||
setTimeout(messageBox._resolve, 0, value);
|
setTimeout(messageBox._resolve, 0, value);
|
||||||
unbindGlobalListeners();
|
messageBox.close(true);
|
||||||
animateElement(messageBox.element, 'fadeout')
|
|
||||||
.then(removeSelf);
|
|
||||||
if (messageBox.element.contains(document.activeElement)) {
|
if (messageBox.element.contains(document.activeElement)) {
|
||||||
messageBox._originalFocus.focus();
|
messageBox._originalFocus.focus();
|
||||||
}
|
}
|
||||||
|
@ -153,8 +164,7 @@ messageBox.show = async ({
|
||||||
|
|
||||||
function createElement() {
|
function createElement() {
|
||||||
if (messageBox.element) {
|
if (messageBox.element) {
|
||||||
unbindGlobalListeners();
|
messageBox.close();
|
||||||
removeSelf();
|
|
||||||
}
|
}
|
||||||
const id = 'message-box';
|
const id = 'message-box';
|
||||||
messageBox.element =
|
messageBox.element =
|
||||||
|
@ -186,19 +196,6 @@ messageBox.show = async ({
|
||||||
}
|
}
|
||||||
window.on('keydown', messageBox.listeners.key, true);
|
window.on('keydown', messageBox.listeners.key, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function unbindGlobalListeners() {
|
|
||||||
window.off('keydown', messageBox.listeners.key, true);
|
|
||||||
window.off('scroll', messageBox.listeners.scroll);
|
|
||||||
window.off('mouseup', messageBox.listeners.mouseUp);
|
|
||||||
window.off('mousemove', messageBox.listeners.mouseMove);
|
|
||||||
}
|
|
||||||
|
|
||||||
function removeSelf() {
|
|
||||||
messageBox.element.remove();
|
|
||||||
messageBox.element = null;
|
|
||||||
messageBox._resolve = null;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -159,8 +159,7 @@ function EmbedDialog(create) {
|
||||||
});
|
});
|
||||||
shown = true;
|
shown = true;
|
||||||
} else if (!state && shown) {
|
} else if (!state && shown) {
|
||||||
// FIXME: close the dialog
|
messageBoxProxy.close();
|
||||||
// messageBoxProxy.close();
|
|
||||||
shown = false;
|
shown = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user