@@ -377,6 +377,13 @@ export class Tooltip<T extends TooltipTarget> extends React.Component<
377377 }
378378 }
379379
380+ private onKeyDown = ( event : KeyboardEvent ) => {
381+ if ( event . key === 'Escape' && this . state . show ) {
382+ event . preventDefault ( )
383+ this . beginHideTooltip ( )
384+ }
385+ }
386+
380387 private installTooltip ( elem : TooltipTarget ) {
381388 elem . addEventListener ( 'mouseenter' , this . onTargetMouseEnter )
382389 elem . addEventListener ( 'mouseleave' , this . onTargetMouseLeave )
@@ -389,6 +396,7 @@ export class Tooltip<T extends TooltipTarget> extends React.Component<
389396 elem . addEventListener ( 'tooltip-shown' , this . onTooltipShown )
390397 elem . addEventListener ( 'tooltip-hidden' , this . onTooltipHidden )
391398 elem . addEventListener ( 'click' , this . onTargetClick )
399+ elem . addEventListener ( 'keydown' , this . onKeyDown )
392400 }
393401
394402 private removeTooltip ( prevTarget : TooltipTarget | null ) {
@@ -405,6 +413,7 @@ export class Tooltip<T extends TooltipTarget> extends React.Component<
405413 prevTarget . removeEventListener ( 'focusout' , this . onTargetBlur )
406414 prevTarget . removeEventListener ( 'blur' , this . onTargetBlur )
407415 prevTarget . removeEventListener ( 'click' , this . onTargetClick )
416+ prevTarget . removeEventListener ( 'keydown' , this . onKeyDown )
408417 }
409418 }
410419
0 commit comments