const Dialogue = { showDialogueData: null, showDialogue: function(title, message, yes, yesclass, no, noclass, data, cb) { Dialogue.showDialogueData = { title: title, message: message, yes: yes, yesclass: yesclass || '', no: no, noclass: noclass || '', data: data, cb: cb, } }, onclick: function(clickedYes) { if (clickedYes) { Dialogue.showDialogueData.cb(Dialogue.showDialogueData.data) } this.onclose() m.redraw() }, onclose: function() { Dialogue.showDialogueData = null }, view: function(vnode) { let data = Dialogue.showDialogueData return data ? m('div.floating-container.main', { onclick: this.onclose.bind(this), }, m('dialogue', { onclick: function(e) { e.stopPropagation() } }, [ m('h2.title', data.title), m('p', data.message), m('div.buttons', [ m('button', { class: data.yesclass , onclick: this.onclick.bind(this) }, data.yes), m('button', { class: data.noclass, onclick: this.onclose.bind(this) }, data.no), ]), ]) ) : null }, } module.exports = Dialogue