Turbo.config.forms.confirm = (title) => { console.log('confirm called') const dialog = document.getElementById("front-dialog") dialog.showModal() return new Promise((resolve) => { dialog.addEventListener("close", () => { resolve(dialog.returnValue == "confirm") }, { once: true }) }) } Turbo.config.forms.showModal = (dialogId) => { console.log('showModal called', dialogId) } document.addEventListener('turbo:submit-start', (e) => { const dialogId = e.explicitOriginalTarget.dataset.turboShowModal if (dialogId) { e.detail.formSubmission.stop() Turbo.config.forms.showModal(dialogId) } }) Turbo.config.forms.closeModal = (dialogId) => { console.log('closeModal called', dialogId) } document.addEventListener('turbo:submit-start', (e) => { const dialogId = e.explicitOriginalTarget.dataset.turboCloseModal if (dialogId) { e.detail.formSubmission.stop() Turbo.config.forms.closeModal(dialogId) } })