import {onSelect} from "../services/dom"; /** * Custom equivalent of window.confirm() using our popup component. * Is promise based so can be used like so: * `const result = await dialog.show()` * @extends {Component} */ class ConfirmDialog { setup() { this.container = this.$el; this.confirmButton = this.$refs.confirm; this.res = null; onSelect(this.confirmButton, () => { this.sendResult(true); this.getPopup().hide(); }); } show() { this.getPopup().show(null, () => { this.sendResult(false); }); return new Promise((res, rej) => { this.res = res; }); } /** * @returns {Popup} */ getPopup() { return this.container.components.popup; } /** * @param {Boolean} result */ sendResult(result) { if (this.res) { this.res(result) this.res = null; } } } export default ConfirmDialog;