Fix MermaidWithFallback diagram display #2609
Merged
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.
The diagrams were not properly loading when switching tabs, as seen on the Documents concept page. This PR fixes this issue.
Root cause: Mermaid.js cannot re-render on already processed DOM elements, and diagrams in hidden tabs weren't being rendered when those tabs became visible.
Solution:
Added proper Docusaurus tab visibility detection using
getBoundingClientRect()
and[role="tabpanel"]
hidden attributesImplemented event listeners for tab changes (
[role="tab"]
clicks andMutationObserver
for hidden attribute changes)Added clean DOM reset between renders to remove existing SVGs and mermaid-generated attributes
Improved timing with appropriate delays for tab switching (50ms) and theme changes (100ms)
Features preserved:
The diagrams now render correctly on the default tab, switch properly between tabs, and re-render when returning to previously visited tabs.