File tree 3 files changed +27
-5
lines changed
3 files changed +27
-5
lines changed Original file line number Diff line number Diff line change
1
+ ---
2
+ ' @primer/react-brand ' : patch
3
+ ---
4
+
5
+ Fixed a bug in the ` ActionMenu ` component where items with falsy values (eg ` "" ` ) would not trigger the ` onSelect ` callback when selected.
Original file line number Diff line number Diff line change @@ -349,4 +349,23 @@ describe('ActionMenu', () => {
349
349
{ timeout : 100 } ,
350
350
)
351
351
} )
352
+
353
+ it ( 'should allow falsey items to be selected' , ( ) => {
354
+ const mockOnSelect = jest . fn ( )
355
+
356
+ const { getByRole} = render (
357
+ < ActionMenu onSelect = { mockOnSelect } selectionVariant = "single" >
358
+ < ActionMenu . Button > Open menu</ ActionMenu . Button >
359
+ < ActionMenu . Overlay aria-label = "Actions" >
360
+ < ActionMenu . Item value = "test" > Test string</ ActionMenu . Item >
361
+ < ActionMenu . Item value = "" > Empty string</ ActionMenu . Item >
362
+ </ ActionMenu . Overlay >
363
+ </ ActionMenu > ,
364
+ )
365
+
366
+ fireEvent . click ( getByRole ( 'button' , { name : 'Open menu' } ) )
367
+ fireEvent . click ( getByRole ( 'menuitemradio' , { name : 'Empty string' } ) )
368
+
369
+ expect ( mockOnSelect ) . toHaveBeenCalledWith ( '' )
370
+ } )
352
371
} )
Original file line number Diff line number Diff line change @@ -166,11 +166,9 @@ const _ActionMenuRoot = memo(
166
166
167
167
const handleItemSelection = useCallback (
168
168
( newValue : string ) => {
169
- if ( newValue ) {
170
- handleOnSelect ( newValue )
171
- toggleMenu ( )
172
- anchorElementRef . current ?. focus ( )
173
- }
169
+ handleOnSelect ( newValue )
170
+ toggleMenu ( )
171
+ anchorElementRef . current ?. focus ( )
174
172
} ,
175
173
[ handleOnSelect , toggleMenu , anchorElementRef ] ,
176
174
)
You can’t perform that action at this time.
0 commit comments