Persist debugbar content after turbo page load #25
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #9 based on this suggestion by @hss-mateus.
Problem
When turbo-rails gem and Turbo 8 is added to a Rails app, the debugbar doesn't always appear after navigating to a page.
Why this is happening
Turbo fetches the page in the background as soon as we hover over a link, so that it can replace the page quickly on click, and make the interaction seem faster. However, debugbar broadcasts the debug information as soon as the request is processed.
If the click and the page replacement after before the debug information is broadcast, debugbar would have already replaced the content of
<div id="__debugbar">
with the new metrics, which will then be replaced by the empty div from the preloaded response.Proposed solution
I added the
data-turbo-permanent
attribute (docs) to the__debugbar
div, which tells Turbo to keep the contents of the div when replacing the DOM.