diff --git a/app/assets/javascripts/heavens_door.js b/app/assets/javascripts/heavens_door.js index 4048ebc..fe67ba1 100644 --- a/app/assets/javascripts/heavens_door.js +++ b/app/assets/javascripts/heavens_door.js @@ -11,6 +11,8 @@ } } else { // no turbolinks document.addEventListener('DOMContentLoaded', fn); + // Turbo is not yet available for detection here, need to attach the listener anyway + document.documentElement.addEventListener('turbo:load', fn); } } })(() => { diff --git a/lib/heavens_door/engine.rb b/lib/heavens_door/engine.rb index a6b8127..a13834f 100644 --- a/lib/heavens_door/engine.rb +++ b/lib/heavens_door/engine.rb @@ -7,7 +7,9 @@ class Engine < ::Rails::Engine #:nodoc: initializer 'HeavensDoor' do |app| app.middleware.use HeavensDoor::Middleware - app.config.assets.precompile += %w(heavens_door.js heavens_door.css) + if !defined?(Propshaft) + app.config.assets.precompile += %w(heavens_door.js heavens_door.css) + end end end end diff --git a/lib/heavens_door/middleware.rb b/lib/heavens_door/middleware.rb index 7c6df99..122b339 100644 --- a/lib/heavens_door/middleware.rb +++ b/lib/heavens_door/middleware.rb @@ -20,7 +20,9 @@ def call(env) end body = body.dup if body.frozen? - body.sub!(/<\/head[^>]*>/) { %Q[\n#{$~}] } + if !defined?(Propshaft) + body.sub!(/<\/head[^>]*>/) { %Q[\n#{$~}] } + end body.sub!(/]*>/) { %Q[#{$~}\n
📋
] } [status, headers, [body]]