fix(react-charts): handle stale legend overflow counts - #36691
Open
Jake Salvesen (jakesalvesen) wants to merge 2 commits into
Open
fix(react-charts): handle stale legend overflow counts#36691Jake Salvesen (jakesalvesen) wants to merge 2 commits into
Jake Salvesen (jakesalvesen) wants to merge 2 commits into
Conversation
Open
2 tasks
Author
|
@microsoft-github-policy-service agree |
Jake Salvesen (jakesalvesen)
marked this pull request as ready for review
September 3, 2026 23:46
Author
|
@microsoft/charting-team this is ready for review. The focused Legends regression and package lint pass locally; the PR includes the required |
Jake Salvesen (jakesalvesen)
requested a review
from Atishay Jain (atisjai) (AtishayMsft)
September 13, 2026 06:13
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.
Previous Behavior
Legendscould crash while reconciling a dynamic item-count change. When an overflowed list shrank,useOverflowMenu()could briefly return the previousoverflowCount. Subtracting that stale count from the current item count could produce a negative index and dereferenceitems[index].propsfor a missing item.The initial guard in this PR avoided the crash but could unmount the overflow trigger while
isOverflowingstayed true. The registration effect did not rerun, leaving the overflow manager measuring a detached trigger.New Behavior
useOverflowVisibility()snapshot instead of a count-derived array offset.isOverflowingis true, preserving its DOM identity and overflow registration during a still-overflowing shrink.itemIdsanditemsare built synchronously from the same legend data; the overflow snapshot is the stale value.@fluentui/react-charts.Regression Coverage
The layout mock reports zero width for detached elements. Reintroducing the old stale-count early-return condition makes the trigger-identity and post-shrink resize regressions fail; restoring the fix passes both.
Validation
Local validation with Node 24.20.0 and Yarn 4.18.0:
Legends.test.tsx: 17 passed, 4 skipped, 5 snapshots passed.react-charts:testwithTZ=UTC: 917 passed, 86 skipped, 321 snapshots passed. No snapshot updates; the previously reported HeatMap date snapshot failures pass with this timezone.react-charts:lint: 0 errors, 438 package warnings.react-charts:format:check: passed for both changed files.react-charts:type-check: blocked before reaching the chart type-check. The unchangedreact-providerandreact-buttondependency builds fail during the Windows Griffel/Babel style transform because a generated module path loses part of the checkout path. No build tooling was changed. Upstream CI is still needed for this gate.Related Issue(s)
items[i]is undefined) #36641