foundation-rails icon indicating copy to clipboard operation
foundation-rails copied to clipboard

is-reveal-open and turbolinks

Open haroldus- opened this issue 5 years ago • 4 comments

  • place a link in your reveal modal to another part of your app enabled with turbolinks
  • click the link
  • sometimes the screen is frozen
  • inspect the html document and the is-reveal-open class is present
  • remove the class and all returns to normal

Perhaps there is a way to prevent this behaviour without a custom workaround.

haroldus- avatar Feb 13 '20 06:02 haroldus-

Same issue here. Destroying or closing the dialog in one of the turbolinks events before navigating away doesn't seem to remove the is-reveal-open class.

My current hack to deal with this is to just manually remove the class:

$(document).on('turbolinks:before-render', function() {
  $('html').removeClass('is-reveal-open')
})

akaspick avatar Mar 25 '20 18:03 akaspick

Well, I had some other issues with the modal not closing properly and now I've settled on the following as a solution that seems to work just fine now:

$(document).on('turbolinks:before-cache', function() {
  if (document.documentElement.classList.contains('is-reveal-open')) {
    $('#dialog').foundation('close')
  }
})

akaspick avatar Apr 27 '20 15:04 akaspick

Noticed more issues when using reveal and turbolinks. If you navigate to a page that uses a reveal modal, and then click back and then forward again via the history, multiple reveal divs are created with the same dom id. Even if you close the modal before navigating away, the multiple reveal divs appear.

I have no current solution for this so far.

akaspick avatar Jul 16 '20 13:07 akaspick

Any updates on this? It's still an issue using the latest versions for both

jocodeone avatar Feb 08 '21 17:02 jocodeone