File tree Expand file tree Collapse file tree 2 files changed +19
-4
lines changed
packages/react/src/components/Tile Expand file tree Collapse file tree 2 files changed +19
-4
lines changed Original file line number Diff line number Diff line change @@ -499,6 +499,17 @@ describe('Tile', () => {
499499 true ,
500500 'selectable-tile-1'
501501 ) ;
502+ // should de-select when user press enter key on selected tile.
503+ tile . focus ( ) ;
504+ await userEvent . keyboard ( '[Enter]' ) ;
505+ expect ( onChange ) . toHaveBeenCalled ( ) ;
506+ expect ( onChange ) . toHaveBeenCalledWith (
507+ expect . objectContaining ( {
508+ type : 'keydown' ,
509+ } ) ,
510+ false ,
511+ 'selectable-tile-1'
512+ ) ;
502513 } ) ;
503514
504515 it ( 'should call onKeyDown' , async ( ) => {
Original file line number Diff line number Diff line change @@ -515,15 +515,19 @@ export const SelectableTile = React.forwardRef<
515515 evt ?. persist ?.( ) ;
516516 if ( matches ( evt , [ keys . Enter , keys . Space ] ) ) {
517517 evt . preventDefault ( ) ;
518- setIsSelected ( ! isSelected ) ;
519- onChange ( evt , isSelected , id ) ;
518+ setIsSelected ( ( prevSelected ) => {
519+ const newSelected = ! prevSelected ;
520+ onChange ( evt , newSelected , id ) ;
521+ return newSelected ;
522+ } ) ;
520523 }
521524 keyDownHandler ( evt ) ;
522525 }
523526
524527 function handleChange ( event ) {
525- setIsSelected ( event . target . checked ) ;
526- onChange ( event , isSelected , id ) ;
528+ const newSelected = event . target . checked ;
529+ setIsSelected ( newSelected ) ;
530+ onChange ( event , newSelected , id ) ;
527531 }
528532
529533 if ( selected !== prevSelected ) {
You can’t perform that action at this time.
0 commit comments