Skip to content

bugfix(react-tree): recover from tabIndex=-1 when TreeItem is removed#32442

Merged
bsunderhus merged 1 commit intomicrosoft:masterfrom
bsunderhus:react-tree/bugfix--recover-from-tabIndex=-1-when-TreeItem-is-removed
Sep 9, 2024
Merged

bugfix(react-tree): recover from tabIndex=-1 when TreeItem is removed#32442
bsunderhus merged 1 commit intomicrosoft:masterfrom
bsunderhus:react-tree/bugfix--recover-from-tabIndex=-1-when-TreeItem-is-removed

Conversation

@bsunderhus
Copy link
Contributor

@bsunderhus bsunderhus commented Sep 3, 2024

Previous Behavior

New Behavior

  1. Adds forceUpdateRovingTabIndex to TreeContextValue
  2. TreeItem cleanup calls forceUpdateRovingTabIndex to ensure Tree will not face tabIndex=-1 limbo
  3. Adds tests to ensure 2 tabIndex=-1 recover scenarios
    • remove last focused treeitem
    • collapse parent of last focused treeitem

Related Issue(s)

  • Fixes #

@bsunderhus bsunderhus self-assigned this Sep 3, 2024
@fabricteam
Copy link
Collaborator

📊 Bundle size report

Package & Exports Baseline (minified/GZIP) PR Change
react-components
react-components: entire library
1.099 MB
271.628 kB
1.099 MB
271.755 kB
553 B
127 B
Unchanged fixtures
Package & Exports Size (minified/GZIP)
react-components
react-components: Button, FluentProvider & webLightTheme
69.14 kB
20.137 kB
react-components
react-components: Accordion, Button, FluentProvider, Image, Menu, Popover
218.197 kB
63.203 kB
react-components
react-components: FluentProvider & webLightTheme
44.447 kB
14.59 kB
react-portal-compat
PortalCompatProvider
8.39 kB
2.64 kB
react-timepicker-compat
TimePicker
107.387 kB
35.758 kB
🤖 This report was generated against 686d9fccf0e4c7c7bb50de2668f4d070b66fe4b1

@fabricteam
Copy link
Collaborator

Perf Analysis (@fluentui/react-components)

Scenario Render type Master Ticks PR Ticks Iterations Status
FluentProviderWithTheme virtual-rerender 35 35 10 Possible regression
All results

Scenario Render type Master Ticks PR Ticks Iterations Status
Avatar mount 656 629 5000
Button mount 300 312 5000
Field mount 1153 1173 5000
FluentProvider mount 688 683 5000
FluentProviderWithTheme mount 83 93 10
FluentProviderWithTheme virtual-rerender 35 35 10 Possible regression
FluentProviderWithTheme virtual-rerender-with-unmount 80 75 10
MakeStyles mount 848 852 50000
Persona mount 1741 1747 5000
SpinButton mount 1400 1365 5000
SwatchPicker mount 1659 1684 5000

@bsunderhus bsunderhus marked this pull request as ready for review September 3, 2024 10:25
@bsunderhus bsunderhus requested a review from a team as a code owner September 3, 2024 10:25
@bsunderhus bsunderhus merged commit d7d7430 into microsoft:master Sep 9, 2024
@bsunderhus bsunderhus deleted the react-tree/bugfix--recover-from-tabIndex=-1-when-TreeItem-is-removed branch September 9, 2024 19:29
marcosmoura added a commit to marcosmoura/fluentui that referenced this pull request Sep 12, 2024
* master: (77 commits)
  fix(react-drawer): update scroll state when children changes (microsoft#32818)
  feat(react-storybook-addon): improve addon to more readable names (microsoft#32815)
  chore: cleanup react-carousel-preview (microsoft#32475)
  feat(storybook): add rtl/ltr toggle storybook addon (microsoft#32814)
  Carousel: Storybook updates and fixing exports/focus (microsoft#32457)
  release: applying package updates - react v8
  release: applying package updates - web-components
  Update d3 dependency versions to 3.x.x and 4.x.x (microsoft#32463)
  RFC: Extended Design Tokens for Fluent UI React (microsoft#32058)
  update doc to reflect setTheme function change (microsoft#32490)
  fix (react-dialog): Use consistent rounding for clientHeight and innerHeight (microsoft#32480)
  fix(public-doscite-v9): global styles should not be applied to story elements (microsoft#32472)
  feat(workspace-plugin): implement verify-packaging executor (microsoft#32403)
  release: applying package updates - react-components
  Add strokeDasharray property when optimizeLargeData is true (microsoft#32494)
  fix(TreeItemLayout): Actions should not unmount between successive mouse events (microsoft#32477)
  release: applying package updates - react v8
  bugfix(react-tree): recover from tabIndex=-1 when TreeItem is removed (microsoft#32442)
  Fix onResolveSuggestions not being called after component is remounted in react 18 strict mode (microsoft#28227)
  fix(codeowners): update most packages owned by cxe-red with cxe-prg (microsoft#32445)
  ...
@helgardferreira
Copy link

@bsunderhus It seems this PR causes a regression in #31583

@bsunderhus
Copy link
Contributor Author

@bsunderhus It seems this PR causes a regression in #31583

Well, seems like our test batteries should be improved for this case. Thanks for the catch @helgardferreira, would you mind opening an issue for this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants