5 changed files with 72 additions and 27 deletions
-
19app/javascript/initializers/confirm.js
-
32app/javascript/initializers/forms.js
-
2app/javascript/initializers/index.js
-
16app/views/edge/index.html.erb
-
30app/views/layouts/components/_main_dialog.html.erb
@ -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 }, |
|||
); |
|||
}); |
|||
} |
|||
@ -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) |
|||
} |
|||
}) |
|||
|
|||
|
|||
@ -1,6 +1,6 @@ |
|||
import "@hotwired/turbo-rails" |
|||
|
|||
import "initializers/drive" |
|||
import "initializers/confirm" |
|||
import "initializers/forms" |
|||
import "initializers/stream_actions" |
|||
|
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue