From cb7a55756918db7ac73b3d89bd28ad5bc9e8c949 Mon Sep 17 00:00:00 2001 From: pvincent Date: Fri, 27 Feb 2026 11:07:34 +0000 Subject: [PATCH] dialog close --- app/javascript/initializers/confirm.js | 19 ----------- app/javascript/initializers/forms.js | 32 +++++++++++++++++++ app/javascript/initializers/index.js | 2 +- app/views/edge/index.html.erb | 16 +++++++++- .../layouts/components/_main_dialog.html.erb | 30 +++++++++++++---- 5 files changed, 72 insertions(+), 27 deletions(-) delete mode 100644 app/javascript/initializers/confirm.js create mode 100644 app/javascript/initializers/forms.js diff --git a/app/javascript/initializers/confirm.js b/app/javascript/initializers/confirm.js deleted file mode 100644 index b140a01..0000000 --- a/app/javascript/initializers/confirm.js +++ /dev/null @@ -1,19 +0,0 @@ -Turbo.config.forms.confirm = (title) => { - const dialog = document.getElementById("main-dialog") - const dialogTitle = dialog.querySelector('[data-modal=title]') - const previousTitleContent = dialogTitle.textContent - - dialogTitle.textContent = title - dialog.showModal() - - return new Promise((resolve, _) => { - dialog.addEventListener( - "close", - () => { - dialogTitle.textContent = previousTitleContent - resolve(dialog.returnValue == "confirm") - }, - { once: true }, - ); - }); -} diff --git a/app/javascript/initializers/forms.js b/app/javascript/initializers/forms.js new file mode 100644 index 0000000..e1c1f54 --- /dev/null +++ b/app/javascript/initializers/forms.js @@ -0,0 +1,32 @@ +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) + } +}) + + diff --git a/app/javascript/initializers/index.js b/app/javascript/initializers/index.js index ff8620f..e3611d8 100644 --- a/app/javascript/initializers/index.js +++ b/app/javascript/initializers/index.js @@ -1,6 +1,6 @@ import "@hotwired/turbo-rails" import "initializers/drive" -import "initializers/confirm" +import "initializers/forms" import "initializers/stream_actions" diff --git a/app/views/edge/index.html.erb b/app/views/edge/index.html.erb index 0f217ba..ae6556b 100644 --- a/app/views/edge/index.html.erb +++ b/app/views/edge/index.html.erb @@ -2,7 +2,21 @@