Optimize node selector panel and use group hover #2625
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.
Changes:
useMemo
for the JSX tree insideRepresentativeNodeWrapper
andRepresentativeNode
. While these components are alreadymemo
ed,memo
is ineffective when one of the used contexts updates. Even if the updated context values do not lead to any changes in the DOM, React still has to re-create and diff the JSX tree of the component.useMemo
not only caches the tree, it also allows React to immediately see that the cache tree didn't change (since they are the same object).useState
to track whether a component is hovered, and replaced them with_groupHover
. This makes the hover effects instant (because we don't need to re-render anything) and means that hover effects can't get stuck.