implement messageBox.close()

This commit is contained in:
tophf 2022-01-13 13:51:32 +03:00
parent 8f1e8c8e47
commit adfd94001b
2 changed files with 16 additions and 20 deletions

View File

@ -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;
}
}; };
/** /**

View File

@ -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;
} }
} }