Is there a straightforward way to tap into the data-turbo-confirm attribute to change out the modal with a styled one?
I know you can replace it globally (read it, not tried it myself):
But, not sure you can tap into it on a per-confirm basis.
Huh, I must have missed this in the docs. Overwriting everywhere is probably fine for my use case.
I’ve written a lightweight, open source package for this. GitHub - RoleModel/turbo-confirm: Dropin upgrade for Rails' data-turbo-confirm to support custom dialogs
I’ve looked at the code to see whether the replacement function can be Promise-based, and it appears so!
That means you should be able to do something like (very roughly)
Turbo.setConfirmMethod( () => import('confirm-dialog') .then(mod => mod.default.confirm("Are you sure?")) // confirm() can return its own Promise );