Improve SVG performance by avoiding re-render when feature is clicked #3113
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.
Currently, clicking a feature on the SVG track produces a re-rendering of all the features which can produce noticeable lag
This PR avoids this, and adds a test to make sure it stays that way. Incidentlally, that fix is a one liner and a regression, we just need to not dynamically create function props from within the render. This is the line https://github.com/GMOD/jbrowse-components/compare/test_rerender_svg?expand=1#diff-064ed32393d9637238ee6b5daa2f1ebe67829b1a3b719dc01cbd510ff45f6176R227
Also typescriptifies the SVG rendering unit tests to help ensure the right "API" is used