fix(visualization): use #graph-svg selector instead of bare svg#564
Open
itxaiohanglover wants to merge 1 commit into
Open
fix(visualization): use #graph-svg selector instead of bare svg#564itxaiohanglover wants to merge 1 commit into
itxaiohanglover wants to merge 1 commit into
Conversation
d3.select("svg") returns the first <svg> in document order, which is a
16px legend icon — not the main graph canvas. This caused the entire
force graph to render inside the tiny legend swatch while the full-screen
canvas stayed empty.
Fix: target #graph-svg by id in both template copies. Add id="graph-svg"
to the aggregated-view template's <svg> element (it was missing).
Regression tests verify both full and community templates use the id
selector and contain no bare d3.select("svg").
Closes tirth8205#523
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
d3.select("svg")returns the first<svg>in document order, which is a 16px legend icon — not the main#graph-svgcanvas. This caused the entire force graph to render inside the tiny legend swatch while the full-screen canvas stayed empty.#graph-svgby id in both template copies (full mode + aggregated/community mode).id="graph-svg"to the aggregated-view template's<svg>element (it was missing).Root cause
In
visualization.py, the legend<nav>is emitted before#graph-svgand its first child is an inline<svg>icon:d3.select("svg")matches this 16px icon, sogRoot+ all nodes/links get appended into it (viewBox-8 -8 16 16), producing a microscopic graph in the legend and an empty canvas.Fix
Applied to both template copies. The aggregated-view template's
<svg>also getsid="graph-svg"added (it was missing).Test plan
test_generate_html_uses_id_selector_for_svg— verifies full-mode HTML usesd3.select("#graph-svg")and contains no bared3.select("svg")test_community_mode_uses_id_selector_for_svg— verifies community-mode HTML usesd3.select("#graph-svg"), has no bared3.select("svg"), and the<svg>hasid="graph-svg"ruff checkpassesCloses #523