Skip to content

fix(react-menu-grid-preview): ArrowRight should not open submenus inside MenuGrid#35871

Merged
bsunderhus merged 1 commit intomicrosoft:masterfrom
bsunderhus:fix/menu-grid-arrow-right-submenu
Mar 12, 2026
Merged

fix(react-menu-grid-preview): ArrowRight should not open submenus inside MenuGrid#35871
bsunderhus merged 1 commit intomicrosoft:masterfrom
bsunderhus:fix/menu-grid-arrow-right-submenu

Conversation

@bsunderhus
Copy link
Copy Markdown
Contributor

@bsunderhus bsunderhus commented Mar 12, 2026

Summary

  • Adds shouldOpenOnArrowRight?: boolean to MenuListContextValue in @fluentui/react-menu — allows list-like containers to opt out of the ArrowRight-opens-submenu keyboard behavior
  • MenuGrid sets shouldOpenOnArrowRight: false, preserving ArrowRight for grid column navigation while hover-open behavior remains correct
  • useMenuTrigger gates both the open-on-keydown and focus-first-on-keydown behaviors behind this flag
  • Adds e2e test: should not open a submenu trigger with ArrowRight

Test plan

  • yarn nx run react-menu-grid-preview:e2e — all 9 tests pass
  • yarn nx run react-menu:build — API md updated, build succeeds
  • ArrowRight navigates grid columns, does not open submenu
  • Enter still opens the submenu
  • Hover still opens the submenu (existing tests cover this)

🤖 Generated with Claude Code

…ide MenuGrid

Add `shouldOpenOnArrowRight` to `MenuListContextValue` so grid containers can opt out
of the ArrowRight-opens-submenu keyboard behavior. `MenuGrid` sets this to `false`,
keeping ArrowRight for column navigation while hover-open still works correctly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

📊 Bundle size report

Package & Exports Baseline (minified/GZIP) PR Change
react-charts
AreaChart
412.286 kB
126.424 kB
412.369 kB
126.436 kB
83 B
12 B
react-charts
DeclarativeChart
763.01 kB
220.432 kB
763.093 kB
220.471 kB
83 B
39 B
react-charts
DonutChart
322.715 kB
96.946 kB
322.798 kB
96.987 kB
83 B
41 B
react-charts
FunnelChart
314.268 kB
93.991 kB
314.351 kB
94.048 kB
83 B
57 B
react-charts
GanttChart
395.405 kB
119.926 kB
395.488 kB
119.947 kB
83 B
21 B
react-charts
GaugeChart
322.146 kB
96.373 kB
322.229 kB
96.435 kB
83 B
62 B
react-charts
GroupedVerticalBarChart
403.275 kB
122.494 kB
403.358 kB
122.516 kB
83 B
22 B
react-charts
HeatMapChart
397.476 kB
121.79 kB
397.559 kB
121.802 kB
83 B
12 B
react-charts
HorizontalBarChart
302.442 kB
89.116 kB
302.525 kB
89.127 kB
83 B
11 B
react-charts
Legends
242.388 kB
71.585 kB
242.471 kB
71.602 kB
83 B
17 B
react-charts
LineChart
423.627 kB
128.473 kB
423.71 kB
128.491 kB
83 B
18 B
react-charts
PolarChart
351.333 kB
107.364 kB
351.416 kB
107.38 kB
83 B
16 B
react-charts
ScatterChart
403.002 kB
122.603 kB
403.085 kB
122.621 kB
83 B
18 B
react-charts
VerticalBarChart
439.746 kB
128.216 kB
439.829 kB
128.225 kB
83 B
9 B
react-charts
VerticalStackedBarChart
409.271 kB
124 kB
409.354 kB
124.017 kB
83 B
17 B
react-components
react-components: Accordion, Button, FluentProvider, Image, Menu, Popover
236.537 kB
68.697 kB
236.62 kB
68.716 kB
83 B
19 B
react-components
react-components: entire library
1.292 MB
323.32 kB
1.292 MB
323.336 kB
83 B
16 B
react-menu
Menu (including children components)
170.23 kB
51.882 kB
170.313 kB
51.895 kB
83 B
13 B
react-menu
Menu (including selectable components)
173.408 kB
52.464 kB
173.491 kB
52.475 kB
83 B
11 B
Unchanged fixtures
Package & Exports Size (minified/GZIP)
react-avatar
Avatar
48.27 kB
15.312 kB
react-avatar
AvatarGroup
17.45 kB
6.995 kB
react-avatar
AvatarGroupItem
61.511 kB
19.296 kB
react-breadcrumb
@fluentui/react-breadcrumb - package
114.911 kB
31.405 kB
react-charts
HorizontalBarChartWithAxis
63 B
83 B
react-charts
SankeyChart
220.381 kB
67.866 kB
react-charts
Sparkline
91.393 kB
28.708 kB
react-components
react-components: Button, FluentProvider & webLightTheme
70.397 kB
19.96 kB
react-components
react-components: FluentProvider & webLightTheme
43.612 kB
14.022 kB
react-datepicker-compat
DatePicker Compat
225.125 kB
63.619 kB
react-dialog
Dialog (including children components)
102.12 kB
30.394 kB
react-overflow
hooks only
12.117 kB
4.627 kB
react-persona
Persona
55.225 kB
17.245 kB
react-popover
Popover
133.719 kB
41.451 kB
react-portal-compat
PortalCompatProvider
8.386 kB
2.624 kB
react-table
DataGrid
159.313 kB
44.939 kB
react-table
Table (Primitives only)
40.997 kB
13.172 kB
react-table
Table as DataGrid
130.528 kB
35.943 kB
react-table
Table (Selection only)
68.916 kB
19.309 kB
react-table
Table (Sort only)
67.559 kB
18.924 kB
react-tag-picker
@fluentui/react-tag-picker - package
186.596 kB
55.849 kB
react-tags
InteractionTag
13.666 kB
5.459 kB
react-tags
Tag
29.521 kB
9.389 kB
react-tags
TagGroup
82.211 kB
24.143 kB
react-teaching-popover
TeachingPopover
112.414 kB
34.219 kB
react-timepicker-compat
TimePicker
108.174 kB
35.695 kB
react-tree
FlatTree
147.635 kB
42.134 kB
react-tree
PersonaFlatTree
149.463 kB
42.517 kB
react-tree
PersonaTree
145.523 kB
41.338 kB
react-tree
Tree
143.701 kB
40.972 kB
🤖 This report was generated against 3c0d53f99e0173f8966d27371df9a40c44efdaae

@bsunderhus bsunderhus self-assigned this Mar 12, 2026
@github-actions
Copy link
Copy Markdown

Pull request demo site: URL

Comment thread change/@fluentui-react-menu-fix-arrow-right-submenu-in-grid.json
@bsunderhus bsunderhus merged commit ec57363 into microsoft:master Mar 12, 2026
12 checks passed
@bsunderhus bsunderhus deleted the fix/menu-grid-arrow-right-submenu branch March 12, 2026 16:18
tudorpopams pushed a commit to tudorpopams/fluentui that referenced this pull request Apr 14, 2026
…ide MenuGrid (microsoft#35871)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
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.

2 participants